基於OpenAi通用特定領域的智慧語音小助手

2J發表於2023-11-27

無窮盡的Q&A

釘釘...釘釘... 雙雙同學剛到工位,報銷答疑群的訊息就萬馬紛沓而來。她只能咧嘴無奈的搖搖頭。水都還沒有喝一口就開始“人工智慧”的去回覆。原本很陽光心情開始蒙上一層薄薄陰影。在這無休無止的Q&A中,就算你對工作有磐石一般強硬,有蘆葦一般堅韌... 也經不住如此水滴石穿般消磨。工作激情便如磨刀之石,不見其消,日有所損。

然則,不只雙雙有這樣的困境,人事的同學也是每天為各種簡單的諮詢擾得不勝其煩,牢騷滿腹;還有負責合同用章的coco同學同樣不堪其擾... 更讓人苦惱是無人值班的週末,問的同事在焦急的等待,而支援的同事可能無法及時響應...

“母嬰護理”做為公司的核心業務,雖然每個護士同學上崗前都有過專業的訓練,但是在實踐過程中難免遇到各類問題,這時她們只有去問有經驗的護士或者護士長...

所有種種問題,最後都是由一名“專家”完成了解答。這個“專家”在哪裡,這成了我一直思考的問題。顯然,我還不至於去搞一個真正的“專家系統”。

OpenAi Assistant 橫空出世

面對上面的困境,我們也有嘗試使用 openai 的 emebedding能力,但是效果不是太好,並且每次問答要花費50美分;也用聞達獨立搭建過,就是不太穩定(可能是沒部署好吧,老是要重啟)。一直在想,為啥如雨後春筍般出現的各路大模型,沒有一個可以非常方便的讓我們匯入領域知識呢。一籌莫展之時,OpenAi 11月7號的釋出會給我帶來了希望。其中新增的Assistant就如立於高山之巔遠看東方已見光芒四射噴薄欲出的一輪朝日。釋出會只有45分之短,但是其涵蓋的內容卻不短。鑑於英文聽力能力欠缺,找了一個“AI同聲中文版”釋出會影片,有需要的可以點選「連結」觀看,一定不虛此點。

基於OpenAi通用特定領域的智慧語音小助手

一個簡單的通用方案&問題

OpenAi 的assistant 已經具備了根據提供的領域知識檢索(retrieve)特定問題的答案了。接下來就是接入企微自建應用,考慮到語音便利性,這次增加了對語音的支援,透過騰訊雲asr介面識別語音,再透過文字呼叫Assistant。大致元件如下圖。其中問答有個特別的地方就是在建立一個 “Run”後,需要輪詢檢查其是否是終態,如果是 “completed”再去檢索訊息,獲取最終的回覆。

實現一個Assistant的流程如下,為了偷懶,我就直接在平臺建立了assistant及上傳檔案。

1.Create an Assistant in the API by defining its custom instructions and picking a model. If helpful, enable tools like Code Interpreter, Retrieval, and Function calling.

2.Create a Thread when a user starts a conversation.

3.Add Messages to the Thread as the user ask questions.

4.Run the Assistant on the Thread to trigger responses. This automatically calls the relevant tools.

 

基於OpenAi通用特定領域的智慧語音小助手知識小達人元件圖

有了想法,趁著大好的週末,早上帶著兩娃去學校踢球,貪婪的享受著冬日陽光,消耗完體力娃子們,吃過午飯便早早的開始了午睡。趁著著孩子們睡覺的光景,我又有大把的時間開始打程式碼實現想法了。有時真感覺自己不再年輕了,遛個娃,寫個程式碼就覺得可以受用一個週末。

基於OpenAi通用特定領域的智慧語音小助手

由於之前的一些準備工作,不到兩小時demo就基本完成了。沒有壓力之下的程式碼,幾乎不用除錯就跑起來了,原來沒有壓力也可以動力十足,也許這就是專注的力量。基本用起來是沒啥問題了,唯一的問題就是響應時間幾乎在30秒左右。對於人事一類的問答尚可,一些需要快速響應的場景,這個時間稍微慢了些。

基於OpenAi通用特定領域的智慧語音小助手

 

基於OpenAi通用特定領域的智慧語音小助手

近些時間嘗試過好幾種方式,這裡也簡單做個對比,鑑於能力,這個對比不一定準確,僅供參考。


方式

響應速度

單次花費

穩定性

整體

Fine-tuning

20s

訓練成本高,難度大。效果不好。

Embeddings

20s

高(50美分)

單次成本高,回答不全面

Assistant

30+s

低(數美分)

回答全面,響應速度稍差

聞達

20s

自備伺服器,穩定性不太好。

         

 

未來的思考

目前是直接嫁接在企業微信的自建應用之上(釘釘也是同理),可以透過不同應用對應不同的Assistant,解決不同場景的答疑。任何企業,只要有現成資源的情況下,任何問答場景都可以快速應用。

如果要移植到微信小程式或者app,就可以使用同聲傳譯外掛快速語音識別,並可透過tts 文字轉語音,提升應用的便利性。

希望語音小助手的上架,可以為雙雙同學,為coco同學,為那些每天還埋沒在無休無止的問答中的同事們帶來些許支援,掃除陰影,還他們一個陽光的心情。

 

微信:jijunjian

成為一名優秀的程式設計師!

 

相關文章