🚀 PIG AI 新版来袭:AI能力全面升级! 点击了解一下?
@Configuration public class ChatMemoryConfig { @Bean public ChatMemory chatMemory() { return new InMemoryChatMemory(); } }
@Service public class ChatService { private final ChatClient chatClient; private final ChatMemory chatMemory; public ChatService(ChatClient chatClient, ChatMemory chatMemory) { this.chatClient = chatClient; this.chatMemory = chatMemory; } public String chat(String message, String sessionId) { // 将消息添加到记忆中 chatMemory.addMessage(sessionId, message); // 获取对话历史 List<Message> history = chatMemory.getMessages(sessionId); // 使用上下文生成响应 String response = chatClient.generate(history); // 将响应存储在记忆中 chatMemory.addMessage(sessionId, response); return response; } }
@Bean public ChatMemory fixedWindowMemory() { return new FixedWindowChatMemory(10); // 保留最后10条消息 }
@Bean public ChatMemory tokenBasedMemory() { return new TokenBasedChatMemory(1000); // 在令牌限制内保留消息 }
@Bean public ChatMemory summaryMemory() { return new SummaryChatMemory(summarizer); }
spring.ai.chat.memory.type=in-memory spring.ai.chat.memory.max-messages=100 spring.ai.chat.memory.max-tokens=1000 spring.ai.chat.memory.ttl=3600
@Component public class CustomChatMemory implements ChatMemory { @Override public void addMessage(String sessionId, String message) { // 自定义实现 } @Override public List<Message> getMessages(String sessionId) { // 自定义实现 return messages; } }
management.endpoints.web.exposure.include=chat-memory management.endpoint.chat-memory.enabled=true