加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

基于亞馬遜云科技大語言模型構(gòu)建企業(yè)專屬智能客服機器人

2023/11/10
2778
閱讀需 22 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?概述

?客戶聯(lián)絡(luò)中心在現(xiàn)代是構(gòu)成一個完整企業(yè)的重要組成部分,作為企業(yè)與顧客的連接紐帶,在銷售、服務支持以及提升顧客滿意度方面發(fā)揮著至關(guān)重要的作用。使用亞馬遜云科技Amazon Connect出海企業(yè)可以快速搭建自己的全球客服聯(lián)絡(luò)中心。當前客服聯(lián)絡(luò)中心也面臨諸多的挑戰(zhàn),如長時間的電話等待、溝通困難、有用信息的缺乏、對客戶的回復缺乏標準難以統(tǒng)一,這些對客戶都可能會帶來不好的體驗。當連接建立后,客戶又需要重復地講述求助的原因、個人的身份、訂單信息等。通過對話機器人接收客戶問題、回答客戶問題,可以讓客戶不需要排隊等待。對于已識別的客戶,對話機器人有更多的相關(guān)信息,可以避免無效的問答,專注于更相關(guān)的信息。

?Amazon Lex是基于AI聊天機器人的框架,可以根據(jù)業(yè)務場景設(shè)置各種各樣的意圖(Intent)來預訓練機器人的基礎(chǔ)模型,然后借助自然語言理解(NLU)實現(xiàn)與客戶的對話。交付一個更快速更順暢的客戶體驗的同時也節(jié)省了人力成本。

?但隨著業(yè)務場景的增加,需要負責維護機器人的人員盡可能羅列出所有分支場景,并設(shè)計相應的意圖,同時還要保證最新的數(shù)據(jù)能夠及時更新到基礎(chǔ)模型中,這會帶來巨大的維護成本與挑戰(zhàn)。為了解決上述問題,需要引入檢索增強生成(Retrieval Augmented Generation,RAG)技術(shù),并結(jié)合生成式人工智能(GenAI)和大型語言模型(LLMs),將機器人的響應限制在公司的數(shù)據(jù)范圍內(nèi),為用戶提供更加專業(yè)精準的應答,并且無需花費大量的人力整理知識庫、預訓練機器人的基礎(chǔ)模型。通過接入知識庫豐富客戶對話內(nèi)容,提升對話體驗。

?本文將演示如何結(jié)合Amazon Connect、Amazon Lex、Amazon Kendra、Amazon Lambda和Amazon SageMaker,以及LangChain對大模型的調(diào)用,打造企業(yè)專屬的智能客服。

?架構(gòu)概述

  • 使用Amazon Connect的核心組件——聯(lián)系流(Contact Flow),創(chuàng)建符合自身業(yè)務場景的IVR(Interactive Voice Response),并將獲取用戶輸入的模塊設(shè)置為Amazon Lex,實現(xiàn)用戶對話的語義理解。
  • Amazon Connect將用戶的呼入語音或文字輸入傳入Amazon Lex,通過在Lex中設(shè)置Lambda函數(shù),將每一次用戶的對話內(nèi)容發(fā)送給Lambda函數(shù)做相應處理,最后將結(jié)果返回到Lex,實現(xiàn)人機對話。這里有個技巧是:無需人工為機器人創(chuàng)建大量的意圖用于預訓練,由于沒有預訓練模型去匹配用戶的問題,Lex會自動匹配系統(tǒng)默認的FallbackIntent并發(fā)送給Lambda。將核心問題語義理解部分從Lex轉(zhuǎn)移到了大語言模型,再由Lambda將大語言模型回復的內(nèi)容嵌入FallbackIntent中,完成一次對話閉環(huán),這樣就大大節(jié)省了設(shè)計和維護預訓練數(shù)據(jù)的人力成本。
  • Lambda獲取用戶問題后,將用戶問題作為關(guān)鍵字,調(diào)用Amazon Kendra的知識庫索引,利用Kendra自身的向量比對與自然語言理解特性,查詢出匹配度高的結(jié)果集并返回給Lambda。Kendra支持多種文件格式和第三方平臺作為數(shù)據(jù)源,本文選擇網(wǎng)頁爬蟲作為數(shù)據(jù)源連接器,利用此連接器的定期爬取功能,實現(xiàn)知識庫的自動更新。Kendra在抓去數(shù)據(jù)和建立索引時,會根據(jù)自身在14個主要行業(yè)(計算機、工業(yè)、汽車、電信、人力資源、法律、健康、能源、旅游、醫(yī)療、傳媒、保險、制藥和新聞)領(lǐng)域中的知識,對數(shù)據(jù)做文本切割和Embedding,并借助自身的自然語言理解(NLU)特性,進一步提升查詢匹配的精準度。
  • Lambda函數(shù)拿到Kendra返回的數(shù)據(jù)后,會作為上下文通過Langchain生成相應的提示詞(Prompt)并發(fā)送給大語言模型。提示詞大致的格式為:“請在以下內(nèi)容中回答

    <用戶提問>”。由于Kendra對數(shù)據(jù)源提前做了Embedding,內(nèi)容更加精準,所以僅需截取排序前三的內(nèi)容作為上下文拼接在提示詞中,從而避免了大語言模型中Token數(shù)量限制問題,同時更加精簡的提示詞也能提升大模型的響應速率。

  • 在SageMaker中部署大語言模型作為推理的終端節(jié)點。本文使用了清華大學開源的模型——ChatGLM-6B,對中文支持的表現(xiàn)較好,基于General Language Model(GLM)架構(gòu),具有62億參數(shù)。
  • Lambda函數(shù)將大模型返回的信息通過Lex傳遞給Connect,Connect通過Amazon Polly進行語音回復,也可以通過Connect文字聊天API進行文字回復。
  • 如果系統(tǒng)多次無法解答用戶問題,或者用戶明確說出轉(zhuǎn)人工的指令,系統(tǒng)會將用戶轉(zhuǎn)到Connect的人工座席進行詳細溝通。

