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.pswp.cn/news/918658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918658.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

windows git安裝步驟

1,從官網下載安裝包:gitg官網 進行安裝 2,配置git環境: git config --global user.name "Your Name" git config --global user.email "Your Email"3,生成 SSH Key: ssh-keygen -t r…

使用chroma和LlamaIndex做RAG增強

RAG 原理:通過 “檢索(從知識庫獲取相關信息)→ 增強(將信息作為上下文輸入模型)→ 生成(模型基于上下文回答)” 三步,解決大模型知識時效性、領域局限性問題。 接下來將完成這么一個…

2025 最應避免的攝影陷阱以及解決方案

你有沒有想過,當你拍完了一個完美的場景后,卻發現畫面模糊、光線不足,或者更糟的是,存儲卡中的文件丟失了?這些問題可能會發生在任何人身上,無論是業余愛好者、專業人士還是最好的攝影師。當珍貴的記憶變成…

python類--python011

面向對象編程中的類的概念、屬性使用、繼承和類的改造問題等。7.1 初識類在軟件編程中,面向過程和面向對象是兩種主要的編程方法。面向過程的編程強調通過函數來實現特定的功能,具有靈活性,但在復雜系統中往往導致代碼重復,維護困…

Python函數篇:從零到精通

一、函數1.1 為什么有函數我們對于一個項目時,會有上千甚至上萬條代碼,當我們要使用到某個函數時,例如我需要計算一個求和代碼,獲得求和的值來服務我們的項目,那我們可能會這樣#計算1~100的和 theSun 0 fo…

QT項目之記事本

本文用QT實現記事本功能。一、成品展示1.界面主要元素:1.標題為MyNoteBook;2.相應圖標為:打開文件,保存,退出;3.右下角標注光標所在行列,默認編碼方式為UTF-8;4.鼠標所在圖標位置時會…

【軟件測試】性能測試 —— 工具篇 JMeter 介紹與使用

🥰🥰🥰來都來了,不妨點個關注叭! 👉博客主頁:歡迎各位大佬!👈 文章目錄1. JMeter 的介紹2. JMeter 安裝、配置、搭建2.1 前置條件 —— Java環境搭建2.2 JMeter 下載2.3 JMeter 安裝…

二十二、Mybatis-快速入門程序

入門程序大概步驟敘述: 步驟一:創建springboot工程并且數據庫提前創建表步驟二:創建springboot工程對Mybatis相關依賴注意打勾步驟三:編寫查找方法步驟四:編寫測試方法項目目錄結構與數據庫以及代碼: 項目目…

Blender模擬結構光3D Scanner(一)外參數匹配

如何使用Blender模擬FPP(Fringe Projection Profilometry) 原理的結構光3D傳感器?主要包含的工作有:1)相機、投影儀定位與內外參數匹配;2)投影儀投射指定Pattern圖像;3)被測物體材質屬性配置等&…

LangChain是如何實現RAG多輪問答的

目錄引言一、LangChain實現RAG多輪問答核心機制1. 對話歷史管理(Memory)2. 問題重寫(Query Rewriting)3. 檢索增強生成(RAG Core)4. 鏈式工作流(Chain)二、關鍵設計特點三、完整示例…

DAY 44 預訓練模型

知識點回顧: 預訓練的概念常見的分類預訓練模型圖像預訓練模型的發展史預訓練的策略預訓練代碼實戰:resnet18 一、預訓練的概念 我們之前在訓練中發現,準確率最開始隨著epoch的增加而增加。隨著循環的更新,參數在不斷發生更新。 所…

Java Stream API 中常用方法復習及項目實戰示例

在最近的練手項目中,對于stream流的操作愈加頻繁,我也越來越感覺stream流在處理數據是的干凈利落,因此寫博客用來記錄最近常用的方法以便于未來的復習。map() 方法map()是一個中間操作(intermediate operation)&#x…

從零開始手搓一個GPT大語言模型:從理論到實踐的完整指南(一)

現在人工智能飛速發展時代,LLM絕對可以算是人工智能領域得一顆明珠,也是現在許多AI項目落地得必不可少得一個模塊,可以說,不管你之前得研究領域是AI得哪個方向,現在都需要會一些LLM基礎,在這個系列&#xf…

Redis ubuntu下載Redis的C++客戶端

1. 安裝 redis-plus-plus C 操作 Redis 的庫有很多,這里選擇使用 redis-plus-plus,這個庫的功能強大,使用簡單。 Github 地址:GitHub - sewenew/redis-plus-plus: Redis client written in C 訪問不了Github 地址的可以使用Ste…

nm命令和nm -D命令參數

出現這種差異的原因在于:動態庫中的符號分為兩種類型: 常規符號表(regular symbol table):通常用于靜態鏈接和調試,默認不包含在動態庫中(除非顯式保留)。動態符號表(dyn…

Windows下cuda的安裝和配置

今天開始做一個cuda教程。由于本人主要在windows下使用visual studio進行開發,因此這里講一下windows下的cuda開發環境。 下載cuda_toolkit 從網站https://developer.nvidia.com/cuda-toolkit中下載,先選擇Download Now,然后跳轉到如下頁面&#xff1a…

【代碼隨想錄day 19】 力扣 450.刪除二叉搜索樹中的節點

視頻講解:https://www.bilibili.com/video/BV1tP41177us/?share_sourcecopy_web&vd_sourcea935eaede74a204ec74fd041b917810c 文檔講解:https://programmercarl.com/0450.%E5%88%A0%E9%99%A4%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E4%B8%A…

智慧養老丨實用科普+避坑指南:科技如何讓晚年生活更安全舒適?

隨著老齡化社會的到來,智慧養老產品逐漸成為改善老年人生活質量的重要工具。從智能手表到便攜洗浴機,科技正為老年人的健康、安全與生活便利提供創新解決方案。我們這次主要介紹四類典型智慧養老產品,結合真實體驗給出選購建議,并…

系統垃圾清理批處理腳本 (BAT)

系統垃圾清理批處理腳本 (BAT) 以下是一個Windows系統垃圾清理的批處理腳本,它可以清理常見的系統臨時文件、緩存和日志等: echo off title 系統垃圾清理工具 color 0a echo. echo 正在清理系統垃圾文件,請稍候... echo.:: 清理臨時文件 echo…

Terraform的零基礎學習教程

一、Terraform 是什么? Terraform 是由 HashiCorp 開發的開源工具,用于自動化管理云基礎設施(如 AWS、Azure、GCP 等)。 核心特點: 基礎設施即代碼(IaC):用代碼定義和管理資源。跨…