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

Spring AI 1.0版本 + 千问大模型之文本对话

最近学习了一下最近比较火的Spring AI 项目,作为一个Java coder,Spring生态是最熟悉不过的内容。下面我将通过项目的形式来感受一下Spring AI,这里只是简单的使用实例,不涉及代码深层次的探究。

1、项目准备

我是使用了Idea中 的Spring脚手架构建了Springboot项目。我使用的是Springboot 3.4.7版本。下面是我的pom.xml引入

  <properties><java.version>17</java.version><spring-ai.version>1.0.0</spring-ai.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

application.yaml配置

spring:ai:openai:base-url: https://dashscope.aliyuncs.com/compatible-mode/api-key: ## 我这里是使用了百炼平台,需要去申请api-keychat:options:model: qwen-plus## 这里是输出模型请求和返回的日志,后面的文章,会继续讲解到
logging:level:org.springframework.ai.chat.client.advisor: debugcom.spring: debug

ChatConfig类
用于初始化我们的ChatClient。

@Component
public class ChatConfig {@Beanpublic ChatClient init(OpenAiChatModel chatModel) {return ChatClient.builder(chatModel).defaultSystem("你是一个智能助手,请以友好的语气回答问题。").defaultAdvisors(new SimpleLoggerAdvisor()).build();}
}

1、由于千问模型和OpenAi的结构一样,这里我们使用 OpenAiChatModel 和千问模型实现对话
2、defaultSystem 这里是配置了system默认的提示词文本,用于应用回复对话的提示词
3、defaultAdvisors,这里是注册Advisor的,Spring AI框架提供了很多Advisor,后面的文章我们会详细来介绍的。

ChatController 代码

@RestController
@RequestMapping(value = "/api/chat")
public class ChatController {@Resourceprivate ChatClient chatClient;@GetMapping("/chat")public String chat(@RequestParam(value = "message")String message) {return chatClient.prompt(message).call().content();}
}

下面就是测试对话
在这里插入图片描述
到此Spring AI 1.0版本 + 千问大模型 文本对话就完成了。如果有什么疑问,可以留言交流。

http://www.xdnf.cn/news/15756.html

相关文章:

  • FPGA自学——二选一多路选择器
  • 南洋理工空中导航零样本迁移与泛化!VLFly:基于开放词汇目标理解的无人机视觉语言导航
  • 1. Spring AI概述
  • 论文略读:Are Large Language Models In-Context Graph Learners?
  • 100条常用SQL语句
  • javaweb的几大常见漏洞
  • YOLOv11改进 | DWRSeg扩张式残差助力小目标检测
  • 3.条件判断:让程序学会做选择
  • gitlab+jenkins
  • 【数据结构】栈(stack)
  • Uniapp之自定义图片预览
  • Linux --进程信号
  • 初识C++——开启新旅途
  • 【51单片机学习】LED、独立按键
  • ENSP路由综合实验 + 思科(cisco)/华为(ensp)链路聚合实验
  • C++中的vector(2)
  • 基于Python的口腔正畸健康教育聊天机器人开发与评估研究
  • PyCharm + AI 辅助编程
  • 深度学习图像分类数据集—六十种植物病害分类
  • 基于单片机宠物喂食器/智能宠物窝/智能饲养
  • Typecho博客Ajax评论功能实现全攻略
  • 车载诊断架构 --- OEM对于DTC相关参数得定义
  • FastAPI遇上GraphQL:异步解析器如何让API性能飙升?
  • 【iOS】编译和链接、动静态库及dyld的简单学习
  • 5.组合模式
  • Node.js net.Socket.destroy()深入解析
  • 4.循环结构:让电脑做重复的事情
  • 探秘边缘安全架构设计要点解析
  • Redis 如何保证高并发与高可用
  • 【计算机网络架构】树型架构简介