AIGC宇宙 AIGC宇宙

面试官:如何实现大模型的连续对话?

所有的大模型本身是不进行信息存储的,也不提供连续对话功能,所以想要实现连续对话功能需要开发者自己写代码才能实现。 那怎么才能实现大模型的连续对话功能呢? 大模型连续对话功能不同的框架实现也是不同的,以行业使用最多的 Java AI 框架 Spring AI 和 Spring AI Alibaba 为例,给大家演示一下它们连续对话是如何实现的。

所有的大模型本身是不进行信息存储的,也不提供连续对话功能,所以想要实现连续对话功能需要开发者自己写代码才能实现。那怎么才能实现大模型的连续对话功能呢?

大模型连续对话功能不同的框架实现也是不同的,以行业使用最多的 Java AI 框架 Spring AI 和 Spring AI Alibaba 为例,给大家演示一下它们连续对话是如何实现的。

1.SpringAI连续对话实现

Spring AI 以 MySQL 数据库为例,我们来实现一下它的连续对话功能。

PS:我们只有先讲对话存储起来,才能实现连续对话功能,所以我们需要借助数据库存储来连续对话。

(1)准备工作

创建表:

添加数据库和 MyBatisPlus 依赖:

设置配置文件:

编写实体类:

编写 Mapper:

(2)自定义ChatMemory类

自定义的 ChatMemory 实现类,将对话记录存储到 MySQL:

(3)代码调用

编写代码测试历史对话保存到 MySQL 的功能:

以上程序执行结果如下:

面试官:如何实现大模型的连续对话?

2.SpringAIAlibaba实现连续对话

Spring AI Alibaba 连续对话的实现就简单很多了,因为它内置了 MySQL 和 Redis 的连续对话存储方式,接下来以 Redis 为例演示 SAA 的连续对话实现,它的实现步骤如下:

  • 添加依赖。
  • 设置配置文件,配置 Redis 连接信息。
  • 添加 Redis 配置类,注入 RedisChatMemoryRepository 对象。
  • 配置 ChatClient 实现连续对话。

具体实现如下。

(1)添加依赖

(2)设置配置文件

设置配置文件,配置 Redis 连接信息:

(3)添加Redis配置类

添加 Redis 配置类,注入 RedisChatMemoryRepository 对象,实现 Redis 自定义存储器注入:

(4)配置ChatClient实现连续对话

小结

通过以上代码大家也可以看出来,使用 Spring AI 实现连续对话是比较复杂的,需要自己实现数据库增删改查的代码,并且重写 ChatMemory 才能实现连续对话功能;而 Spring AI Alibaba 因为内置了连续对话的多种实现(Redis 和其他数据库),所以只需要简单配置就可以实现了。

相关资讯

ChatClient vs ChatModel:开发者必须知道的四大区别!

在 Spring AI/Spring AI Alibaba 框架中,ChatModel 和 ChatClient 都可以实现大模型的文本生成功能,例如聊天机器人,但二者是两种不同层级的 API 封装,分别针对不同的开发场景和需求设计。 1.功能定位与抽象层级1.1 ChatModel直接与具体的大语言模型(如通义千问、OpenAI 等)交互,提供基础的 call() 和 stream() 方法,用于同步或流式调用模型,具体使用如下。 复制它的特点是:使用简单、灵活性高。
6/20/2025 12:00:00 AM
磊哥

DeepSeek + IDEA!辅助编程太强了!

2025年的春节可以说是人工智能在中国史上飘红的一段历史时刻,年后上班的第一天,便马不停蹄的尝试新技能。 今天的科技在飞速发展,编程领域的人工智能工具犹如雨后春笋般涌现。 其中,DeepSeek 则以其卓越的性能和智能化的功能,迅速在众多开发者中赢得了青睐。
2/8/2025 8:00:00 AM
码猿技术专栏

如何使用Java设计一套多智能体系统

译者 | 核子可乐审校 | 重楼2025年将成为AI智能体之年。 在本文的场景中,AI智能体是一套能够利用AI通过一系列步骤实现目标的系统,且具备就结果进行推理及更正的能力。 在实践中,智能体遵循的步骤可总结成图表形式。
2/21/2025 8:17:13 AM
核子可乐
  • 1