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里面的一个底层字符串常量
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2421050.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!