見出し画像

【プログラミング不要】コピペで作るChatGPTを使用したキャラクターLINEbot



更新(2023/3/30)

  • 友達とbotを共有しても別々の会話履歴を保持できるようになりました

  • スプレッドシートのConversationLogシートが不要になりました

  • ChatGPTに渡すプロンプトの作成方法を微修正しました

概要

ChatGPTを使用したキャラクターbotをLINEで呼び出すための手順書です。
本記事で作成するbotの特徴として、以下が挙げられます。

  • プログラミングできなくてもコピペで作成可能

  • キャラクターの設定・人格をスプレッドシートで管理でき、追記しやすい

  • 文脈に沿った会話が可能

  • 作成したキャラクターbotはLINEで共有できる

イメージとしては以下の画像の様にLINEでキャラクターとの会話が可能になります。

必要な物

  • Googleアカウント

  • LINE for Businessアカウント

  • OpenAIアカウント

  • クレジットカード

  • 電話番号

  • キャラクター設定

全3Stepで解説しているので是非お気に入りのキャラクターのbotを作ってみて下さい。

Messaging APIを用意する

1.LINE Developersに登録

以下のリンクからLINE Developersに登録しましょう。

2.プロバイダー/チャネルの作成

画面に従って新規プロバイダー/チャネルを作成しましょう。
まずはプロバイダーの作成を選択し、適当な名前を決めます。
ここでいうプロバイダーとは所謂企業名などに当たります。

プロバイダー作成画面

次にプロバイダーのコンソールに移動し、チャネルを新規作成します。
下の画面でMessaging APIを選択しましょう。

チャネル作成画面

また、チャネル名・チャネルアイコンはそのままbotの名前・アイコンになるので、設定したいキャラクターに沿ったものにしましょう。

例えばこんな感じ

3.応答設定をする

続いてLINE Official Account Managerに移動して、先ほどのアカウントの応答設定をします。

右上の設定から

LINE Official Account Managerのホーム画面

応答設定を開き、Webhook以外をOFFにします。

応答設定画面

スクリプトの作成

1.GASプロジェクトの作成

以下のリンクからGoogle Apps Scriptsを開き、新しいプロジェクトを選択します。
この時、プロジェクト名を適当に入力しておくと後から管理がしやすいかと思います。

新規プロジェクト立ち上げ画面

2.ソースのコピペ

新規プロジェクトの内容を全て消し、記事の最下部にあるソースをコピペしましょう。(有料記事)
ここからはソースが手元にある前提となります。
以降、ソースの中身を埋めていきます。

3.LINE MessagingAPIのトークンキー取得

再び下記リンクに移動し、トークンキーを取得します。

チャネル設定コンソールからMessaging API設定タブに移動、最下部でチャネルアクセストークンを発行します。

Messaging API設定タブ

発行できたらコピーして、ソースの該当部分にペーストしましょう。

チャネルアクセストークン
ソース3行目にペースト

4.OpenAIアカウントの作成

APIの登録に電話番号・クレジットカードが必要になります。
以下のリンクから新しくOpenAIアカウントを作成しましょう。

アカウントが作成出来たらBillingPayment methodsからクレジットカード情報を追加しましょう。

クレカ入力画面

住所の入力については以下を参考にしてください。

  • Country - JAPAN

  • Address line1 - 番地・区画

  • Address line2 - マンション名・部屋番号

  • City - 市区町村

  • Postal code - 郵便番号

  • State, county, province, or region - 都道府県

次にAPI Keysタブに移動し、+ Create new secret keyをクリックしてAPIキーを生成します。
この時必ず表示されたAPIキーをコピーしておいてください。(タブを閉じると再表示できません。)

+ Create new secret keyボタン
APIキーをコピー

MessageAPIのトークンキーと同じく、コピーしたAPIキーをソースの該当部分にペーストします。

ソース6行目にペースト

5.スプレッドシートの作成

リンクからスプレッドシートを作成します。
スクリプトと同じGoogleアカウントで作成しておけば自動的に同じドライブに保存されるので管理しやすいかと思います。
以降、このスプレッドシートでキャラクターの設定と会話履歴を管理します。

