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分析該話題及問題並以語音方式回答內容。