【ミーア】ChatGPTとCloud Functions, Firestoreを用いて会話記憶するLINE Bot開発①:環境設定まで
下記noteを参考に、ChatGPT APIとGASを使ったLINE Botを作成してみたのだが、GAS以外の方法で、かつ大規模運用にも耐えられるように設計したいと思うようになった。
Udemyで『ChatGPTを用いたLINEBot開発入門-基本的な機能からPDFを用いたQ&Aまで、クラウド上での開発方法を徹底解説』というタイトルの講座を発見
GCPというクラウドサーバーを使うのと、単純にChatGPTのAPIを使うだけではなく、追加情報をPDFで用意してベクトル化するという点が新しく、勉強したいと思ったので受講したところ、非常に勉強になった。
https://www.udemy.com/course/chatgpt-linebot-gcp/
講座で紹介されていたコードをもとに、今回作成したい「方言を話すLINE BOT」用に少し変更(あと、2023年12月時点での最新のOPENAIのAPI呼び出しに対応。ただし今後変わりうる)したので、備忘録として記載。
会話記憶を持たせるLINE BOT作成の全体像
手書きが汚すぎるが、こんな感じ。
ちなみに、Show Me Diagramという ChatGPT Pluginを使って、下記のプロンプトを指示したところ
エンドユーザーがLINEにメッセージを送信すると、Cloud functionsにwebhookでリクエストが送信され、CloudfunctionsのChat GPT APIを利用した返答を生成し、LINEに返し、ユーザーにメッセージが返ってきます。
また、Cloud functionsからFirestoreに対話内容を保存し、firestoreから過去の対話履歴を呼び出してCloud functionsに戻します。
このことを表す図表を作成してください
下記の返答がきて、ダイアグラムを作成してくれた。
こちらが、エンドユーザーがLINEにメッセージを送信し、Cloud Functionsを介してChat GPT APIを利用して返答を生成し、LINEを通じてユーザーにメッセージが返されるプロセスを示すシーケンス図です。また、この図にはCloud FunctionsからFirestoreに対話内容を保存し、Firestoreから過去の対話履歴を呼び出してCloud Functionsに戻すプロセスも含まれています。
結局、Googleスライドで作成した。ここら辺、手書きから自動化して、良い感じのダイアグラムを作成できるようになるとありがたいな。
結局、Googleスライドで作成した。ここら辺、手書きから自動化して、良い感じのダイアグラムを作成できるようになるとありがたいな。
ユーザーがLINEにメッセージを送信すると、その内容はLINEのWebhookによってCloud Functionsに転送され、Cloud Functionsで設定した関数でOpenAI APIを通じてChatGPTを利用してユーザーのメッセージに対する応答が生成される。生成された応答はLINEを通じてユーザーに返送される。このプロセスには、セキュリティのためのChannel SecretとAPIの認証のためのChannel Access Tokenが用いられる。また、Cloud FunctionsとFirestoreの間でユーザーメッセージや応答などのデータが保存され、交換される。
LINE Messaging APIの仕様とDeveloperアカウントの設定
LINE Messaging APIの仕組み
続きは、こちらで記載しています。