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
我们传统应用如何对我们智能化改造 有一个深刻得理解