空白のスプレッドシートを作成

スプレッドシートの下部から「Character」という名前のシートを作成し、スプレッドシートに適当な名前を付けて保存します。

また、CharacterシートのA1セルに「system」、B1セルに何か1つAIの設定を入力してみましょう。

適当な設定を入力(後から追加/変更できます)

スプレッドシートIDはURLに以下の形で表示されています。https://docs.google.com/spreadsheets/d/スプレッドシートID/edit#gid=シートID

スプレッドシートのURL内、ID部分

これも同様にソースの該当部分にペーストします。

ソース8行目にペースト

6.履歴リセット時のセリフ入力

botに「reset」と話しかけるとスプレッドシートに保存された会話履歴をリセットするように実装しています。
その際のキャラクターのセリフを入力しましょう。

ソース16行目にキャラクターが言いそうなセリフを入力

7.スクリプトのデプロイ

以上が完了したら、GASの右上からデプロイ新しいデプロイを選択。
続いて画像の様に歯車マークウェブアプリを選択します。
アクセスできるユーザーを「全員」に変更したらデプロイしましょう。

歯車マーク→ウェブアプリ
アクセスできるユーザーを「全員」に変更

また、この時以下のような画面に遷移する場合がありますが、画面の指示通り対応すれば問題ありません。
(Google hasn't verified this appと表示された場合は「Advanced」→「Go to "プロジェクト名" (unsafe))

アクセスの承認が必要な場合がある

デプロイが完了したらウェブアプリのURLをコピーしましょう。

8.Webhookの設定

再びリンクからチャネル設定コンソールを起動し、Messaging API設定タブに移動しましょう。
Webhook設定→編集をクリックして、先ほどのウェブアプリURLをペースト、更新します。
(検証した際に302 Foundエラーが発生する可能性がありますが、問題ありません。)

この時点でLINEからbotを呼び出せるようになっているはずです。
Messaging API設定タブのQRコードを読み取って、友達追加してみましょう。

Botの追加画面
自己紹介してもらう

キャラクター設定を追加する

先ほど作成したスプレッドシートにキャラクターの設定を追加しましょう。

スプレッドシートのCharacterシート内にはスクリプトの作成-5.スプレッドシートの作成で入力した設定が既にあると思います。
同様にA列に"system"、B列に設定を入力して思い思いのキャラクターを設定しましょう。
以下のポイントを押さえておくと作りやすいかと思います。

  • キャラクター設定/実際のセリフ/行動方針に分ける

  • 一人称を設定する

  • 実際のセリフを多めに入力しておく

  • 余り大量の設定を詰め込むとAPIの使用量が嵩むので注意する(後述)

一例として虹夏ちゃんを設定したときのプロンプトを置いておきます。

プロンプトの一例

人格の植え付けに関してはもっといい手法があるかもしれないので開発され次第更新します。

最後に

bot作成の手順書は以上になります。分かりづらい点、指示通りにやっても動かない場合はChatGPTにソースを投げて質問しましょう
それでも解決しない場合はコメント頂けると対応できるかもしれません。

また、今回のOpenAPI使用にはわずかに使用料がかかり、具体的には1000トークンあたり0.002ドルとされています。(但し、$18までの無料トークンがあるようです。)
日本語だと大体1文字≒1~2トークンなので、平均1.5トークンとしても10000文字のやり取りで大体4円程度の計算になります。
今回のbotではCharacterシートの設定と直近3回分のやり取りは全て、メッセージ送信のたびに一緒に送られます。(設定保持、及び文脈理解の為)
余り大量に設定を書き込むと、毎回その分のトークンが嵩むので注意してください。

ご利用は計画的に、良いbotライフを。

ソース

スクリプトの作成-2.ソースの作成以降使用するソースです。
そのままGASプロジェクトにコピペしてください。

ここから先は

4,903字

¥ 500

この記事が参加している募集

AIとやってみた

この記事が気に入ったらサポートをしてみませんか?