Spring AI ChatClient详解:创建第一个AI客户端

本文是"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问答

相关推荐
孙6903422 分钟前
Spring 注入多例 Bean
java·spring
Jul1en_3 分钟前
【Java 脚手架】封装通用工具类-3
java·开发语言·redis·缓存·ai·bootstrap·rabbitmq
边境悍匪39 分钟前
springboot常用注解
java·spring boot·学习
captain3761 小时前
文件与IO(2)
java·开发语言·windows·java-ee
mqiqe1 小时前
AgentScope Java 2.0 集成 Chat Completions Web:一行依赖让你的 Agent 变身 OpenAI 兼容服务
java·开发语言·前端
qq_589666052 小时前
Java微服务介绍及应用
java·开发语言·微服务
OPEN-F2 小时前
C++进阶教程:运算符重载与类型转换
java·c++·算法
小小数媒成员2 小时前
存储器层级结构
java·服务器·前端
牧杉-惊蛰2 小时前
将数组对象根据自定义排列
java·开发语言·算法
砚底藏山河2 小时前
【量化纯GET实战 #04】批量快照:一次 HTTP GET 取多只股票
java·python·金融·eclipse