OhBot ChatGPT 進階 - 簡單對答

上一篇文章分享了 OhBot 最簡單的 GPT 答話功能 , 這次將加入對話以及動作來豐富整個專題。

加入動作 :

我們可以利用編程控制 Ohbot 機械人活動 , 例如 : 轉頭部 、 眨眼 、張開嘴巴等等...

但這次我們將使用「MultiBlocks」內的功能讓 OhBot 機械人在對話時自動做出不同動作來模型真人對話。

點擊「MultiBlocks」 , 以後將「Blink」、「Lip Sync」以及「Random」都拖拉至右方的工作枱上。

你在工作枱上應會得到以上的東西 , 點擊「Lip Sync」的「↓」進入 parameters mode

按「view」 , 我們需更改一些編程才能做出「說話」的動作、預設編程中 OhBot 的嘴巴是不會自動開合的。

預設編程是「lipsync = 0」 , 我們需從「Operators」取出「 >= 」來把 lipsync 改成 >= 0 。

改成 「lipsync >= 0」 , Ohbot 便會在說話 (進行 speech command時) 自動開合嘴口 , 模仿說話。

GTP 對話編程教學 :

在「Events」取出「when green flag clicked」作用是啟動編程 , 你也可選擇其他方塊。

在「Data」創建一個全新的 variable (按 Make a Variable) , 將 variable 改成 topic 。

目的是給予 OhBot / ChatGPT 一個主題 , 讓 Ohbot 圍繞著這個主題回答你的問題。

「Plan a visit 」是這個例子的主題 , 你可以隨意改變它。

同時加入 set voice 「____」 , 讓 OhBot 的說話變得更人性化。

在「Control」取出「forever」然後放在「set variable」後面 , 我們希望圍繞這個話題不斷向 ChatGPT 查問 ,

因此這裡需選用「forever」讓整個編程可以無間斷地進行。

進入「Sensing」 , 取出「ask what's your name? and wait」或「ask Speak to me and listen」 ;

前者為輸入文字讓 ChatGPT 分析 , 後者為使用麥克風說話讓 OhBot 收音再讓 ChatGPT 分析 ,

在穩定性來說 , 我們會建議使用「ask What....and wait」的文字輸入 ,因為文字輸入可確保輸入的內容無誤 ,

在趣味性來說 , 「ask Speak to me.. and listen」的語音輸入更像與真人/AI 對話 ;

但語音輸入有機會因收音 , 口音等的問題出現誤差 令到 OhBot / ChatGPT 無法有效分析輸入的內容。

將「ask .....」的內容改成「type your question」或其他疑問句 ,

輸入的文字需跟 voice type 的語言一樣 ; 例如 : 英文 | 英文(英國) , 法文 | 法文(加拿大)

不然 GPT 將無法分析其問題

在「Control」取出並加入 「If then」讓 OhBot/ChatGPT 分析過後進行回答

在「Operators」取出「 xxx contains xxx 」, 代表當輸入的內容包括這個文字便...

將「answer」拉至「contains」前面 , answer 是你在 OhBot 向你提問後輸入的內容 例如 : 「visit to hong kong 」

「contains」後手動輸入「finished」 而當我們回答的內容是 「finished」 , 這個編程(對話)將會完結。

在「Speech」中取出「Say Hello! until done」 , 將文字改成 「Bye Bye !」 作為對話完結的提示語。

在「Control」取出「stop all」 , 加至「say Bye Bye until done」後並改成「this script」來停止這個編程。

如同上一篇文章學過的一樣 ,

在 「AI」 取出「gpt-4o」並放至 「say」內  , 讓 OhBot 說出(回答) GPT 中的內容。

加入「join hello world」讓 OhBot(ChatGPT) 說出的內容加至我們需要的地方

最後加入「topic | variable」及「answer」完成整個編程 , 將 ChatGPT 加入至我們設下的話題及輸入的問題

這樣就能讓Ohbot/ChatGPT分析該話題及問題並以語音方式回答內容。