Spring AI对话记忆存入Redis持久化

发布时间:2026/7/7 11:39:05

Spring AI对话记忆存入Redis持久化 使用redissonredisson配置类/** * Redis/Redisson 配置单机模式供 RAG Agent 的 RedisSaver会话记忆等使用。 */ Configuration public class RedisMemory { private final String host; private final int port; public RedisMemory(Value(${spring.data.redis.host}) String host, Value(${spring.data.redis.port}) int port) { this.host host; this.port port; } /** 创建 Redisson 客户端单机地址 redis://host:port销毁时自动 shutdown */ Bean(destroyMethod shutdown) public RedissonClient redissonClient() { Config config new Config(); //存放在哪个服务器的redisIP地址加redis端口号 config.useSingleServer().setAddress(redis:// host : port); // .setConnectionPoolSize(64) // 设置连接池大小 // .setConnectionMinimumIdleSize(10) // 设置最小空闲连接数 // .setConnectTimeout(10000) // 设置连接超时时间 return Redisson.create(config); } }模型配置类Bean(name qwen) public ChatModel qwen() { return DashScopeChatModel.builder().dashScopeApi(DashScopeApi.builder() .apiKey(System.getenv(aliQwen-api)) .build()) .defaultOptions( DashScopeChatOptions.builder() .withModel(QWEN_MODEL) .build() ) .build(); } Bean(name qwenChatClient) public ChatClient qwenChatClient(Qualifier(qwen) ChatModel qwen, RedisChatMemoryRepository redisChatMemoryRepository) { MessageWindowChatMemory windowChatMemory MessageWindowChatMemory.builder() .chatMemoryRepository(redisChatMemoryRepository) .maxMessages(10) .build(); return ChatClient.builder(qwen) .defaultOptions(ChatOptions.builder().model(QWEN_MODEL).build()) .defaultAdvisors(MessageChatMemoryAdvisor.builder(windowChatMemory).build()) .build(); }controller层代码GetMapping(/chatmemory/chat) public String chat(String msg, String userId) { /*return qwenChatClient.prompt(msg).advisors(new ConsumerChatClient.AdvisorSpec() { Override public void accept(ChatClient.AdvisorSpec advisorSpec) { advisorSpec.param(CONVERSATION_ID, userId); } }).call().content();*/ return qwenChatClient .prompt(msg) .advisors(advisorSpec - advisorSpec.param(CONVERSATION_ID, userId)) .call() .content(); }.param(key, value) 方法设置一个键值对参数这些参数会传递给顾问影响其行为。.advisors(advisorSpec - advisorSpec.param(“CONVERSATION_ID”, userId)) // 配置顾问参数设置CONVERSATION_ID 为 userIdCONVERSATION_ID是ChatMemory里面的一个底层字符串常量

相关新闻