使用Question Answering建立QA Bot (2024)

自從大語言模型(LLM)橫空出世之後,對談機器人又迎來了一片春天。但坦白說,使用LLM進行QA Bot的設計,在答案需要比較嚴謹正確的情境下,已生成的方式來產生,其實有頗高的風險。即便你使用RAG,要能夠100%的保證AI生成的答案絕對正確,都是一個挑戰。

但,如果採用 Azure 上的Question Answering,則沒有這個問題。因為Question Answering中每一個問題的答案,都是我們事先準備好的。

底下這篇,我們來看一下如何使用Azure Custom Question Answering 來快速建立一個QA Bot。

建立 Azure Language Services

首先,你可以先在 Azure Portal 建立 Language 服務,過去中文版叫做文字分析,2024正名之後,終於改為『語言服務』:
圖片

這邊直接點選左下角按鈕:
圖片
使用預設值建立即可,我建議定價層選S:
圖片

建立好之後,在服務的『概觀』底下,可以找到『Language Studio』:
圖片

點選進入該portal,首次進入,會需要選擇 resource type 與 你剛才建立好的 Language Resource:
圖片

完成後,就會進入到Language Studio的主畫面:
圖片

選擇 Custom Question Answering

進入後,請選擇 Custom Question Answering :
圖片

點選後,可以在 Custom Question Answering 的主畫面建立新專案:
圖片

第一次建立專案時,系統可能會跳出畫面要求你連結到一個 Azure Search 服務:
圖片

如果你之前沒有建立,可以先建立一個 Azure Search :
圖片

由於它是 Question Answering 搜尋功能的主要能力來源,建議你建立一個 Standard SKU 層級以上的Azure Search服務:
圖片
同時資料中心必須與 Language 服務相同。

建立完成之後,重新建立專案,
圖片

匯入疾管署資料

App 建立完成之後,我們就可以匯入知識庫,作為QA的來源依據,讀者可以嘗試匯入疾管署的疫苗接種注意事項資料,位於:
https://www.cdc.gov.tw/Category/QAPage/QLYITNGQSveCa-Rt2jTygg

圖片

可透過選單以 add source 加入:
圖片

測試

知識庫匯入完成之後,可以開啟測試功能:
圖片

在測試畫面中輸入問題,你會發現,即便輸入的問題跟原始的題庫中的問題並不100%相同,系統也會找到對接近的問題,接著直接帶出該問題的預設答案。

如此一來,用戶可以隨心所欲地問問題,Chat Bot也會找到最適切的答案來回覆,在這個架構底下,由於答案都是從知識庫中建立出來的,因此不會有AI生成錯誤答案的問題。即便用戶問的問題,透過語意分析對映到了不很相似的問題,但答案卻總是正確的。這也是我們前面說過,在答案需要比較嚴謹正確的情境下,採用 Azure 上的Question Answering,是比較理想的選擇,因為Question Answering中每一個問題的答案,都是我們事先準備好的。

部署模型

測試完成之後,只需要一鍵即可佈署該模型:
圖片

佈署完成之後,可以透過 Get Prediction URL 取得 endpoint 與 key:
圖片

使用 REST API呼叫

如此一來,我們就可以透過 REST API 進行呼叫了:
圖片

透過這樣的方式,以 Custom Question Answering 建立好 REST API 之後,我們只需要將 LINE Bot串接到REST API ,就可以輕鬆地建立出一個 QA Bot了。

留言

這個網誌中的熱門文章

使用LM Studio輕鬆在本地端以API呼叫大語言模型(LLM)

VS Code的字體大小

使用 Dify 建立企業請假機器人

使用Qdrant向量資料庫實作語意相似度比對

使用C#開發LineBot(3) - 使用LineBotSDK發送Line訊息