SpringAI智能航空助手实战<Demo>

bash 复制代码
我们将如何将我们得传统业务进行智能化的改造
bash 复制代码
>>>1.将我们传统的航空票务系统  我们之前通过按钮的方式来完成 现在我们通过智能对话的方式完成
>
bash 复制代码
现在我们通过对话的方式来完成 整个智能化的改造
传统应用如何进行智能化改造
我们把我们的项目通过Spring-ai 来接入Ai大模型  然后整合我们自己的业务来完成 大模型应用的开发

我们的项目架构 通过rag 会把我们业务数据----->存储在我们的向量存储中
我们会把我们的业务数据检索进入向量存储中-------->告诉大模型--->这样大模型就具备了我们垂直
bash 复制代码
1.promt 我们可以利用提示词来预设一些角色
2.会话记忆 大模型可以记录我的名字 整个会话过程中知道我叫xushu
bash 复制代码
我的这些票据信息 (我们要把我们的系统的数据喂给大模型)
##>>  当我退订成功  大模型会执行我们的API --->将状态update (x)
bash 复制代码
在这里插入代码片
bash 复制代码
 当我们基于spring-ai接入大模型的时候 我们和大模型的对话是这样的, 我们第一个要做的就是预设角色,
 因为你现在的聊天是漫无目的的,呢我希望它是一个智能航空助手来跟我对话 
 


bash 复制代码
当我设置完毕角色之后 再和ai 进行对话的时候效果就会好很多了##  
预设角色完成后,下一步我给他增加我们的对话记忆, 因为现在说话 他是记不住我之前所说的话的
##  比如说这样
bash 复制代码
  现在他就不知道我叫什么了,但是我之前已经明显告诉它了  就是因为此时他没有记录我的名字  没有对话记忆
 我们可以加入它的会话记忆, 此时我们的chatmemory 是记录在内存的,当然我们也可以把它记录在redis



bash 复制代码
divusirs 加一个拦截器
代表我可以记忆100条聊天记录  现在就已经拥有了对话记忆的功能了

对话记忆的底层原理  我告诉它我叫xuru  后续它就知道我叫xushule 
bash 复制代码
我们springai 跟大模型进行对话 其实是根据这个Promt 提示词 当我第一次告诉它 您好 我叫xushu
它回答 欢迎你xushu   我如果配置了对话记忆 当我下次问他 我叫什么  它会把之前所有的对话记录 都一起传到我们的大模型
大模型会根据之前的所有的对话信息就能够检索到  从而就可以完成 所谓的对话记忆、、


###########》此时对话有了记录 我们就可以在开发阶段做一些记录 当某些对话达不到我们想要的效果时,我们就可以分析一下整个对话中
聊天聊的是什么

实现一下对话的日志记录
 .defaultAdvices 就是对话之间的拦截器 我们此时的对话记忆就是通过拦截器实现的


bash 复制代码
  它此时就会把对话内容发出来, 这样方便我们分析对话
  智能对话当中最核心的2个功能 退订和更改预定
bash 复制代码
退订的业务需求   我们只能退订临发车之前头2天的时间 然后退订成功之后 我们把状态改为 取消
我们怎么通过对话的方式让大模型调用我们的方法
bash 复制代码
我们怎么在对话中拿到用户提供的预定号和姓名
我们可以加入提示词 就可以让用户提供给我们 预定号和姓名
bash 复制代码
我们可以加入提示词 就可以让用户提供给我们 预定号和姓名
bash 复制代码
 所以 此时我们的聊天内容就变成这样了,我们可以通过引导的方式告诉用户 如果你需要退订的话 麻烦你提供预定好和姓名
bash 复制代码
当我们提供了预定号和姓名 之后就胡扯了  因为它此时没有调用到我们的业务方法
通过funcingCall 调用我们的业务方法 并且我们还要提取到对话当中的 这这关键参数

######  我们需要写这么一个方法  第一个参数就是 我们需要从


