「AIチャットくん」というLINEの友達追加のみでChatGPTがすぐに使えるというサービスがある。ChatGPTで、半日で作ったという、このサービス。テレ東Bizの番組で、紹介されていたので、実際に、そんなに簡単に作れるのか試してみた。
テレ東Biz「半日で実装→3日で20万登録者」ChatGPTを使ってアプリを爆速で作る方法【橋本幸治の理系通信】
凄いのはChatGPTが提供するAPIであるのは言うまでもない。
結論からいうと、それっぽいものは確かに作れる(ローカル環境で疑似的に)が、それなりに技術的な事を理解でき、プログラミング経験がないとまず無理。インベーダーゲームを作るのなら、初心者でもできるが、こちらは厳しい。ChatGPTを使っての開発方法の参考にはなります。
スポンサーリンク
目次
- 1 設定、内容、命令を書き、概要をチャットGPTに聞いてみる。
- 2 回答が切れてしまったら、「詳細な手順の6番からが切れています」と聞きなおそう
- 3 Python(パイソン)だけでも作れますか?
- 4 Pythonで、LINE botを作るやり方を詳しく教えてください。Webフレームワークもお勧めのをお願いします。
- 5 「このコードでは、LINE botを作成しています。Webhookを受け取り、」で、切れてしまっています
- 6 Flaskとは何ですか? フラスク、フラスコ
- 7 LINE Developersにアカウントを作る具体的方法を教えてください。また、料金はかかりますか?
- 8 2. Flaskをコマンドライン上から、インストール
- 9 3. Flaskアプリケーションを作成する
- 10 LINE Messaging API SDK for Pythonをインストールする
- 11 OpenAI(ChatGPT)のAPIを使うところが入っていない。
- 12 聞き直してみた
- 13 実際のコードを教えて
- 14 Pythonで、import openaiするには、pip install openaiをしよう。
- 15 上記の例では、出てこないが、環境変数のところで、若干つまずく
- 16 Webhookとは
- 17 Messaging APIの仕組み
- 18 LINEのカメラで、LINE DevelopersのMessaging API設定のQRコードを読み込み。あるいは、ベーシックIDからLINEに友達登録
- 19 OpenAIのページから、APIキーをゲットするには?
- 20 ChatGPTに、復習として教え直すことがコツらしい。テクニックのようだが、今回使わず
- 21 なるほど、openai.Completion.create()で使われているが引数になくても、OPENAI_API_KEYは、つかわれているのか
- 22 ngrok エングロック ローカルホストと、実際の世界公開のサーバーアドレスの紐づけ
設定、内容、命令を書き、概要をチャットGPTに聞いてみる。
話によると、以下のような感じで、ChatGPTに指示してあげるといいそうだ。
この内容を書ける時点で、初心者ではない。というツッコミには、〇〇をやるにはどういう技術が必要か?を事前に繰り返し聞くとのこと。
--------------------------------
#設定 あなたはLINE botを作る会社のリードエンジニアです。
#内容
・LINEのMessagingAPIを使って、GPT-3とやりとりするLINE botを作成する
・サーバーは、ローカル環境で動かす
・開発言語は、TypeScript
・フレームワークは、Expressを利用してください
・ngrokを利用
#命令
プログラムを実装し、実際にローカル環境で動かすまでに必要なステップを簡単に教えてください。
--------------------------------
回答が切れてしまったら、「詳細な手順の6番からが切れています」と聞きなおそう
あれ、切れている。「詳細な手順の6番からが切れています」と聞くと、(最後の文字を1文字を打ち直すだけでもいけるらしい。)
登場人物と、やることのステップがでてきた。
スポンサーリンク
Python(パイソン)だけでも作れますか?
開発言語を、Pythonに修正してみた。そして、聞き直し。Webフレームワークを何を使うかも聞いてみよう。そもそも、それって何?
Pythonで、LINE botを作るやり方を詳しく教えてください。Webフレームワークもお勧めのをお願いします。
「このコードでは、LINE botを作成しています。Webhookを受け取り、」で、切れてしまっています
スポンサーリンク
Flaskとは何ですか? フラスク、フラスコ
ふーん、そうなんだねー。
LINE Developersにアカウントを作る具体的方法を教えてください。また、料金はかかりますか?
大体あっていた。
3.のプロジェクトを作成はしないで出来た。
最近(といっても、いつからが最近かがわからないが)、ChatGPTが学習した際のLINEデベロッパーサイトの作りと、現時点での作りに差があれば、そこは反映されていないことを理解しつつ、読み進めていく必要がありそうだ。
4.LINEチャネルを作成する
では、説明よりも、もっと多くの設定項目があった。まあ、概要の手順を教えてくれたので良しとしよう。
「発行ボタン」で、発行できた。
2. Flaskをコマンドライン上から、インストール
そのまま
3. Flaskアプリケーションを作成する
上記を、app.py ファイルとして保存して、python app.py で実行
このコードでは、Flaskを使用してHello, World!を表示するWebアプリケーションを作成しています。
ブラウザ上で、http://127.0.0.1:5000/ で確認できた。(上記のHello World)
スポンサーリンク
LINE Messaging API SDK for Pythonをインストールする
出来た。
OpenAI(ChatGPT)のAPIを使うところが入っていない。
聞き直してみた
-----------------------------------------------------------------
#設定 あなたはLINE botを作る会社のリードエンジニアです。
#内容
・LINEのMessagingAPIを使って、GPT-3とやりとりするLINE botを作成する
・サーバーは、ローカル環境で動かす
・開発言語は、Python
・フレームワークは、Flaskを利用してください
・ngrokを利用
#命令
プログラムを実装し、実際にローカル環境で動かすまでに必要なステップを簡単に教えてください。
------------------------------------------------------------------
実際のコードを教えて
このコードでは、Flaskを使用してWebアプリケーションを作成し、LINE botのエンドポイントを定義しています。LINE botからのメッセージを受け取った時に、GPT-3 APIを使用して応答を生成し、LINE botに応答を送信する処理を実装しています。また、LINE botのアクセストークンやGPT-3 APIのアクセストークンなど、必要な設定情報を適切に設定する必要があります。
↑のような感じ。(後で、再現したので、正確ではない。)
上記を、aichat.py ファイルとして保存して、python aichat.py で実行
Pythonで、import openaiするには、pip install openaiをしよう。
上記の例では、出てこないが、環境変数のところで、若干つまずく
ここ、割愛。結果のみ共有すると。 ↓のように os.environ.get を使うことに。
line_bot_api = LineBotApi(os.environ.get("YOUR_CHANNEL_ACCESS_TOKEN"))
handler = WebhookHandler(os.environ.get("YOUR_CHANNEL_SECRET"))
openai.api_key = os.environ.get("YOUR_OPENAI_API_KEY")
↑の3か所に適切なキーを発行して、入力。 YOUR_CHANNEL_ACCESS_TOKEN、YOUR_CHANNEL_SECRET、YOUR_OPENAI_API_KEYは、環境変数で持たせた。
OpenAIのAPIキーは、後述
Webhookとは
ユーザー
↓ (メッセージ)
LINE BOT
(LINEプラットフォームはWebhookを使用して、そのメッセージを指定されたエンドポイント(URL)に送信します。このエンドポイントは、LINE BOTアプリケーションのサーバーである必要があります。)
LINE BOTアプリケーションのサーバーは、Webhookから送信されたデータを受け取り、適切なレスポンスを返します。例えば、ユーザーがメッセージを送信した場合、サーバーはメッセージに対する応答を作成し、LINEプラットフォームに送信します。LINEプラットフォームは、その応答をユーザーに送信します。
ラインデベロッパーのところ。
Webhook URLに対して、LINEからPOSTリクエストが送信されることになります。
Messaging APIリファレンス | LINE Developers
Messaging APIの仕組み
友だち追加やメッセージの送信のようなイベントが発生すると、LINEプラットフォームからWebhook URL(ボットサーバー)にHTTPS POSTリクエストが送信されます。
Messaging APIの仕組み
Messaging APIを使って、ボットサーバーとLINEプラットフォームの間でデータを交換できます。リクエストは、JSON形式でHTTPSを使って送信されます。
- ユーザーが、LINE公式アカウントにメッセージを送信します。
- LINEプラットフォームからボットサーバーのWebhook URLに、Webhookイベントが送信されます。
- Webhookイベントに応じて、ボットサーバーからユーザーにLINEプラットフォームを介して応答します。
LINEのカメラで、LINE DevelopersのMessaging API設定のQRコードを読み込み。あるいは、ベーシックIDからLINEに友達登録
OpenAIのページから、APIキーをゲットするには?
ChatGPTに、復習として教え直すことがコツらしい。テクニックのようだが、今回使わず
最初の設定ファイルを ステップを記入(ChatGPTが教えてくれたもの)
------------------------------------------------------------------
#設定 あなたはLINE botを作る会社のリードエンジニアです。
#内容
・LINEのMessagingAPI SDK for Pythonを使って、GPT-3とやりとりするLINE botを作成する
・サーバーは、ローカル環境で動かす
・開発言語は、Python
・フレームワークは、Flaskを利用してください
#ステップ
- LINE Developersにアカウントを作成し、LINE botを作成する
- LINE Developersにアカウントを作成し、Messaging APIチャンネルを作成します。
- Messaging APIチャンネルでLINE botを作成し、アクセストークンを取得します。
- Flaskをインストールする
- Flaskをインストールするために、ターミナルで以下のコマンドを実行します。
- Flaskアプリケーションを作成する
.....................................
割愛
.....................................
#命令
プログラムを実装し、実際にローカル環境で動かすまでに必要なステップを簡単に教えてください。
------------------------------------------------------------------
ChatGPTが、教えてくれたステップを反復して教え直すことをするのがコツとのこと。たまに、ステップを忘れてしまうようだ
なるほど、openai.Completion.create()で使われているが引数になくても、OPENAI_API_KEYは、つかわれているのか
ngrok エングロック ローカルホストと、実際の世界公開のサーバーアドレスの紐づけ
最近は、面倒になったようで、サインイン、やら、↓のようなこともやるように。
ngrok config add-authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(Your Authtoken) をやる必要あり。
ngrok http 5000 で、起動しよう。
ここまで読んでくれた人は、できる人なので大丈夫でしょう。セキュリティー考えながら試すでお願いします。
お疲れ様でした。
LINE上で入力した質問文に対して、OpenAIのAPIが返した値が返ってくるようになるまでは確認。
ただ、OpenAIのAPIの返してくれる値が、どういった条件(文字数等)なのか、調べないと。ChatGPTを素で使っているようにはうまくいかない。もっと勉強しないと。
出典:ラインデベロッパー、テレ東Biz