App Inventor TW tutorial 交談式AI – ChatBot 元件

交談式AI – ChatBot 元件

App Inventor 在最新的 release 中發布了兩個生成式 AI 相關的元件:ChatBot 與 ImageBot。作為生成式 AI 的重要推手,這兩個元件串接了 openAI 的 chatGPT 文字生成服務與 DALL-E 2 圖片生成服務,後者會再寫文章介紹。

ChatBot 元件

ChatBot 元件位於 Experimental 分類下,屬於非可視元件。根據 MIT 文件說明,ChatBot 元件使用 MIT 代理伺服器來呼叫 ChatGPT 生成式大型語言模型。為造福更多人開發出心中的 app,使用者無需提供 ApiKey 就能使用,但因此也有呼叫次數上的限制。如果您後續再操作收到 “Quota exceeds limits” 類似訊息,代表呼叫次數太頻繁,需稍等一會才能繼續使用。因此如果不想被這個問題煩心的話,請自行付費申請 openAI APIKEY 填入使用,當然也會根據您的使用量來收費。

建議可先用 chatGPT 網頁版或 app 版操作,最後再轉到您的 app 來操作比較不會碰到 quota 問題。

Designer 介面配置

介面很簡單,說明如下:

  • 滑桿元件:調整溫度值,後續有說明
  • 按鈕元件:按下按鈕,呼叫 ChatBot 元件發送一段文字給 chatGPT。
  • 標籤元件:顯示 chatGPT 的回應。
  • ChatBot 元件:本文重點,用於串接 chatGPT 服務。

Blocks 程式設計

按下按鈕,呼叫 ChatBot.Converse 輸入您想問的問題,例如 “我是男生,先念研究所和先當兵的好壞比較? 幫我各列出3個點。“,目前 ChatGPT 可接收的 token 數量已相當長,可以整理好問題再問,或是加入一些控制項,例如在先前的問句後面加入 “請用 200 字以內回答“,或是像本範例透過 Slider 元件來控制溫度值,進一步控制 ChatBot 回答內容的創意程度。

回答的內容會由 ChatBot.GotResponse 輸入事件的 responseText 輸入變數來取得,在此將其顯示於 Label 上即可。

chatGPT 的溫度是什麼意思?

使用者可透過溫度 (temperature) 參數來控制回答的多樣性。在語言生成中,溫度參數用於調節模型生成文字的隨機性程度。較高的溫度值將導致更多的隨機性,使回答更多樣化,但可能也會讓生成的內容變得不太連貫。較低的溫度值會使生成的內容更加確定和一致,換言之就是保守的安全牌。 (參考資料)

執行畫面

執行時,請調整溫度值就可以看到同一個問題在回答創意程度上的差異。本範例為求簡便,把問題寫在 Blocks 中,後續如要方便使用者操作,歡迎自行新增 TextBox 或 SpeechRecognizer 元件讓使用者自行輸入內容。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *