具有多个用户的聊天应用程序如何处理内存和上下文?
例如:
用户 1 询问有关 Java 编程的问题。应用程序应保留并使用用户 1 的特定对话历史记录和上下文,以获得准确的响应。
用户2询问有关Python编程的问题。应用程序应保留并使用用户 2 的特定对话历史记录和上下文,以获得准确的响应。
Spring AI 如何确保正确的记忆或对话历史与相应的用户提示相关联?
例如,当用户 1 提出与 Java 相关的查询时,系统应仅引用用户 1 的对话历史记录,而不应将其与用户 2 的上下文混淆。
有
ChatMemory
接口,并且它有 InMemoryChatMemory
、CassandraChatMemory
的默认实现。如果您需要自己的实现,那么您可以通过实现 ChatMemory 接口来实现。并将此实现传递给 ChatClient
作为顾问,如 MessageChatMemoryAdvisor
。
chatClient = builder
.defaultAdvisors(
new MessageChatMemoryAdvisor(chatMemory));
这里是我创建的Spring AI Advance项目的链接,你可以参考它我已经实现了ChatMemory接口。