在使用chatGPT,豆包等产品后,就会发现他们的会话有“记忆”功能。
那么我们用API接口的话,这个是怎么实现的呢?
属于比较粗暴的方式,把之前的内容与新的提示词一起再次发给大模型。让我们看到他们有记忆功能。
下面介绍deepseek通过spring ai接入的时候实现记忆功能

一:定义会话存储方式

 @Bean
    public ChatMemory chatMemory(){
        return new InMemoryChatMemory();
    }

ChatMemory 接口中,有如下方法:
在这里插入图片描述
以上是springAi中通过内存的实现方式实现如下接口。

二:配置会话记忆Advisor

    @Bean
    public ChatClient chatClient(OllamaChatModel chatModel,ChatMemory chatMemory){
        return   ChatClient
                .builder(chatModel)
                .defaultAdvisors(new SimpleLoggerAdvisor(),
                        new MessageChatMemoryAdvisor(chatMemory))
                .build();
    }

三:添加会话id
如ChatMemory接口,有个conversationId;即会话id,每次会话的时候,通过前端区分这个会话id。
在这里插入图片描述
上述方式即实现了会话记忆方案。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