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

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

我们将如何将我们得传统业务进行智能化的改造
>>>1.将我们传统的航空票务系统  我们之前通过按钮的方式来完成 现在我们通过智能对话的方式完成
>

在这里插入图片描述

现在我们通过对话的方式来完成 整个智能化的改造
传统应用如何进行智能化改造
我们把我们的项目通过Spring-ai 来接入Ai大模型  然后整合我们自己的业务来完成 大模型应用的开发我们的项目架构 通过rag 会把我们业务数据----->存储在我们的向量存储中
我们会把我们的业务数据检索进入向量存储中-------->告诉大模型--->这样大模型就具备了我们垂直

在这里插入图片描述

1.promt 我们可以利用提示词来预设一些角色
2.会话记忆 大模型可以记录我的名字 整个会话过程中知道我叫xushu

在这里插入图片描述

我的这些票据信息 (我们要把我们的系统的数据喂给大模型)
##>>  当我退订成功  大模型会执行我们的API --->将状态update (x)
在这里插入代码片

在这里插入图片描述

 当我们基于spring-ai接入大模型的时候 我们和大模型的对话是这样的, 我们第一个要做的就是预设角色,因为你现在的聊天是漫无目的的,呢我希望它是一个智能航空助手来跟我对话 

在这里插入图片描述
在这里插入图片描述

当我设置完毕角色之后 再和ai 进行对话的时候效果就会好很多了##  
预设角色完成后,下一步我给他增加我们的对话记忆, 因为现在说话 他是记不住我之前所说的话的
##  比如说这样

在这里插入图片描述

  现在他就不知道我叫什么了,但是我之前已经明显告诉它了  就是因为此时他没有记录我的名字  没有对话记忆我们可以加入它的会话记忆, 此时我们的chatmemory 是记录在内存的,当然我们也可以把它记录在redis

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

divusirs 加一个拦截器
代表我可以记忆100条聊天记录  现在就已经拥有了对话记忆的功能了对话记忆的底层原理  我告诉它我叫xuru  后续它就知道我叫xushule 

在这里插入图片描述

我们springai 跟大模型进行对话 其实是根据这个Promt 提示词 当我第一次告诉它 您好 我叫xushu
它回答 欢迎你xushu   我如果配置了对话记忆 当我下次问他 我叫什么  它会把之前所有的对话记录 都一起传到我们的大模型
大模型会根据之前的所有的对话信息就能够检索到  从而就可以完成 所谓的对话记忆、、###########》此时对话有了记录 我们就可以在开发阶段做一些记录 当某些对话达不到我们想要的效果时,我们就可以分析一下整个对话中
聊天聊的是什么实现一下对话的日志记录.defaultAdvices 就是对话之间的拦截器 我们此时的对话记忆就是通过拦截器实现的

在这里插入图片描述
在这里插入图片描述

  它此时就会把对话内容发出来, 这样方便我们分析对话智能对话当中最核心的2个功能 退订和更改预定
退订的业务需求   我们只能退订临发车之前头2天的时间 然后退订成功之后 我们把状态改为 取消
我们怎么通过对话的方式让大模型调用我们的方法

在这里插入图片描述


我们怎么在对话中拿到用户提供的预定号和姓名
我们可以加入提示词 就可以让用户提供给我们 预定号和姓名
我们可以加入提示词 就可以让用户提供给我们 预定号和姓名

在这里插入图片描述

 所以 此时我们的聊天内容就变成这样了,我们可以通过引导的方式告诉用户 如果你需要退订的话 麻烦你提供预定好和姓名

在这里插入图片描述


当我们提供了预定号和姓名 之后就胡扯了  因为它此时没有调用到我们的业务方法
通过funcingCall 调用我们的业务方法 并且我们还要提取到对话当中的 这这关键参数######  我们需要写这么一个方法  第一个参数就是 我们需要从

在这里插入图片描述
在这里插入图片描述