??部署方案

?前提條件

  • 確保擁有亞馬遜云科技賬號并能訪問控制臺。
  • 確保登錄到亞馬遜云科技的用戶擁有操作Amazon Connect、Kendra、Lambda、SageMaker、Lex的權(quán)限。
  • ?本文使用源代碼Github。
  • 本文的操作將以Amazon us-west-2區(qū)域為例。

?在Amazon Kendra創(chuàng)建知識庫

?Step 1創(chuàng)建索引

  • 進入Amazon Kendra控制臺。
  • 點擊右上方的“Create an Index”創(chuàng)建索引。
  • 輸入索引名稱,在IAM role部分,選擇“Create a new role”,在Role name中輸入角色名稱,然后點擊“Next”按鈕(請注意:系統(tǒng)會自動為名稱生成相應的前綴,此前綴不能更改或刪除,否則會造成異常)。

  • 后續(xù)兩頁保持默認選項,最后點“Create”按鈕創(chuàng)建索引。整個創(chuàng)建過程大概需要5-10分鐘。

?Step 2創(chuàng)建數(shù)據(jù)源

  • 在索引詳情頁中,點擊“Add data sources”創(chuàng)建數(shù)據(jù)源。

  • Kendra支持多種數(shù)據(jù)源,這里選擇網(wǎng)頁爬蟲作為數(shù)據(jù)源,可以從指定的URL中定時爬取和更新相關(guān)內(nèi)容,適用于知識庫更新比較頻繁的場景。

  • 輸入數(shù)據(jù)源名稱,Language部分可根據(jù)自身知識庫的語言選擇。因為本文使用中文知識庫,所以選擇“Chinese(zh)”,然后點擊“Next”。

  • 輸入目標網(wǎng)頁的URL,最多可以輸入10個。如果需要訪問內(nèi)部網(wǎng)頁,則在“Web proxy”部分設(shè)置網(wǎng)頁的域名、端口號和訪問憑證。

  • IAM role選擇”Create a new role”,并輸入角色名稱(請注意:系統(tǒng)會自動為名稱生成相應的前綴,此前綴不能更改或刪除,否則會造成異常)。

  • 配置爬蟲爬取的范圍與深度。
  • 設(shè)置定期同步網(wǎng)頁數(shù)據(jù)的周期,也可以設(shè)置手動同步(Run on demand)。然后點“Next”,最后一頁確認信息后點“Create”按鈕創(chuàng)建數(shù)據(jù)源。

  • 數(shù)據(jù)源創(chuàng)建完成后,點右上角的“Sync now”開始爬取或同步指定網(wǎng)頁的數(shù)據(jù)。此過程根據(jù)爬取的范圍和深度,可能需要幾分鐘到幾個小時。此過程首先會對文檔進行爬取以確定要索引的文檔,然后再對選定的文檔建立索引。
  • 等待數(shù)據(jù)源同步成功后,可以點擊右邊欄“Search indexed content”測試索引情況。
  • 因為爬取的中文文檔,所以需要點擊右邊扳手圖標,將語言設(shè)置為“Chinese (zh)”并點”Save“,最后在頂部搜索輸入框中直接輸入問題查看返回結(jié)果。

