使用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了。

留言

這個網誌中的熱門文章

原來使用 .net 寫個 MCP Server 如此簡單

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

開啟 teams 中的『會議轉錄(謄寫)』與Copilot會議記錄、摘要功能

在VS Code當中使用 Azure DevOps MCP Server

原來使用 .net 寫個 MCP Client 也如此簡單