OpenAIのFunction Callingを使って、robo8080さんのAIスタックチャン2に様々な機能を追加しました。
※Function Callingを使わない通常の会話もできます。
※v0.2.0からウェイクワードにも対応しています。使い方はAIスタックチャン2のREADMEを参照ください。
Function Callingで呼び出せる機能の一覧を下表に示します。
プロンプトや関数の実装は FunctionCall.cpp にまとめています。指示に応じてスタックチャンが関数を使いこなしてくれます。
FunctionCall.cppを改造することで、新たな機能を追加するなどのカスタマイズができます。
No. | 機能 | 使用例 | デモ | 補足 |
---|---|---|---|---|
1 | 時計、タイマー | 「今何時?」 「今日は何日?」 「3分たったら教えて」 「1時間後にパワーオフして」 「タイマーをキャンセルして」 |
動画(Twitter) | |
2 | メモ(SDカード) | 「~をメモして」 「これから言うことをメモして」 「メモを読んで」 「メモを消去して」 ※次回電源投入時にSDカードにメモが残っていたら、「メモが保存されています」とスタックチャンが教えてくれます。 |
メモは notepad.txt というファイル名でSDカードに保存されます。 | |
3 | メール送信 | 「メモをメールして」 | 動画(Twitter) | GmailのアプリパスワードをSDカードに保存しておく必要があります(「各種設定ファイル」参照)。 |
4 | バス(電車)時刻表 | 「次のバスの時間は?」 「その次は?」 |
動画(Twitter) | 時刻表をSDカードのファイルに保存しておく必要があります(「各種設定ファイル」参照)。 |
5 | 天気予報 | 「今日の天気は?」 「明日の天気は?」 |
・robo8080さんがGistに公開してくださったコードを参考にさせていただきました。 ・City IDはSDカードの設定ファイルで変更することができます(「各種設定ファイル」参照)。 |
スタックチャンとお話するためには次のAPIキーをSDカードに保存する必要があります。APIキーの取得方法などの詳細はAIスタックチャン2のREADMEを参照ください。
- ChatGPT
- Google Cloud TTS
- VoiceVox
SDカードに次の順で保存してください。
- 自分のGmailアカウントのメールアドレス
- アプリパスワード(こちらのページなどを参考に取得してください)
- 送信先のメールアドレス
ファイル名:gmail.txt
[email protected]
XXXXXXXXXXXXXXXX
[email protected]
SDカードに次のように時刻表を保存してください。 ※現行は祝日の判別はできません。
ファイル名:bus_timetable.txt(平日)、bus_timetable_sat.txt(土曜)、bus_timetable_holiday.txt(日曜)
06:01
06:33
06:53
・
・
・
21:33
22:03
22:33
SDカードに次のようにCity IDを保存してください(例は神奈川県のID)。
ファイル名:weather_city_id.txt
140010
City IDはこちらで調べることができます。
- フォルダ名が長いため、ワークスペースの場所によってはライブラリのインクルードパスが通らない場合があります。 なるべくCドライブ直下に近い場所をワークスペースにしてください。(例 C:\Git)
- v0.0.1
- 初回リリース
- v0.1.0
- ChatGPTへのリクエストを10回までループできるようにして、Function Callingで複数の関数を連携できるようにした。
- v0.2.0(mainタグ)
- ウェイクワードに対応。
- Function Callingで呼び出せる機能を追加。
- 追加した機能:メモ(SDカード)、メール送信、バス(電車)時刻表、天気予報