見出し画像

【高機能版】ChatGPTを使用した多機能LINEbotを設置しよう【LineBotForGPTPlus2.6】


はじめに

前回、コードの編集なしで設置可能な多機能なLINEボットを公開させていただきましたが、今更にはなりますが今回は少し仕様の違うボットを紹介させていただきます。
プログラム自体はオープンソースによる無償公開となります。🔗ソースコードは筆者のGitHubからコピーして使用してください。
手順やパラメーター設定の指南書は有償とさせてください。
新しいプログラムですのでバグが潜在している可能性があります。バグは筆者に報告いただけるとありがたいです。
前回紹介したプログラムの設置方法は以下の記事で公開しておりますので初めての方や無料で簡単に設置したい方は以下の記事を参照ください。

注意事項

  • コード編集不要とはいえ設置手順は非常に複雑なので、まずは前回の標準版の設置を行い、自ら設置できることを確認したうえでこちらの記事をご購入ください。

  • 掲載されている手順は2024年01月13日に確認したものです。

  • 設置が上手く設置ができない場合は連絡をください。キャッシュバックも含めて対応させていただきます。

  • このボットは、OpenAI APIを利用しているため、事前にAPIキーが必要です。APIキーは、🔗OpenAIのウェブサイトから取得できます。

  • このボットはGoogle Cloud Platformを使用しているため事前にGoogleアカウントが必要です。

  • このボットはLINEを使用しているため事前にLINE Businessアカウントが必要です。

  • このボットの設置にはGithubを使用しているためGithubアカウントが必要です。Githubアカウントの作成手順については手順の中で解説しています。

  • OpenAI APIとGoogle Cloud Platformの利用料が発生します。料金については記事内で説明しています。

標準版と違う主な機能

標準版で実施されている機能は実装されているのでここでは標準版から仕様変更された機能と追加機能と実装を紹介します。
WEB検索+

クイックリプライが不要なWeb検索を実装しています「xxx駅周辺の美味しいxxxのお店を教えて」等の位置に関する質問にも対応するため「地図検索」を呼び出す必要がなくなりました。

クイックトリガーを利用せずにインターネットから情報の引き出しが可能

地図検索+
標準版はGoogleのPlace APIを使用して地図検索を実装していましたが、高機能版ではGeocoding APIを利用して経度緯度のGPS情報から住所を割り出し、WEB検索+を起動させて情報を表示します。
検索機能であるクイックリプライが廃止されたため、この機能を呼び出すにはLINEのインターフェースから位置情報の送信を行う必要があります。

WEB検索を使用して一休からおすすめスポット情報を呼び出し。

GoogleカレンダーおよびGmail連携
「Googleアカウント登録」コマンドで表示される「Gアカウント登録」のクイックリプライを実行して自身のアカウントを登録することで、アカウントのカレンダーの参照・追加・変更・削除とGmailの参照や送信が可能になります。
初期設定ではGoogleアカウント登録時にLineボットの管理用のURLにユーザーがアクセスすることになります。この仕様はセキュリティ的には良くない動作になります。もし、外部のサービスとして使う場合はパブリックドメインと固定のグローバルアドレスを取得してロードバランサ経由でアクセスする方式をお勧めします。ここでは設定方法を解説しておりません。

Googleアカウントの登録コマンドの実行
会話を使用してスケジュールを登録
Androidのカレンダーアプリでのスケジュールの登録状態
メールの確認例
メールの送信例
メールの送信結果例

音声出力
テキストと音声の切り替えはユーザー側で設定できます。
初期状態での起動キーワードは「音声設定」。
また音声生成に使えるエンジンはGoogle Cloud Text-to-Speechに加えて「ずんだもん」でお馴染みのVOICEVOXが利用可能になりました。VOICEVOXは日本語音声のみ使用可能です。管理者はどちらかを選択することができます。
※標準版であった「Both」は無くなって「Audio」が「Both」と同等の機能です。LINEのPushは不要になったのでLINEのAPIでの回数制限はありません。

翻訳モード
翻訳モードで言語選択を行うと話した言葉が選択した言語に翻訳されます。
初期状態での起動キーワードは「翻訳モード」。

「翻訳モード」の文字をトリガーにクイックトリガーを呼び出して言語を選択

画像生成
OpenAI社のDALL-E 3を使用して画像生成します。
「描いて」とか「絵」とか「写真」「画像」のキーワードを含めると画像生成されます。

支払い連携(β)
Stripeと連携しての利用者の支払いに正式対応します。
初期状態での起動キーワードは「💸支払い」
実際に運用した実績がないのでβ扱いとさせていただきます。誤作動しても責任がとれません。
実際にテストされた方はフィードバックをお願いします。

「💸支払い」をトリガーにクイックリプライを表示
クイックリプライをタップすると申し込みページが表示される。

支払いは以下の流れで行われます。

  1. 初回の無料期間を利用する: ユーザーは支払いをすることなく一か月無料で使用できます。

  2. 一か月後に回数制限がかかる: ユーザーは一定回数の会話後、メッセージを制限されます。

  3. ユーザーが支払い要求をする: ユーザーが特定のキーワード(例えば「💸支払い」)を使って支払いをリクエストします。

  4. 支払いセッションの作成: スクリプトはStripeを介して支払いセッションを作成し、ユーザーに対してセッションのURLをクイックリプライで提供します。

  5. 支払いプロセス: ユーザーは提供されたURLにアクセスし、カード情報などを使って支払いを完了します。

  6. Webhookを通じた通知: 支払いが完了すると、StripeからのWebhookがトリガーされ、サーバー側で1か月の無料期間の開始が設定されます。

  7. 支払い完了の確認: ユーザーは支払い後に成功のWebページに飛ばされ支払いが成功したかどうかの確認ができます。

