Spring AI:ChatClient API 真香警告!我用它把聊天机器人卷上天了!



大家好,我是小米,一个每天都在 Java 世界里翻滚的 31 岁程序员大哥哥。今天要聊的是一个我最近用完之后疯狂安利的宝藏框架:Spring AI 的 ChatClient API

前阵子,我在给团队搭一个客服机器人,调了 OpenAI 的 API 半天,代码写得像意大利面条一样乱七八糟。后来一个朋友提醒我: "你怎么不用 Spring AI?"

我:Spring AI?这是 Spring 家出的 AI 框架?

朋友一脸惊讶地说:你居然还没用?

我赶紧撸了一遍官方文档,然后...

只用了一个早上,就把聊天功能整合得干干净净,还支持流式响应、提示模板、内存上下文,甚至还能多模型切换。

今天这篇文章,就带大家全流程撸一遍 Spring AI 的 ChatClient API,告诉你它到底有多香!

开始:创建 ChatClient,三分钟上手!

Spring AI 的 ChatClient 是整个聊天能力的核心,就像你和 OpenAI、Gemini、Claude 打交道的专属话务员。

1. 使用自动配置的 ChatClient.Builder

我们只要添加 Spring AI 的依赖,然后配置 application.yml:

然后就可以直接注入 ChatClient:

这时候你会发现,你连 RestTemplate 都不用写,ChatClient 早就帮你封装好了!

2. 多模型支持,换个 LLM 如切瓜切菜

只要配置多个 ChatModel Bean,就能支持多个模型切换:

然后这样切换:

超级丝滑有没有?

流畅 API:就像写 Java Stream 那么爽

用惯了 Builder 模式的你会觉得 ChatClient 简直是为现代 Javaer 打造的。

我们来看一个经典示例:

一句话就搞定对话,还能链式配置 system message:

这 API 真是给我这样的"懒人程序员"量身定制的。

ChatClient 响应:花样百出,任你选

ChatClient 提供了三种响应方式,满足不同需求。

1. 返回 ChatResponse

最基本的返回值是 ChatResponse,带结构化 metadata:

2. 返回实体对象

你可以直接把返回值映射成 POJO,简直优雅得不行:

3. 流式响应:边说边出字,效果拉满!

想要 ChatGPT 的那种"字一个一个出来"的体验?有!

真的可以边播边写,适合做客服机器人和 AI 写作助手!

提示模板:把 prompt 写进模板,优雅又复用

你是不是经常写 prompt 写到头秃?别怕,Spring AI 帮你抽象成模板了!

1. call() 的返回值支持模板变量

一行搞定上下文填充!告别手搓拼接!

2. stream() 一样支持模板

使用默认值:提示词、角色设定自动套用

你可以提前设好 system message、模板变量,让每次调用都继承下来。

1. 默认系统文本

2. 带参数的默认 system

3. 其他默认值

你还可以设定默认 temperature、maxToken、topP 等参数,一次配置,次次生效。

Advisors:加点"插件",功能立马起飞

ChatClient 的 advisor 系统就像 Spring AOP,可以在聊天前后加逻辑,比如 RAG、日志、缓存等。

1. 配置 Advisor 超简单

2. 检索增强生成(RAG)

加一个 RetrievalAdvisor,就能做到带知识库的问答系统:

结合 VectorStore,就可以构建自己的企业知识助手。

3. 日志记录

可以自定义日志 Advisor,把每次问答都存到数据库或者日志文件:

聊天内存:记住上下文,做一个"有记性"的 AI

聊天机器人最大的问题就是: "上一句你怎么就忘了?"

Spring AI 提供了 Memory 支持,比如 InMemoryChatMemoryStore,可以记录历史对话:

这样,同一个 session 下的用户对话就可以上下文关联了!

总结:Spring AI 的 ChatClient 简直太顶!

从开发者角度来看,Spring AI 做到了:

  • 低门槛接入 OpenAI 等大模型;
  • ChatClient 封装好链式 prompt,支持 call 和 stream;
  • 提示模板、默认值、内存、Advisor 全部一应俱全;
  • 适合构建聊天机器人、RAG 应用、代码助手等各种 AI 工具。

我自己用 Spring AI 重构了一版聊天机器人之后,代码清爽了不止一点点,甚至还加了知识库搜索、上下文聊天和流式响应,全靠 ChatClient 的超强扩展能力

所以朋友们,如果你也在用 Java 开发 AI 应用,别再硬撸 SDK 了,试试 Spring AI 的 ChatClient 吧!

END

我是小米,一个喜欢分享技术的31岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号"软件求生",获取更多技术干货!

相关推荐
墨风如雪11 分钟前
昆仑万维扔出王炸:32B模型干翻671B,代码界迎来全能修理工!
aigc
方圆想当图灵19 分钟前
深入理解软件设计:领域驱动设计实战
后端·领域驱动设计
网小鱼的学习笔记2 小时前
flask静态资源与模板页面、模板用户登录案例
后端·python·flask
ZHOU_WUYI2 小时前
多组件 flask 项目
后端·flask
十六点五2 小时前
JVM(4)——引用类型
java·开发语言·jvm·后端
周末程序猿2 小时前
Linux高性能网络编程十谈|9个C++的开源的网络框架
后端·算法
微信公众号:AI创造财富3 小时前
文生视频(Text-to-Video)
开发语言·人工智能·python·深度学习·aigc·virtualenv
笑傲菌3 小时前
【编程二三事】初识Channel
后端
倔强青铜三3 小时前
🚀LlamaIndex中文教程(1)----对接Qwen3大模型
人工智能·后端·python
小码编匠3 小时前
基于 SpringBoot 开源智碳能源管理系统(EMS),赋能企业节能减排与碳管理
java·后端·开源