?創(chuàng)建ChatGLM SageMaker Endpoint

  • 進入Amazon SageMaker控制臺。
  • 在左邊菜單點擊Notebook->Notebook instances,如果當前沒有實例可以復用,點擊Create notebook instance按鈕創(chuàng)建新的notebook instance。
  • 輸入Notebook instance name,instance type選擇m5.xlarge,Platform identifier保持不變,IAM Role選擇Create a new role,其它保持默認設(shè)置,最后點擊Create notebook instance按鈕完成創(chuàng)建。
  • 當實例狀態(tài)變?yōu)镮nService后,點擊Open JupyterLab,打開Jupyter工作臺
  • 點擊上傳圖標,將Github上/llm/chatglm/chatglm_sagemaker_byos.ipynb上傳到工作臺。
  • 點擊新建文件夾圖片,新建名為code的文件夾,將Github上/LLM/chatglm/code目錄下的兩個文件也上傳到工作臺。

  • 雙擊ipynb打開筆記本,按照介紹順序執(zhí)行筆記本中的代碼。其中第二步是將ChatGLM部署到SageMaker的推理節(jié)點,耗時大概5分鐘左右,成功后可以運用筆記本中后面的步驟做相應的測試。請注意,如果執(zhí)行第二步時出現(xiàn)ResourceLimitExceeded錯誤,說明在該區(qū)域還沒有相應資源的配額,請到Service Quotas中輸入endpoint查看該區(qū)域哪些實例類型支持endpoint。如果Applied quota value為0,需要選中實例類型后,點Request quata increase按鈕申請。數(shù)量建議填1,否則可能會有申請失敗。

  • 在左邊菜單中點擊Inference->Endpoints可以看到新創(chuàng)建Endpoint,狀態(tài)為InService說明正常運行。將Name復制下來,供后續(xù)配置Lambda環(huán)境變量使用。

?創(chuàng)建Lambda函數(shù)

  • 進入Amazon Lambda控制臺。

?

  • 首先為Lambda添加langchain的Lambda Layer。點擊左邊菜單欄的“Layer”,并點擊右上角“Create layer”按鈕。
  • 名稱填寫langchain,文件選擇Github上/Lambda/lambda-layer/lazip。
  • 點擊右上角“Create function”按鈕創(chuàng)建Lambda函數(shù)。
  • 輸入函數(shù)名稱,Runtime選擇“Python 3.9”,Architecture選擇“x86_64”,Execution Role選擇“Create a new role with Lambda permissions”,然后點“Create function”按鈕。稍后再為這個角色添加操作Lex與SageMaker Endpoint的權(quán)限。

  • 創(chuàng)建成功后,點擊“Upload from”按鈕,下拉菜單中選“.zip file”,然后選擇Github上,/Lambda/script.zip,點擊“Save”。
  • 點擊Code這一欄,在Runtime settings部分點擊Edit按鈕,將Handler這里改為script.lambda_function.lambda_handler,這是因為上傳了名為script.zip文件,需要修改入口程序的目錄結(jié)構(gòu)。
  • 點擊Code這一欄,在底部Layers部分點擊“Add a layer”按鈕添加LangChain Lambda Layer。

  • 點擊Configuration欄,然后點擊右邊的“Edit”按鈕,修改函數(shù)運行的基本參數(shù)。

  • 設(shè)置函數(shù)運行內(nèi)存為4096MB,Timeout設(shè)置為1分鐘,其它設(shè)置保持默認,點擊“Save”按鈕保存設(shè)置。

  • 繼續(xù)點擊右邊“Environment variables”,點擊Edit按鈕設(shè)置兩個環(huán)境變量,Kendra索引ID與ChatGLM SageMaker endpoint名稱:

?Key=KENDRA_INDEX_ID,Value=在Kendra中的Index ID

?Key=CHATGLM_ENDPOINT,Value=部署ChatGLM模型的SageMaker endpoint名稱

  • 轉(zhuǎn)到IAM控制臺,點擊右邊的“Roles”,在列表中點選這個Lambda函數(shù)所關(guān)聯(lián)的Role,點開Policy name下面的加號,然后點擊“Edit”按鈕。

  • 將如下JSON代碼貼在現(xiàn)有代碼后面,為Lambda函數(shù)賦予操作Kendra與SageMaker的權(quán)限。請注意JSON格式。

?使用Amazon Lex創(chuàng)建智能對話機器人

  • 進入Amazon Lex控制臺。
  • 點擊右上角“Action”按鈕,在下拉菜單中選擇“Import”。
  • 輸入機器人名稱,并選擇Github上/lex/chatgpt-bot-DRAFT-OEZEFSCJIQ-LexJson.zip文件,IAM Permission選擇“Create a role with basic Amazon Lex permissions”,COPPA部分選擇“No”,最后點擊“Import”按鈕導入機器人。
  • 點擊導入成功后的機器人名稱,在左邊菜單中Aliases->TestBotAliases,并在Languages下點擊Mandarin(PRC),在Lambda Function選擇上面創(chuàng)建的Lambda函數(shù),點Save按鈕保存設(shè)置。

  • 點擊左邊菜單欄Mandarin(PRC),再點擊右上角Build按鈕構(gòu)建機器人。

  • 構(gòu)建成功后,點擊Test按鈕可以測試前面所有步驟是否配置成功。如報錯或返回“Intent FallbackIntent is fulfilled”,說明執(zhí)行Lambda時發(fā)生異常,可以到CloudWatch Log Group中查看Lambda日志,定位錯誤原因。測試成功的結(jié)果如下圖所示:

