Spring Ai 如何配置以及如何搭建

发布于:2025-08-17 ⋅ 阅读:(12) ⋅ 点赞:(0)

Spring Ai 如何配置以及如何搭建

解释什么是Spring ai

首先,我们用Spring ai 其实不是去了解他的LLM,以及底层用的一些东西,Spring AI,提供给我们的其实是对各种大模型快速调用,提供了大模型API的作用,Spring AI 的核心定位是提供对大模型的标准化调用接口和集成工具,而非训练自有模型或直接管理知识库。它的主要目标是简化AI能力在Java应用中的接入流程,通过抽象化和模块化设计,让开发者能快速对接多种大模型服务。

前期工作

首先我们要加入spring ai 的依赖,如果你用的是Maven,就加入如下配置:这里为什么要单独对spring-ai-core这个进行版本的限定,因为你可能之前引入过Spring ai ,所以为了避免版本不一致,后期我主动在仓库删掉了不一致的版本,不想删的可以显示指定。如下

<dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-openai</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-core</artifactId>
            <version>1.0.0</version>
        </dependency>

目前大家应该都用的是阿里的仓库,但是现在配了阿里的仓库好像还是不能下载,具体可能每个人的环境不同,不能下载的通过如下路径,到阿里仓库搜索上面的依赖下载:
https://maven.aliyun.com/
在这里插入图片描述
然后放到你自己本地的Maven仓库,也不用什么命令。直接打开你的仓库,路径为如下,点进去看见这两个文件了注意我的是在D盘:D:\repository\org\springframework\experimental\ai
引入之后,就直接创建一个Controller就可以了代码如下:特别注意的是不同版本的AI实现不同,具体大家有用不同的版本可以自己搜索。1.0.0这个版本如下:
在这里插入图片描述

private final ChatClient chatClient;  // 直接注入具体实现
    public TestController(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder.build();
    }
 @GetMapping("/chat")
    public String callAi(@RequestParam String message){
        return chatClient.prompt()
                .user(message)  // 设置用户消息
                .call()         // 执行调用
                .content();     // 获取响应内容
    }


代码简单的调用就完成了。下面是我们的配置,如果你要调用ChatGpt,那么就得配置Gpt的key,这个和阿里大模型,通义千问(Qwen)类似,一样得配置key
在yml中或者是你自己项目里面的配置文件中添加如下配置:api-key就是Key,base-url是代理网址

spring
  ai:
    openai:
      # OpenAI key
      api-key: 
      base-url: 
        # 添加超时配置
      chat:
        options:
          model: gpt-3.5-turbo  # 默认模型
          temperature: 0.7      # 控制生成随机性
在这里插入代码片

到此Spring ai 就配置完了。感谢大家的阅读,谢谢,本篇博客就是在帮大家快速搭建环境,细节东西后续更新

关于大家为啥创建了chatClient报红,说没有这个Bean的错误,那是因为你引入的依赖版本不对,把你的包路径鼠标点进去,你大概率会发现,虽然你依赖里面引入了,但是还是用的旧版本,情况一这个原因大概率就是idea缓存还是指向了旧的版本。情况二是因为你之前引入了别的版本,手动修改之后,多个版本在你的Libraries中,你可以手动将别的版本删掉,或者清理缓存,或者是将你类中的import全部删掉,手动引入对应版本的jar包。下面这一行会报错!!!
private final ChatClient chatClient;

还有的是会报ChatClient.Builder,没有Builder这个方法,也是因为上面这个原因,版本的原因。

public TestController(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder.build();
    }

具体我们看源码,1.0.0这个版本就是bulider,采用了建造者模式和分层初始化的思想
在这里插入图片描述
我们看第一个create
最简创建创建调用(隐藏观测系统细节)
第二个create
允许自定义观测系统

建造者模式的应用

static Builder builder(ChatModel chatModel) {
    return builder(chatModel, ObservationRegistry.NOOP, null);
}

static Builder builder(/*全参数*/) {
    return new DefaultChatClientBuilder(chatModel, registry, convention);
}

为什么Spring要这么设计?
延迟初始化:
Builder 允许在构建时(build()调用时)才真正创建客户端
避免在Spring容器启动阶段立即连接AI服务
代替方案

// 替代方案(不推荐)
public TestController(ChatClient chatClient) {
    this.chatClient = chatClient;
}


网站公告

今日签到

点亮在社区的每一天
去签到