何も決まらないぞ!
どうも、アラ還サラリーマンです。
みなさん、会社で会議多くないですか?
そのほとんどは連絡事項だけとか、情報共有だけの集まりです。
何かを決めなければいけない会議も、いつの間にか世間話になっていたり・・・。
こんなんじゃいか~ん! 何か決めるための会議だよね!
というわけで、会議前に1人でも会議っぽいシミュレーションができるLINE Botをつくってみました。
今回使用したツール
- LINE Developers
- LINE Botを使用しました。
- ChatGPT API
- 会議の相手をしてくれます。
- Googleスプレッドシート
- 会議相手との応答内容の蓄積や返答の加工に使用しました。
- Make
- LINE Bot、Googleスプレッドシート、ChatGPT APIを操作します。
実際にできた動画がこちら!
西遊記でおなじみの、孫悟空・沙悟浄・猪八戒が、
ある時はとぼけて、またある時はまじめに会議の相手をしてくれます。
操作方法
- 『○○の会議を始めよう!』で始めてください。
- 孫悟空・沙悟浄・猪八戒がお相手します。
- リッチメニュー(デフォルトでは隠しています)の【新しい会議を始める】で、それまでの会議内容を消去します。
ただし、ChatGPT APIを組み込んだLINE Botは、前の会話の内容はすっかり忘れるとのこと。
なので忘れないような仕掛けが必要になります。
下記の記事を参考にさせていただきました。とてもわかりやすかったです!
Googleスプレッドシートがこちら
ファイル名:GPTまとめ
- シート名:返答
ChatGPT APIからの返答がA1に入力されます。
B1には =FLATTEN(SPLIT(A1,char(10))) という関数を予め入力しておきます。
A1の値を改行で分割してくれます! しかもB2、B3にも値が反映します!
Excelにこんな関数あったっけ?(知らないの、自分だけ?)
スプレッドシートすごい!
- シート名:応答
A、B列にChatGPT APIとの会話が記録されます。
Makeの全体のシナリオがこちら
条件分岐
リッチメニュー【新しい会議を始める】で送られるテキストと一致するかしないかで処理を分けています。
会議中の処理
ChatGPT APIに以前の会話内容を渡す下準備。
スプレッドシートのシート名:応答の以前の会話内容を取得しています。
参考記事から引用しました。
Message 1とMessage 2に上記で取得した会話内容を渡しています。
Message 3には孫悟空・沙悟浄・猪八戒に返答させるプロンプトを入れています。
スプレッドシートのシート名:返答のA1にChatGPT APIからの返答を入力。
その後、A1の値を分割したB1、B2、B3の値をそれぞれ取得しています。
LINEの応答処理で、孫悟空・沙悟浄・猪八戒のそれぞれの返答を入れています。
その後、スプレッドシートのシート名:応答に新しい会話を追加しています。
リッチメニューからの処理
スプレッドシートのシート名:応答に記録された会話内容を消去。
スプレッドシートのシート名:返答のA1の値を消去。
その後、LINEで消去したことを通知します。
またまた配列絡みで一苦労・・・
ChatGPT APIからは、孫悟空・沙悟浄・猪八戒の返答がひとかたまりで返されます。
最初はそれをそのまま返答させていましたが、孫悟空・沙悟浄・猪八戒がそれぞれ返答した方がおもしろいかなと思いました。
しかし、ひとかたまりの返答を改行で分割して配列にして、それぞれの返答を Send a Reply Messageモジュール に渡そうと試みましたがうまくいかず・・・。
そんな時、スプレッドシートで FLATTEN関数と SPLIT関数を組み合わせる方法をネットで発見しました!
こっちの方が簡単です! あの悩んだ時間は何だったのか・・・。
結構まじめに答えるぞ! 感動!
今回、ChatGPT APIを組み込んだLINE Botを初めてつくってみました。
孫悟空・沙悟浄・猪八戒もそれぞれ思っていたよりもいい返答をしてくれます。
ただ、たまに猪八戒だけが訛るときがあります(笑)
動画の中にもありましたが、『あれ、何の会議だったっけ?』と質問しても、ちゃんと以前の会話を認識して返答してくれました。
お気づきの方もいらっしゃるかもしれませんが、もう1つのリッチメニューは工事中になっています。機能を与えていません。
今後は会議の議事録を出力する機能を割り振ってみたいですね。
ではでは、今日はこのへんで! 下記の言葉で締めたいと存じます。
・・・世の中には会議のための会議というものが存在する・・・
(某天下の国営放送局でやっていたコント番組のネタをオマージュしました)