見出し画像

【ChatGPT】LINE で OpenAI 社の API と連携するチャットボットを作ってみた【LT大会】

大変ご無沙汰しております。アジャイル開発グループの 友人K です!
(筋肉 UT を回して以来、3年半ぶりの投稿です。。)

さて、今回は LINE で OpenAI 社の API と連携するチャットボット を作ってみましたので、そのご紹介です。
そして作ったものは部内の技術コミュニティの活動として実施している LT大会 (LT: ライトニングトーク) で発表させていただきました!

ライトニングトーク: Lightning Talks; LT)とはカンファレンスフォーラムなどで行われる短いプレゼンテーションのこと。イベントで「ライトニングトーク」と明示される場合は、それより長いプレゼンテーションも開催される。様々な形式があるが、持ち時間が5分という制約が広く共有されている。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

業務とは無関係で、プライベートで遊んでみたものになりますのでご了承ください!

なお、今回使用した OpenAI 社の API で使用しているモデルは今話題の ChatGPT と同じ gpt-3.5-turbo というものです。

構成とやりとりの流れ

以下のような構成でチャットボットを作ります。

構成とやり取りの流れ(LINE, AWS, OpenAPI)
  1. LINE 公式アカウントの Messaging API を用いて AWS の API Gateway に紐付いている URL に Webhook イベントを送信する

  2. AWS Lambda に連携

  3. Amazon DynamoDB に会話を保存 + 過去の会話履歴を新しい方から適当な分だけ取得

  4. OpenAI 社の API を叩いて返答を得る

  5. Amazon DynamoDB に返答を保存

  6. Messaging APIReply API を叩いて返事を LINE に送信

技術ブログではないですので、細かい部分は割愛します。。

いざ LINE で会話!

試しに「AWS Lambda のメリット・デメリットを簡潔にまとめよ。」と質問してみました。

質問してみた。さて何て返ってくるでしょうか… (なお、変換ミスをしていました。完結 -> 簡潔)

OpenAI 社 API からのレスポンス

しっかり返ってきましたね!(変換ミスをしていたにも関わらず)

過去の会話履歴も送っているので、この会話に続けて質問し、文脈がわかっているか否かを試してみましょう。

文脈を理解していないと返答できない投げかけ

OpenAI 社 API からのレスポンス

返ってきましたね!
一緒に OpenAI 社に投げている過去の会話履歴から文脈を判断して返答しています。ChatGPT 同様、しっかり文脈は理解してくれますね!

これで LINE から ChatGPT と同等のものが使えるようになったので、だいぶ便利になるぞ!(きっと。。)

ちなみに gpt-3.5-turbo を1か月半のあいだ時々使っていましたが、わりかし低コストで使えます。モデルによって料金が違うので詳しくは公式ドキュメントをお読みください!

1か月半のあいだ時々使いましたが1ドル未満でした


LT 大会での発表の様子

今回のチャットボットの説明と会話のデモを、先日の LT 大会で発表させていただきました。
その時の様子の写真をいくつか載せておきます!

結構たくさんの人に集まって頂きました!
友人K (筆者) が発表しているところ
イカしたスペースがあると、こういうイベントの時に活用できますね!
チャットボットのデモで盛り上がっている様子
皆様ご参加ありがとうございました!


今回はただ仕組みを作っただけですが、本当はプロンプトエンジニアリングチックなことにも踏み込んでみたかったです。(途中で力尽きた。。)
また、GPT4 も現在申込申請中なので、どれくらいパワーアップしているか確認してみたいです。

それでは、現場からは以上です!

最後に宣伝です

ふくおかフィナンシャルグループではまだまだ仲間を募集しております
https://www.fukuoka-fg.com/recruit_career/requirements/