本文是"Spring AI 智能体实战"系列第 4/30 篇。项目采用 Java 17、Spring Boot 3.4.3 和课程示例所使用的 Spring AI 版本。不同 Spring AI 版本的依赖名称和部分 API 可能存在差异,请以自己项目的版本为准。
前言
理解 ChatClient、ChatModel 和 Spring Bean 之间的关系,完成统一客户端配置。
本文将沿用同一个实战项目逐步完成相关功能。所有密钥均使用环境变量表示,复制代码后请在本地配置真实值,不要把 API Key 或数据库密码提交到代码仓库。
本文目标
-
理解本节功能解决的实际问题。
-
掌握关键配置、接口与代码结构。
-
完成可验证的运行结果,为下一节功能做好准备。
ChatClient.java
ChatClient中封装了与AI大模型对话的各种API,同时支持同步式或响应式交互。
不过,在使用之前,首先我们需要声明一个ChatClient。
在com.gdcp.ai.config包下新建一个CommonConfiguration类:

完整代码如下:
java
package com.gdcp.ai.config;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class CommonConfiguration {
// 参数中的model就是使用的模型,这里用了OpenAIChatModel
@Bean
public ChatClient chatClient(OpenAiChatModel model){
return ChatClient.builder(model) //创建ChatClient工厂
.build(); //构建ChatClient实例
}
}
代码解读:
-
ChatClient.builder:会得到一个ChatClient.Builder工厂对象,利用它可以自由选择模型、添加各种自定义配置 -
OllamaChatModel:如果你引入了ollama的starter,这里就可以自动注入OllamaChatModel对象。同理,OpenAI也是一样的用法。
本文总结
通过配置类创建了可复用的 ChatClient,后续 Controller 和 Service 都可以直接注入使用。
建议在进入下一篇之前亲自运行本文代码,并记录请求参数、控制台日志和最终响应。遇到问题时,优先检查依赖版本、模型名称、环境变量和包名是否一致。
下一篇预告
下一篇:Spring AI同步调用实战:用一个接口完成AI问答。