在使用chatGPT,豆包等產品后,就會發現他們的會話有“記憶”功能。
那么我們用API接口的話,這個是怎么實現的呢?
屬于比較粗暴的方式,把之前的內容與新的提示詞一起再次發給大模型。讓我們看到他們有記憶功能。
下面介紹deepseek通過spring ai接入的時候實現記憶功能
一:定義會話存儲方式
@Beanpublic ChatMemory chatMemory(){return new InMemoryChatMemory();}
ChatMemory 接口中,有如下方法:
以上是springAi中通過內存的實現方式實現如下接口。
二:配置會話記憶Advisor
@Beanpublic ChatClient chatClient(OllamaChatModel chatModel,ChatMemory chatMemory){return ChatClient.builder(chatModel).defaultAdvisors(new SimpleLoggerAdvisor(),new MessageChatMemoryAdvisor(chatMemory)).build();}
三:添加會話id
如ChatMemory接口,有個conversationId;即會話id,每次會話的時候,通過前端區分這個會話id。
上述方式即實現了會話記憶方案。