这里 第一个代表我从大模型中需要获取的东西,
我告诉大模型 是用来处理机票退订得
这样大模型就知道了 当你业务需要处理机票退订   这样 大模型就提取预定号和姓名 然后调用业务方法  实现退订业务实现第二个参数是我要告诉大模型的
比如说航班信息是我系统内部的数据 我要怎么告诉大模型

在这里插入图片描述

>>>>>>1. 调整我们的提示词

在这里插入图片描述
在这里插入图片描述

在这里插入代码片

在这里插入图片描述

之前我们实现了退订,但是现在退订得花 还得让客户确认下机票信息,而不是我直接发给你信息后直接就给我票退了

在这里插入图片描述

其实我们只要加入提示词就可以了

在这里插入图片描述

第二个参数是我们要返回给大模型得数据

在这里插入图片描述
在这里插入图片描述

##########》》》》》。这样的话我就会吧我得航班信息告诉给大模型

在这里插入图片描述

##############>现在就可以确认了

在这里插入图片描述

##########。>>>>>>..退订实现了现在我们用rag 来增强我们的对话内容比如说我此时咨询,需要扣费么 它基础大模型肯定是不知道的。此时我们就可以通过这个问题去查询向量db(相似性检索)

在这里插入图片描述

向量数据库 做相似性检索得 当我们ask 退费需要扣费么
就可以检索到跟扣费相似得内容  但是前提我们得先往向量数据库中检入大量得需求内容
我就得要把取消退票预定 造成得一些影响 先检入到向量db中
我们的模板 ------>检入的内容

在这里插入图片描述

就是航空系统得一些条款
当用户进行不同得对话 比如说取消预定 在对话当中就会实时得告诉它这些条款
#############>>>>>>>>>>>>>>>>>>>..
配置一个向量数据库 比如说redis es
本案例中我们用内存数据库  ------------->怎么用redis 实现向量数据库

在这里插入图片描述

启动springboot得时候就会运行------>写入向量库
读取资料 不管是文件也好/文档
转换为向量数据库所需要得文档--->写入向量数据库

在这里插入图片描述

添加rag

在这里插入图片描述

向量数据库得内容能不能加到角色预设中  肯定可以得
但是我们实际过程中 我们得预设角色数据都是一些基本信息 
我们可以通过我们得业务数据--->rag 检索到向量dbzhong 
我们传统应用如何对我们智能化改造 有一个深刻得理解
http://www.dtcms.com/a/324626.html

相关文章:

  • 《算法导论》第 17 章 - 摊还分析
  • XGBoost 与 GBDT 的比较:改进与性能提升
  • MATLAB绘制水的蒸汽压曲线(Antoine方程)
  • GitHub上为什么采用Gradle编译要多于Maven
  • DBSACN算法的一些应用
  • 【算法】图的 深度优先搜索(DFS)与 广度优先搜索(BFS)
  • Stream流应用
  • 学习分库分表的前置知识:高可用系统架构理论与实践
  • Java进阶之单列集合Set接口下的通用方法
  • Design Compiler:布图规划探索(ICC II)
  • LwIP的内存管理(1)
  • 密码学RSA取flag
  • 动态工作流:目标结构源自表
  • GeoJSON 介绍
  • 大模型时代的机器人研究趋势:从多模态融合到高效迁移
  • 【C++/STL】list模拟实现和迭代器失效问题
  • Spring Boot配置文件加密详解
  • 6.AD环境中的安全威胁与防护措施全性
  • java报错“ NoSuchMethodError:com.test.Service.doRoomList(Ljava/lang/String;)V解决方案
  • 红黑树及其简单实现
  • XGBoost参数说明和详解
  • Suno API V5 全面升级——多语言接入,开启 AI 音乐创作新时代
  • 计算机网络:路由聚合的注意事项有哪些?
  • vue3前端项目cursor rule
  • ARM保留的标准中断处理程序入口和外设中断处理程序入口介绍
  • 【Jenkins入门以及安装】
  • SQL176 每个题目和每份试卷被作答的人数和次数
  • 力扣(H指数)
  • Mysql 8.0 新特性
  • 以太网相关协议