BOCCO emo と ChatGPT を連携してみた
BOCCO emo はユカイ工学さんが開発・販売しているロボットです。ひょんなことから、自宅にお迎えしています。音声コマンドやセンサーに対応していて、可愛い返事を返してくれます。
【公式】BOCCO emo|照れたり、そわそわしたり、ムッとしたり。どこか懐かしい未来のファミリーロボット(ボッコ エモ) https://www.bocco.me/
最近、アップデートがあり、音声認識の精度が向上しました。APIが提供されていて、プログラムから操作することもできます。
APIドキュメント | BOCCO emo Platform API https://platform-api.bocco.me/api-docs/#overview
そこで今回は、話題の ChatGPT と連携させてみました。
naimasa/bocco-chatgpt: Bocco emo and ChatGPT integration https://github.com/naimasa/bocco-chatgpt
おおまかな処理の流れとしては、
BOCCO emo でメッセージを音声録音
チャットルームに投稿されたメッセージをWebhookで検知 (BOCCO Platform API)
Webhook のコールバックでメッセージを処理 (自前サーバ)
メッセージをクエリとして ChatGPT の API を呼び出し (OpenAI API)
ChatGPT の API 応答をチャットルームに投稿 (BOCCO Platform API)
BOCCO emo にはチャットルームという仕組みがあり、そこを通じて、BOCCO emo と ChatGPT を連携させています。
Webhook のタイミングや後続処理のラグの関係もあって、お世辞にも良いレスポンスとは言えないのですが、応答内容は良い感じにできました。
今回、ChatGPT に与えるパラメータで、"あなたの名前はエモちゃんです。質問に幼稚園のお友達でもわかる表現で3つの文以内で答えてくれる先生です。" というように指定しています。あまり長い応答が返されると、BOCCO の API の制限に引っかかってしまうため、短い応答になるように(かつわかりやすくなるように)指示しています。