大家好,我是小米。

今天想和你聊聊一个最近我在用、而且越用越觉得香的东西 —— Spring AI 的聊天模型 API。说真的,我原来一直以为这种东西只有 OpenAI 或 LangChain 那种顶级玩家才玩得转,直到有天我用 Spring Boot 写业务代码时,无意间逛进了 spring-ai 的世界,然后我“哇”地一声,原来整合 AI 聊天模型,也可以这么简单、优雅、原生!

好了,不卖关子,今天我就带你用故事的方式,走一圈 Spring AI 的聊天模型 API 的“江湖”。从一位叫做 ChatModel 的主角出发,踏遍十个关键概念的山川湖海。

初识 ChatModel:江湖的起点

故事开始在一个老旧的工作台前,我敲下了第一行 Spring AI 的代码。

就像所有武侠小说里都会有的门派一样,Spring AI 的“入门心法”就是 ChatModel 接口。它是聊天模型世界的核心主角,定义了一个最基础的能力:

给我一个 Prompt(提示词),我返回一个 ChatResponse(聊天响应)。

这就像一个掌门人说:“来吧,把你的问题说出来,我帮你问天问地问神仙。”

它的使用方式很简洁,就像这样:

Spring AI 聊天模型 10 个关键组件详解,建议收藏!_开发者

你只要给它一个 Prompt,它就会把回答包装好,原封不动地交到你手上。

StreamingChatModel:高手过招,不落俗套

有的读者可能要问了,“那如果我不想一次性拿到全部回复,而是想像 ChatGPT 一样,一边说一边听?”

答案就是 —— StreamingChatModel。

它就像江湖中的快剑流派,讲究一个“快”字,刀光剑影中,一字一句地把答案给你打出来。

使用起来也很像 Reactor 风格的流式响应:

Spring AI 聊天模型 10 个关键组件详解,建议收藏!_API_02

适合用在对响应时效性要求高,或需要边听边展示 UI 的场景,比如直播、语音播报、代码助手等等。

Prompt:故事的开头,谜题的抛出

一切聊天的故事,都是从一个问题开始的。

而 Prompt,就是你要说给 AI 听的话,是你在江湖上打出的第一招。

在 Spring AI 中,Prompt 是对用户输入信息的抽象,可以包含一系列消息(比如系统提示、用户提问、AI 回复历史),也可以用模板方式动态生成,支持使用 PromptTemplate 来组织内容。

举个栗子:

Spring AI 聊天模型 10 个关键组件详解,建议收藏!_结构化_03

这里就定义了一次完整的聊天上下文,第一条设定了角色,第二条是真正的问题。

Message:江湖传信的鸽子

提到 Prompt,就一定离不开 Message。

这个概念其实特别朴素:对话中的每一句话,都是一个 Message 对象。

它分三种类型:

  • SystemMessage:设定场景的规则,比如“你是个友善的机器人”
  • UserMessage:用户输入的内容
  • AssistantMessage:AI 的回答(通常是上下文中记录下来的)

Message 是 Prompt 的组成部分,就像一本秘籍里的每一页,合起来才能构成完整的心法。

ChatOptions:AI 的性格开关

有时候你会发现 AI 太啰嗦了,有时候又太冷淡了。这时候,你就该动动它的“性格开关”了。

这,就是 ChatOptions 的作用。

它允许你设置:

  • 温度(temperature):控制回答的随机性
  • 最大 Token(maxTokens):控制回答长度
  • Top-K / Top-P:控制采样策略
  • 还有模型名称、API 参数等定制项

在实际开发中,ChatOptions 通常通过 builder 模式或者注入方式传入模型。

设置之后,聊天模型就会像换了副人格一样,变得你想要的样子。

ChatResponse 与 Generation:一问一答的艺术

问完了问题,模型答了回来,这就是 ChatResponse。

你可以把它看作是 AI 给你回的信,它里面可能有多个 Generation,每个 Generation 是一次完整的生成内容。

为啥是多个?因为有些模型(尤其是多样化生成)可以一次生成多个回答,你可以选最合适的那个。

是不是和你用 ChatGPT 时看到“1 / 3 回答”很像?对,这就是 Spring AI 抽象背后的强大之处。

可用实现:江湖中的各大门派

看到这里你可能会问:那这些聊天模型到底有哪些“门派”可以选?

Spring AI 中目前支持的聊天模型实现包括但不限于:

  • OpenAI(ChatGPT)
  • Azure OpenAI
  • HuggingFace Transformers(通过本地模型调用)
  • Ollama(开源模型运行平台)
  • Google Gemini(实验性)
  • Cohere、Mistral 等新兴模型商

每一个模型实现,都封装为一个 ChatModel 实例,配置简单,通常一个 .yml 就能搞定。

比如使用 OpenAI:

你可以在配置中直接切换模型,就像江湖中换一把剑一样方便。

聊天模型 API:化繁为简的精妙设计

讲到最后,我们再回头看看这个“聊天模型 API”本身,它的核心优势其实就是“化繁为简”。

Spring AI 不追求把所有细节暴露在外,而是提供了一组统一、清晰的接口体系:

  • ChatModel / StreamingChatModel:统一调用方式
  • Prompt / Message:结构化上下文
  • ChatResponse / Generation:结构化输出
  • ChatOptions:可控个性化
  • 模型配置一体化:让你在 Spring Boot 项目中轻松接入

对于熟悉 Spring 生态的开发者来说,使用 Spring AI 就像用 Spring Security、Spring Data 一样丝滑自然。

写在最后:别让 AI 只存在于想象中

我知道现在很多人听到 AI 都会觉得它太遥远、太复杂、太玄学。

但今天你看到的这一切,其实已经可以用在你日常开发的每一处了。

比如客服系统、内部知识问答、AI 编程助手、聊天机器人、文档总结器、甚至家里做菜的小程序助手 —— 都能轻松整合 Spring AI 聊天模型。

而且,Spring AI 还在快速发展中,未来会支持更多模型、更多交互形式,甚至和 LangChain、RAG 框架深度集成。

所以,不妨就从现在开始,试着用 Spring AI 的聊天模型 API 做点什么吧。相信我,AI 时代最宝贵的,不是模型,不是 API,而是你——那个愿意动手的人。

END

如果你喜欢这篇文章,欢迎点个赞、点个在看,或者转发给你想入门 AI 的朋友。也欢迎关注我,和我一起探索技术的边界。

我们下次见~

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