【プログラミング不要】コピペで作る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に移動して、先ほどのアカウントの応答設定をします。
右上の設定から
応答設定を開き、Webhook以外をOFFにします。
スクリプトの作成
1.GASプロジェクトの作成
以下のリンクからGoogle Apps Scriptsを開き、新しいプロジェクトを選択します。
この時、プロジェクト名を適当に入力しておくと後から管理がしやすいかと思います。
2.ソースのコピペ
新規プロジェクトの内容を全て消し、記事の最下部にあるソースをコピペしましょう。(有料記事)
ここからはソースが手元にある前提となります。
以降、ソースの中身を埋めていきます。
3.LINE MessagingAPIのトークンキー取得
再び下記リンクに移動し、トークンキーを取得します。
チャネル設定コンソールからMessaging API設定タブに移動、最下部でチャネルアクセストークンを発行します。
発行できたらコピーして、ソースの該当部分にペーストしましょう。
4.OpenAIアカウントの作成
APIの登録に電話番号・クレジットカードが必要になります。
以下のリンクから新しくOpenAIアカウントを作成しましょう。
アカウントが作成出来たらBilling→Payment methodsからクレジットカード情報を追加しましょう。
住所の入力については以下を参考にしてください。
Country - JAPAN
Address line1 - 番地・区画
Address line2 - マンション名・部屋番号
City - 市区町村
Postal code - 郵便番号
State, county, province, or region - 都道府県
次にAPI Keysタブに移動し、+ Create new secret keyをクリックしてAPIキーを生成します。
この時必ず表示されたAPIキーをコピーしておいてください。(タブを閉じると再表示できません。)
MessageAPIのトークンキーと同じく、コピーしたAPIキーをソースの該当部分にペーストします。
5.スプレッドシートの作成
リンクからスプレッドシートを作成します。
スクリプトと同じGoogleアカウントで作成しておけば自動的に同じドライブに保存されるので管理しやすいかと思います。
以降、このスプレッドシートでキャラクターの設定と会話履歴を管理します。
スプレッドシートの下部から「Character」という名前のシートを作成し、スプレッドシートに適当な名前を付けて保存します。
また、CharacterシートのA1セルに「system」、B1セルに何か1つAIの設定を入力してみましょう。
スプレッドシートIDはURLに以下の形で表示されています。https://docs.google.com/spreadsheets/d/スプレッドシートID/edit#gid=シートID
これも同様にソースの該当部分にペーストします。
6.履歴リセット時のセリフ入力
botに「reset」と話しかけるとスプレッドシートに保存された会話履歴をリセットするように実装しています。
その際のキャラクターのセリフを入力しましょう。
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コードを読み取って、友達追加してみましょう。
キャラクター設定を追加する
先ほど作成したスプレッドシートにキャラクターの設定を追加しましょう。
スプレッドシートの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プロジェクトにコピペしてください。
ここから先は
¥ 500
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?