?最后使用Amazon Connect構(gòu)建客戶聯(lián)絡(luò)中心

  • 進入Amazon Connect控制臺。
  • 點擊Create instance按鈕創(chuàng)建Connect實例。Identity management保持默認,輸入英文字母組成的別名后,點Next。
  • 為Connect管理控制臺創(chuàng)建超級管理員,輸入相關(guān)信息后點Next,后兩頁保持默認選項,最后點Create instance按鈕完成創(chuàng)建。
  • Connect實例創(chuàng)建成功后,點擊左邊菜單中的Flows,在Amazon Lex部分,選擇同區(qū)域的Bot,然后點擊Add Amazon Lex Bot按鈕添加Bot。
  • 點擊左邊菜單欄的Instances,點擊Access URL中的鏈接,使用Connect超級管理員的賬號密碼登錄。
  • 成功登錄到Connect控制臺后,點擊“查看流”,然后點擊“創(chuàng)建聯(lián)系流”按鈕。
  • 點擊右上角三角形按鈕,在下拉菜單中選擇“導入”,選擇Github中/Connect/LLM-Lex-InboundFlow文件導入聯(lián)系流。
  • 雙擊“獲取用戶輸入”模塊,確認Amazon Lex選擇為前面步驟創(chuàng)建的Bot,最后點擊“發(fā)布”按鈕發(fā)布此聯(lián)系流。
  • 回到控制面板,點擊“開始”按鈕創(chuàng)建一個電話號碼。
  • 根據(jù)實際業(yè)務需要,選擇不同國家的電話號碼,如果國家不在列表中,需要開工單申請。本文以美國的免費電話為例。

  • 創(chuàng)建成功后,點擊“查看電話號碼”,然后點擊該電話號碼,在“聯(lián)系流/IVR”中選擇先前創(chuàng)建的聯(lián)系流。
  • 回到控制面板,點擊“測試聊天”,然后點擊“測試設(shè)置”,選中剛剛創(chuàng)建的聯(lián)系流,點擊應用按鈕。

  • 如下圖所示:左邊部分是模擬用戶聊天界面,右邊是座席服務臺。當前用戶的會話會自動由Amazon Lex機器人接替,只有當客戶輸入“轉(zhuǎn)人工”字樣才會將會話轉(zhuǎn)到人工座席。

?測試結(jié)果

?此界面模擬用戶向座席發(fā)起文字聊天,由于在聯(lián)系流中設(shè)置了Lex機器人,所以客戶的問題將由Lex機器人結(jié)合內(nèi)部知識庫與大語言模型來回答。

?當用戶輸入“轉(zhuǎn)人工”字樣,系統(tǒng)會將用戶的對話轉(zhuǎn)入到人工座席。

?人工座席接受聊天請求后,就可以通過文字聊天與用戶。

?總結(jié)

?通過亞馬遜云科技Amazon Connect和Amazon LEX實現(xiàn)客服聯(lián)絡(luò)中心的自動客服機器人,借助Amazon Lambda調(diào)用Amazon Kendra+ChatGLM擴展了自動客服機器人的對話能力,使對話機器人在沒有預設(shè)的對話流的情況下,查詢知識庫回答客戶的問題,提升顧客體驗的同時減少了在顧客服務上的人力資源投入。在此框架下,可以繼續(xù)不斷完善自動機器人及大語言模型在回答問題方面的準確度。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
ATSAM4S16BA-ANR 1 Microchip Technology Inc RISC Microcontroller
$5.12 查看
ATXMEGA16D4-AU 1 Atmel Corporation RISC Microcontroller, 16-Bit, FLASH, AVR RISC CPU, 32MHz, CMOS, PQFP44, 10 X 10 MM, 1 MM HEIGHT, 0.80 MM PITCH, GREEN, PLASTIC, MS-026ACB, TQFP-44

ECAD模型

下載ECAD模型
$3.06 查看
USB2514BI-AEZG 1 Microchip Technology Inc UNIVERSAL SERIAL BUS CONTROLLER, QCC36, 6 X 6 MM, 0.50 MM PITCH, ROHS COMPLIANT, QFN-36

ECAD模型

下載ECAD模型
$3.89 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