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

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.xdnf.cn/news/17779.html

相关文章:

  • Jmeter自定义脚本
  • 零基础学会制作 基于STM32单片机智能加湿系统/加湿监测/蓝牙系统/监测水量
  • 探索无人机图传技术:创新视野与无限可能
  • 在 macOS 上顺利安装 lapsolver
  • OpenCV Python——VSCode编写第一个OpenCV-Python程序 ,图像读取及翻转cv2.flip(上下、左右、上下左右一起翻转)
  • 死锁总结及解决方案
  • 关于截屏时实现游戏暂停以及本地和上线不同步问题
  • 用GPT解释“GPT-5”是什么,有什么优势
  • python-pycharm切换python各种版本的环境与安装python各种版本的环境(pypi轮子下载)
  • Flink Stream API 源码走读 - map 和 flatMap
  • KNN(k近邻算法)
  • Chrome插件开发实战:从架构到发布全流程
  • 准备用Qt6 重写音视频会议系统服务端
  • 开源 Arkts 鸿蒙应用 开发(十五)自定义绘图控件--仪表盘
  • 开源 Arkts 鸿蒙应用 开发(十六)自定义绘图控件--波形图
  • 【Javaweb学习|黑马笔记|Day1】初识,入门网页,HTML-CSS|常见的标签和样式|标题排版和样式、正文排版和样式
  • 前端css学习笔记6:盒子模型
  • 国内著名AI搜索优化专家孟庆涛发表《AI搜索内容可信度评估综合指南》
  • liteflow
  • Vue3中的ref与reactive全面解析:如何正确选择响应式声明方式
  • Java List 集合详解(ArrayList、LinkedList、Vector)
  • 水印消失术!JavaAI深度学习去水印技术深度剖析
  • 传输层协议TCP(3)
  • Flink Stream API 源码走读 - socketTextStream
  • 集成电路学习:什么是Machine Learning机器学习
  • 从单机到分布式:用飞算JavaAI构建可扩展的TCP多人聊天系统
  • 【力扣56】合并区间
  • easyexcel模板导出Map数据时空值列被下一行列非空数据覆盖
  • 从零开始的云计算生活——第四十三天,激流勇进,kubernetes模块之Pod资源对象
  • 使用Docker和Miniconda3搭建YOLOv13开发环境