当前位置: 首页 > news >正文

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

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是代理网址

springai:openai:# OpenAI keyapi-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;
}
http://www.lryc.cn/news/621684.html

相关文章:

  • Cursor CLI 技术解析:免费调用 GPT-5 的命令行方案
  • Flink的状态管理
  • 项目篇------------网页五子棋(知识预备)
  • GPT 解码策略全解析:从 Beam Search 到 Top-p 采样
  • spring ai-openai-vl模型应用qwen-vl\gpt-文字识别-java
  • 自学大语言模型之Transformer的Tokenizer
  • 用GPT解释“GPT-5”是什么,有什么优势
  • Spring IOC容器在Web环境中的启动奥秘:深入源码解析
  • Grafana 与 InfluxDB 可视化深度集成(一)
  • Al大模型-本地私有化部署大模型-大模型微调
  • 算法学习远程访问:借助 cpolar 内网穿透服务使用 Hello-Algo
  • 以下是对智能电梯控制系统功能及系统云端平台设计要点的详细分析,结合用户提供的梯控系统网络架构设计和系统软硬件组成,分点论述并补充关键要点:
  • JavaScript 核心基础:类型检测、DOM 操作与事件处理
  • C++——分布式
  • 力扣 —— 二分查找
  • 【JAVA 基础入门】运算符详细介绍
  • 【软件设计模式】工厂方法与抽象工厂
  • 【办公类110-01】20250813 园园通新生分班(python+uibot)
  • 微信小程序 拖拽签章
  • GitHub 热榜项目 - 日榜(2025-08-15)
  • Redis核心架构
  • Java 大视界 -- Java 大数据在智能教育虚拟学习环境构建与学习体验增强中的应用(399)
  • electron之win/mac通知免打扰
  • 基本电子元件:碳膜电阻器
  • iOS App TF 上架多工具协作实战,一次高效的应用内测分发流程
  • iOS 性能监控实战,多工具协作完成全方位分析
  • 高并发场景下限流算法对比与实践指南
  • Day59--图论--47. 参加科学大会(卡码网),94. 城市间货物运输 I(卡码网)
  • 《人形机器人的觉醒:技术革命与碳基未来》——电子皮肤技术路线:压阻式电子皮肤及Stanford可拉伸纳米线网格
  • CSS Houdini 与 React 19 调度器:打造极致流畅的网页体验