bash 复制代码
这里 第一个代表我从大模型中需要获取的东西,
我告诉大模型 是用来处理机票退订得
这样大模型就知道了 当你业务需要处理机票退订   这样 大模型就提取预定号和姓名 然后调用业务方法  实现退订业务实现

第二个参数是我要告诉大模型的
bash 复制代码
比如说航班信息是我系统内部的数据 我要怎么告诉大模型
bash 复制代码
>>>>>>1. 调整我们的提示词


bash 复制代码
在这里插入代码片
bash 复制代码
之前我们实现了退订,但是现在退订得花 还得让客户确认下机票信息,而不是我直接发给你信息后直接就给我票退了
bash 复制代码
其实我们只要加入提示词就可以了
bash 复制代码
第二个参数是我们要返回给大模型得数据


bash 复制代码
##########》》》》》。这样的话我就会吧我得航班信息告诉给大模型
bash 复制代码
##############>现在就可以确认了
bash 复制代码
##########。>>>>>>..退订实现了

现在我们用rag 来增强我们的对话内容

比如说我此时咨询,需要扣费么 它基础大模型肯定是不知道的。此时我们就可以通过这个问题去查询向量db(相似性检索)
bash 复制代码
向量数据库 做相似性检索得 当我们ask 退费需要扣费么
就可以检索到跟扣费相似得内容  但是前提我们得先往向量数据库中检入大量得需求内容
我就得要把取消退票预定 造成得一些影响 先检入到向量db中
bash 复制代码
我们的模板 ------>检入的内容
bash 复制代码
就是航空系统得一些条款
当用户进行不同得对话 比如说取消预定 在对话当中就会实时得告诉它这些条款
#############>>>>>>>>>>>>>>>>>>>..
配置一个向量数据库 比如说redis es
本案例中我们用内存数据库  ------------->怎么用redis 实现向量数据库
bash 复制代码
启动springboot得时候就会运行------>写入向量库
读取资料 不管是文件也好/文档
转换为向量数据库所需要得文档--->写入向量数据库
bash 复制代码
添加rag
bash 复制代码
向量数据库得内容能不能加到角色预设中  肯定可以得
但是我们实际过程中 我们得预设角色数据都是一些基本信息 
我们可以通过我们得业务数据--->rag 检索到向量dbzhong 
我们传统应用如何对我们智能化改造 有一个深刻得理解
相关推荐
麦兜*3 小时前
内存杀手机器:TensorFlow Lite + Spring Boot移动端模型服务深度优化方案
java·人工智能·spring boot·spring cloud·ai·tensorflow·ai编程
tanxiaomi5 小时前
✨ 基于 JsonSerialize 实现接口返回数据的智能枚举转换(优雅告别前端硬编码!)
java·前端·spring·spring cloud·mybatis
鼠鼠我捏,要死了捏7 小时前
生产环境中Spring Cloud Sleuth与Zipkin分布式链路追踪实战经验分享
spring cloud·sleuth·zipkin
麦兜*1 天前
LangChain4j终极指南:Spring Boot构建企业级Agent框架
java·spring boot·spring·spring cloud·ai·langchain·ai编程
草履虫建模1 天前
RuoYi-Cloud 微服务本地部署详细流程实录(IDEA + 本地 Windows 环境)
java·spring boot·spring cloud·微服务·云原生·架构·maven
刘火锅2 天前
Bug 记录:SecureRandom.getInstanceStrong()导致验证码获取阻塞
spring boot·spring·spring cloud·bug
sg_knight2 天前
Spring Cloud Gateway全栈实践:动态路由能力与WebFlux深度整合
java·spring boot·网关·spring·spring cloud·微服务·gateway
草履虫建模2 天前
RuoYi OpenAPI集成从单体到微服务改造全过程记录
java·运维·vue.js·spring cloud·微服务·云原生·架构
橘子编程2 天前
SpringBoot核心特性详解
java·jvm·spring boot·spring·spring cloud·tomcat