chatGPT APIを使って文脈を理解するLINEのchatbotを作る

API

今回はchaGPTとLINEを使いchatbotを作っていきます。☆☆

ポイント

 ・Googleのアカウントは作成済みとして説明

 ・開発環境はGAS(GoogleAppScript)を使用

 ・文脈の保持にはGoogleスプレッドシートを使用

 ・各LINEユーザーごとに文脈を保持

早速作っていきましょう。

 

必要なアカウントの作成

Line Developer の登録

上記リンクからLine Developerに登録し、新規プロバイダー、チャネルを作成します。

名前などは重要ではないので、自分で分かれば良いです。チャネル名はLINE公式アカウントのbotの名前になりますので、任意の名前を設定します。

チャネルを作成したら、MessagingAPIを選択します。

設定でチャネルアクセストークン(長期)を発行し、このチャネルアクセストークンを控えておきます。-①(後で使います)

 

OpenAI_APIKEYの取得

続いて次のリンクからOpenAIのAPIKEYを取得します。

Just a moment...

アカウントの作成は特に難しいことは無いので、画面に従い作成します。

高額請求だけは怖いので、リミッターの設定だけ確認しておきましょう。

続いてAPIKEYを作成・取得し、このKEYを控えておきます。-②

 

GoogleAppScriptの設定

GoogleAppScript(以下GAS)ですが、web上に上がっている情報を見ると、いきなりGASを立ち上げている手順書が多いのですが、今回作るbotではスプレッドシートを使いますので、連携が必要になります。

ここの手順が大事ですので間違えずに進めていきましょう。

 

スプレッドシートの立ち上げ

まずはGoogleスプレッドシートを立ち上げます。

ファイル名等は重要ではありあませんので任意の名前にし、この画面から拡張機能、AppsScriptへ移動します。

こうすることで、このシートとGASが連携します。

 

スクリプトプロパティの設定

続いて、GASのプロパティを設定します。

設定から、プロパティにLINE_ACCESS_TOKEN、OPENAI_APIKEYを追加します。

これらには前章で作った、チャネルアクセストークン-①と、APIKEY-②を入力します。

GASのコード内にシークレットコードを直接記述すると流出するリスクがあります。

流出すると、誰でも自分のAPIを使うことが出来てしまうため、chatGPTのAPIが使い放題にされてしまう可能性があります。

それを阻止する為の手順ですので参考までに。

 

GASにテスト用コードを入力

ここでは、一旦chatGPTは置いておいて、まずはLINEに接続することを先に試してみます。

こちらのコードをGASにコピペします。

出来上がったら、ウェブアプリとしてデプロイします。

様々なアクセス認証画面が出ますが、承認していきます。

アクセス出来るユーザーは全員に設定。途中、危険なので戻る様な画面も出ますが、そこも開いて承認していきます。

デプロイ出来たら、ウェブアプリのURLを控えます。-③

 

動作確認

項目的にうまく入りませんでしたので、ここで1点だけ、LINE Developperの設定が入ります。

 

Webhook設定

LINE Developpersに戻りWebhookの設定を行います。

MessagingAPIの設定から、Webhook設定を編集し、GASで作ったウェブアプリのURL-③を入力します。

問題ないか、検証ボタンを押して成功の表示が出ることを確認してください。 

 

動作確認テスト

上記の手順を全て完了したら、MessagingAPIの画面にあるQRコードを読み取り、LINEで友達追加します。

LINEのメッセージを送り、オウム返しが来れば、一旦ここまでの動作確認テストが出来たことになります。

ここまで、うまく出来たでしょうか?

ここから、chatGPTを接続していきます。

 

chatGPTに回答させる

まずは、いろいろな機能を付ける前に、chatGPTに回答してもらう様にしましょう。

少し書式を変えたので、全てコピペして使ってください。

これにより、応答がchatGPTの回答に変わります。しっかり動いているでしょうか?

この様な形です。

chatGPTのAPIは文脈を保持する様に作られておりません。

これを次の様に応答出来るようにしていきます。

 

追加した機能は以下

  • ユーザーごとの会話履歴を保存
  • 会話の数に上限を設定
  • 各ユーザーの友達になった日、メッセージを交わした最終日の記録
  • 会話の記録はターン5回分遡って対応する

ここから先の設計はNoteの有料記事にまとまています。

ぜひご覧ください。

コメント

タイトルとURLをコピーしました