大模型實(shí)踐分享:Agent融合RAG、大幅降低大模型的幻覺,提供更準(zhǔn)確可靠問答體驗(yàn)
TFlow AI通過融合RAG問答系統(tǒng)與Agent框架,提供了一個(gè)創(chuàng)新的解決方案,旨在提高B端業(yè)務(wù)場景下的AI客服和導(dǎo)購應(yīng)用的響應(yīng)質(zhì)量和準(zhǔn)確性。本文將深入探討這一組合的優(yōu)勢及其在實(shí)際應(yīng)用中的表現(xiàn),為讀者揭示如何利用先進(jìn)技術(shù)優(yōu)化客戶服務(wù)體驗(yàn)。
實(shí)踐產(chǎn)品介紹,TFlow Ai是面向B端業(yè)務(wù)場景Agent平臺,能按流程處理任務(wù)(SOP),圍繞目標(biāo)來進(jìn)行離散推理。能快速搭建Ai客服、AI導(dǎo)購等應(yīng)用。產(chǎn)品允許LLM與環(huán)境進(jìn)行交互,根據(jù)環(huán)境數(shù)據(jù)的反饋不斷的調(diào)整行動計(jì)劃/策略。且整個(gè)sop的過程是由文本來控制。
基礎(chǔ)信息如下:
- 使用 文心一言 3.5的模型,未微調(diào)
- 做了邏輯處理的Agent框架
- 單條回復(fù)的消耗不到2K token。
一、為什么需要RAG+Agent的組合
當(dāng)前Rag問答通常會存在較大的幻覺,模型容易基于自身知識進(jìn)行胡編亂造。通常企業(yè)期望只基于知識庫內(nèi)容進(jìn)行解答,不亂發(fā)散。而我們發(fā)現(xiàn)Agent有很好的觀察、思考的機(jī)制。能有效的控制模型的發(fā)散問題
所以我們團(tuán)隊(duì)將兩者進(jìn)行融合來進(jìn)行知識庫的問答,發(fā)現(xiàn)能很好的控制模型發(fā)散和幻覺,只用知識庫檢索的片段來回答。
RAG+Agent的優(yōu)勢:
- 借助Agent觀察與思考,來理解檢索到的知識片段。
- 讓Agent(Re-Act)的要解決的問題、目標(biāo),進(jìn)行針對性選擇和解答。
符合客戶訴求:對于to B的客服場景問答而言,提供準(zhǔn)確可靠的信息是非常重要的。而Agent+Rag的組合能夠很好的讓模型,圍繞知識庫中與用戶提問相關(guān)的片段來回答。解決掉模型幻覺嚴(yán)重,過于發(fā)散,回答牛頭不對馬嘴的問題。
二、先來分別看下Rag和Agent的基本處理邏輯
Rag流程
常見rag問答
流程:
- 問題向量化,檢索相似片段
- 將“提示詞+用戶提問+check片段 ”打包發(fā)給大模型
- 模型進(jìn)行解答
問題:當(dāng)check是用于補(bǔ)充模型的知識,當(dāng)片段與問題不相關(guān)或不足以解釋問題時(shí)。模型容易基于自己的理解進(jìn)行解答,從而胡編亂造。
Agent(Re-act)流程:
re-act agent處理邏輯
流程:
- 用戶:輸入問題
- 觀察:用戶輸入,工具數(shù)據(jù)的返回
- 思考:內(nèi)容與問題、目標(biāo)、流程的相關(guān)性
- 行動:回答用戶問題 / 調(diào)用工具補(bǔ)充信息
優(yōu)勢:在Re-act模式下。Agent在解答問題時(shí),會觀察用戶的提問、工具的返回,思考與用戶提問的相關(guān)性,通過提示詞約束后,可以始終圍繞著目標(biāo)、要求來展開。
那當(dāng)用戶提問時(shí),借助Agent調(diào)用知識庫獲取片段問題的片段,再讓Agent來回答用戶的問題
三、融合Agent和Rag融合的方案&流程
OK,現(xiàn)在我們將兩個(gè)流程融合在一起。
- 讓Agent來處理用戶的提問,調(diào)用rag的能力,獲取chack片段進(jìn)行觀察思考。
- 同時(shí)圍繞用戶的提問來進(jìn)行解答
- 效果:從而規(guī)避掉check中不相關(guān)的問題和有干擾的內(nèi)容,防止模型強(qiáng)行對check內(nèi)容與用戶提問進(jìn)行關(guān)聯(lián)
融合后的流程下:
Agent+Rag
處理流程示例:
用戶提問
1)Agent:第一輪處理理解用戶提問
- Agent觀察:用戶提問
- Agent思考:理解問題與提示詞(目標(biāo)、任務(wù)流程等)關(guān)系
- Agent行動:反寫用戶提問。調(diào)用知識庫工具
2)Rag:處理(處理部分)
- 問題的向量化
- 向量數(shù)據(jù)庫的檢索;
- 返回檢索check
3)Agent:第二輪處理,處理知識庫片段內(nèi)容
- Agent觀察:知識庫返回的知識片段
- Agent思考:理解知識庫片段與用戶問題、提示詞(目標(biāo)、任務(wù)流程等)的關(guān)聯(lián)性與問題
- Agent行動:回復(fù)
四、看下實(shí)際處理的結(jié)果
進(jìn)行兩個(gè)提問:以某充電樁基于產(chǎn)品手冊用戶問答為例如
- 問題1:“如何充電”,知識庫有對應(yīng)的答案片段 + 干擾片段
- 問題2:“充電政策是什么”,知識庫中沒有對應(yīng)的答案片段,會返回不相關(guān)內(nèi)容
問題處理的回復(fù)效果如下:
五、處理流程分析
1. 分析用戶提問:如何充電。知識庫返回對應(yīng)的答案片段 + 干擾片段
第一輪agent處理過程:
1)觀察:如何充電
2)思考:用戶想要了解如何充電,這是一個(gè)關(guān)于產(chǎn)品使用的基本問題。
3)行動:
- 動作:調(diào)用知識庫
- 擴(kuò)寫問題、補(bǔ)充關(guān)鍵信息:”充電樁如何充電”
知識庫處理
1)問題向量化:充電樁如何充電
2)檢索:檢索產(chǎn)品手冊向量庫
3)獲取片段:
- 片段1:# 分布式2路充電樁說明書。重要:充電樁安裝位置需要符合消防要求;設(shè)備需要定期巡檢。充電樁需同步安裝漏電保護(hù)裝置(建議20A);電動車充電樁使用指南1XXXXXX;
- 片段2:# 免費(fèi)充電時(shí)長設(shè)置 適應(yīng)場景:所有場所,按鍵直充場景, 1.進(jìn)入方法:通過菜單鍵設(shè)置進(jìn)入,具體設(shè)置方法見電子版說明書–>按鍵部分;
- 片段3:# 充到飽套餐使用 注:部分設(shè)備有此功能 使用方法: 用微信或支付寶掃一掃設(shè)備二維碼,選擇【端口】–>【充滿自停】–>【開啟充電】使用規(guī)則: 此功能先扣費(fèi),充電結(jié)束后自動退回多余金額.
第二輪Agent思考處理:
1)觀察
2)用戶問題:充電樁如何充電
3)參考片段:
- 片段1:# 分布式2路充電樁說明書。重要:充電樁安裝位置需要符合消防要求;設(shè)備需要定期巡檢。充電樁需同步安裝漏電保護(hù)裝置(建議20A);電動車充電樁使用指南XXXXXX;
- 片段2:# 免費(fèi)充電時(shí)長設(shè)置 適應(yīng)場景:所有場所,按鍵直充場景, 1.進(jìn)入方法:通過菜單鍵設(shè)置進(jìn)入,具體設(shè)置方法見電子版說明書–>按鍵部分;
- 片段3:# 充到飽套餐使用 注:部分設(shè)備有此功能 使用方法: 用微信或支付寶掃一掃設(shè)備二維碼,選擇【端口】–>【充滿自停】–>【開啟充電】使用規(guī)則: 此功能先扣費(fèi),充電結(jié)束后自動退回多余金額.
4)思考:根據(jù)知識庫的內(nèi)容,以及用戶問題,充電的步驟是需要將充電插頭接入空閑插座,連接好插座后,選擇以下兩種方式之一啟動充電。掃碼充電:XXXXXX
5)行動:最終回復(fù):根據(jù)您的提問,以下是關(guān)于如何充電的詳細(xì)步驟:
- 將充電插頭接入空閑插座,連接好插座后,選擇以下兩種方式之一啟動充電。
- 掃碼充電:連接好充電器后,用手機(jī)微信或支付寶掃一掃設(shè)備二維碼。第一步選擇剛才的插座端口,第二步選擇相應(yīng)的金額,第三步點(diǎn)擊“開始充電”啟動充電。
- 刷卡充電:連接好充電器后,用已授權(quán)且有余額的電卡,緊貼設(shè)備相應(yīng)端口的刷卡區(qū)(距離小于5cm),聽到“刷卡成功”時(shí),插座端口自動啟動充電。
- 結(jié)束充電時(shí),設(shè)備會通過微信或支付寶推送給付款人,并提示具體的充電結(jié)束扣費(fèi)金額,充電時(shí)間,停止原因等信息。
2. 用戶提問:充電政策,知識庫沒有對應(yīng)的答案
檢索出來的知識片段如下:
- 片段1:「1.5.高級設(shè)置1)通過設(shè)備詳情頁,可以進(jìn)入高級設(shè)置,進(jìn)行充電樁的一些參數(shù)設(shè)置高配版智能10路充電樁說明書重要:安裝位置需要符合消防要求,嚴(yán)禁安裝在公共門廳、疏散走道、樓梯間、安全出口,煙霧不得阻擋逃生通道。充電樁需同步安裝漏電保護(hù)裝置(建議20A);露天安裝時(shí)插座和機(jī)箱需要防雨、防水; 設(shè)備需要定期巡檢?!?/li>
- 片段2:最后一個(gè)“1500”是終止充電功率,當(dāng)充電功率大于此值時(shí),設(shè)備會因?yàn)樨?fù)載過大而停止充電。 示例電量計(jì)費(fèi)設(shè)置: 設(shè)置1度電的計(jì)費(fèi)基準(zhǔn),最小0.1元,最大9.99元。
- 片段3:6、免費(fèi)充電設(shè)置按設(shè)置鍵切換到對應(yīng)的功能,此時(shí)語音播報(bào)“免費(fèi)充電設(shè)置”,顯示界面顯示“-P6-”。 按數(shù)字鍵0或者1(0:正常模式;1:免費(fèi)充電模式),再按確鍵。 執(zhí)行成功顯示“SUCC”,執(zhí)行失敗顯示“FAIL”。 比如輸入:1+確認(rèn)鍵,則打開免費(fèi)充電功能。0+確認(rèn)鍵,則關(guān)閉免費(fèi)充電功能,切換到正常充電模式。
而Agent第二輪的思考過程
1)觀察
2)用戶問題:充電樁的充電政策
3)參考片段:
- 片段1:「1.5.高級設(shè)置1)通過設(shè)備詳情頁,可以進(jìn)入高級設(shè)置,進(jìn)行充電樁的一些參數(shù)設(shè)置高配版智能10路充電樁說明書重要:安裝位置需要符合消防要求,嚴(yán)禁安裝在公共門廳、疏散走道、樓梯間、安全出口,煙霧不得阻擋逃生通道。充電樁需同步安裝漏電保護(hù)裝置(建議20A);露天安裝時(shí)插座和機(jī)箱需要防雨、防水; 設(shè)備需要定期巡檢?!?/li>
- 片段2:最后一個(gè)“1500”是終止充電功率,當(dāng)充電功率大于此值時(shí),設(shè)備會因?yàn)樨?fù)載過大而停止充電。 示例電量計(jì)費(fèi)設(shè)置: 設(shè)置1度電的計(jì)費(fèi)基準(zhǔn),最小0.1元,最大9.99元。
- 片段3:6、免費(fèi)充電設(shè)置 按設(shè)置鍵切換到對應(yīng)的功能,此時(shí)語音播報(bào)“免費(fèi)充電設(shè)置”,顯示界面顯示“-P6-”。 按數(shù)字鍵0或者1(0:正常模式;1:免費(fèi)充電模式),再按確鍵。 執(zhí)行成功顯示“SUCC”,執(zhí)行失敗顯示“FAIL”。 比如輸入:1+確認(rèn)鍵,則打開免費(fèi)充電功能。0+確認(rèn)鍵,則關(guān)閉免費(fèi)充電功能,切換到正常充電模式。
4)思考:根據(jù)知識庫的返回,并沒有直接回答用戶關(guān)于“充電政策”的具體內(nèi)容。
5)行動:最終回復(fù):非常抱歉,關(guān)于充電政策的具體內(nèi)容,我們的知識庫中并沒有直接的信息。但我可以告訴您,我們的充電樁安裝位置需要符合消防要求,嚴(yán)禁安裝在公共門廳、疏散走道、樓梯間、安全出口,并且需要同步安裝漏電保護(hù)裝置。如果您需要更詳細(xì)的信息,建議您查閱我們的產(chǎn)品手冊或聯(lián)系我們的客服部門
五、結(jié)論
綜上所述,我們可以看到,在Agent與rag結(jié)合后,借助Agent能給rag帶來好處
1)用戶問題的擴(kuò)寫,補(bǔ)充用戶問題中缺失的部分;
- 例1:用戶詢問如何充電時(shí),Agent會補(bǔ)充用戶提問中缺失的部分,讓問題更完整;
2)通過Agent觀察、思考機(jī)制,識別檢索結(jié)果中與問題相關(guān)的部分,進(jìn)行針對性選擇內(nèi)容來進(jìn)行解答。不相關(guān)的內(nèi)容不會強(qiáng)行關(guān)聯(lián)。核心關(guān)注與問題的相關(guān)性。
3)模型本身的知識,可以根據(jù)選擇來使用。示例中,提示詞要求模型只能基于知識庫回復(fù)進(jìn)行解答。限制了模型本身自己的知識的發(fā)揮。
對于to B的客服場景問答而言,提供準(zhǔn)確可靠的信息是非常重要的。
- Agent+Rag的組合能夠很好的讓模型,圍繞知識庫中與用戶提問相關(guān)的片段來回答。
- 從而解決掉模型幻覺嚴(yán)重,過于發(fā)散,回答牛頭不對馬嘴的問題。
本文由 @易俊源 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!