標準版と同じ機能

以下の機能は標準版と同じです。
画像認識
画像を送信することで画像を認識します。
GoogleのCloud VisionからChatGPTの画像認識機能であるGPT-4Vに切り替える予定があります。
時刻認識
時間や日にちを聞くことで正しい時間を回答します。
音声認識
LINEの音声送信機能で自分の言葉で会話できます。
英語や中国語の音声切り替え
英語音声や中国語音声で出力される訛をユーザー側で設定できます。Google Cloud Text-to-Speechを選択したときのみ使用可能です。
初期状態での起動キーワードは「英語音声」「中国語音声」
音声速度変更
音声の速度をユーザー側で設定できます。Google Cloud Text-to-Speechを選択したときのみ使用可能です。
初期状態での起動キーワードは「音声速度」
グループチャット
グループチャットにBotを参加させることができます。Botに発言させるにはBOT_NAMEに設定された名称を呼びかける必要があります。名称は複数設定できます。
利用制限
一日の利用回数を制限することができます。
「MAX_DAILY_USAGE」に設定します。

動作デモ

動作デモを用意しました。LINEアプリで以下のQRコードを読み込んでください。

さくらPlus

動作デモでは以下のように設定しております。制限内容は利用状況により予告なしに代わります。また、予告なしにメンテナンスのため停止したり過去のデータを削除することがあります。
・一日で利用できる会話数は通常チャット1日20回+グループチャット1日20回までです。
・音声出力は「Audio」設定なため「音声設定」コマンドでモードを変更することによりGoogle Cloud Text-to-Speechにて音声出力が可能です。
・GoogleカレンダーおよびGmail連携機能はGoogleアカウントを連携すれば利用が可能です。🔗Googleアカウントのアクセス権の変更により連係解除が可能です。
・支払い機能は無効化しています。

利用料金

本システムを運用するための料金ですが、コード自体は無料です。利用するAPIやインフラが利用規模に応じて従量制の有料となります。
ChatGPTと音声認識、音声生成を保存するためのストレージ領域以外は小規模運用であれば無料で利用できます。無料を枠を超えたとしても大規模展開しなければ大した費用にはならないはずです。
2024年4月現在の料金は以下のようになっています。
OpenAI ChatGPT API
本コードでのチャットエンジンはリーズナブルなgpt-4o-miniが標準です。検索機能を裏で回している関係上、LineBotForGPTより燃費高めです。1トークンは日本語一文字ぐらいで概算してください。
入力0.150ドル/1Mトークン
出力0.600ドル/1Mトークン
その他の料金は🔗ここを参照

OpenAI Whisper API
音声認識はリーズナブルなWhisperを使用しています。
0.006ドル/分

OpenAI DALL-E3 API
画像生成は高性能なOpenAI社のものを使用しています。
0.040 ドル/ image

Google Cloud Build
ソースコードを実行できるようにビルドする際に最低スペックのサーバーでビルドする基準の料金です。
無料枠に収まると思うのでほぼ気にする必要はないです。
$0.003/ビルド分。1 日あたり最初の 120 ビルド分は無料
その他の料金はここを参照

Google Cloud Run
ソースコードを実行するサーバーの利用料金です。
小規模利用であれば無料枠で運用できるかと思います。
VOICEVOXを使用する場合はもう一つ追加でサーバを使用します。
CPU:毎月最初の 180,000 vCPU 秒は無料
メモリ:毎月最初の 360,000 GiB 秒は無料
リクエスト:毎月 200 万リクエストは無料
その他の料金は🔗ここを参照

FireStore
会話ログを保存するためのデータベースです。
小規模利用であれば無料枠で運用できるかと思います。
ドキュメントの読み取り:50,000回/日まで無料
ドキュメントの書き込み:20,000回/日まで無料
ドキュメントの削除:20,000回/日まで無料
保存データ:1GBまで無料
その他の料金は🔗ここを参照

Geocoding API
緯度経度から住所を割り出すためのAPIです。
まず使い切ることのできない豊富な無料枠があります。
$200/月まで無料
その他の料金は🔗ここを参照

Custom Search
Web検索を行うためのAPIです。
検索機能を裏で回している関係上、LineBotForGPTより燃費高めです。
100回/日までは無料。個人で使う場合は超えないと思われますが実運用すると100回は軽く突破するかも。100を超えると1000クエリ5$/日
その他の料金は🔗ここを参照

Google Calender
Googleカレンダーを参照するためのAPIです。
このAPIは無料で利用できます。

Cloud Vision
画像認識を行うためのAPIです。
価格計算がユニットという単位で計算されるので計算しにくいです。回数ではないです。小規模利用であれば無料枠で運用できるかと思います。
超えたとしても大した金額ではないです。
1,000 ユニット/月までは無料
その他の料金は🔗ここを参照

Cloud Text-to-Speech
テキストを音声に変換するAPIです。
小規模利用であれば無料枠で運用できるかと思います。
0〜400 万文字/月までは無料
その他の料金は🔗ここを参照

Cloud Strage
文字を音声に変換したファイルと画像生成ファイルを置いておく場所です。
料金計算がとにかく複雑ですがタダではないのでなるべく安く運用したい人は音声出力機能をオフにしてください。
料金は🔗ここを参照

Artifact Registry
デプロイ時に利用される領域です。デプロイ履歴を放置しておくと蓄積されます。
少量だと問題ない程度の料金ですがため込むと高額請求されますのでこまめに削除してください。
その他の料金は🔗ここを参照

LINE
Botから自発的(Push)に送信しなければどれだけやり取りしても無料枠内で運用できる良心価格です。
料金は🔗ここを参照

設定

以下に設定手順を記載します。

ここから先は

11,930字 / 144画像

¥ 2,000

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