ChatGPT API で LINE のチャットボットをノーコードで作り、ファインチューニング
Chat GPTの登場で様々な可能性が広がっている中で、
「企業や店舗のLINE公式でAIチャットボットを使いたい」
「ノーコードツールmakeを使っているが、LINEとの連携方法を知りたい」
「LINE登録して特定のメッセージをくれたら自動でクーポンを配布したい」
「LINEとChat GPTを連携して自動チャットBotの作成方法を知りたい」
このような悩みを抱えていませんか?
記事内容として下記のことがわかります。
・Chat GPTを利用するためのAPI設定方法がわかる
・LINEのAPIとChat GPTのAPIとの連携方法がわかる
・API同士を連携するノーコードツール「make」でシナリオ作成方法がわかる
・アプリケーションに合わせたカスタマイズ方法がわかる
この記事では、下記のデータを参考に解説します。
・当社エンジニア会社の監修を得ている
・Chat GPT公式のドキュメント
Chat GPTの登場によりビジネス利用の可能性は広がります。
結論、Chat GPTを使ったチャットボットは当たり前に活用されるでしょう。この記事を読んで実践することで、LINE APIとChat GPT APIを連携したチャットボットを作成できます。AI技術に対応して、今後もビジネス活用に役立てたい方は最後まで読んでください。
ノーコードツール「make」の仕組み
今回紹介する「make」は、様々なアプリケーションと連携できるノーコードツールです。ノーコードのため、誰でも簡単に使えます。
makeでのAPI連携方法には、2種類あります。
1.make内で完結するツール
2.設定を連携元で準備するツール
今回紹介するLINEは、後者に当たるため、「make」で連携する前にLINEやChat GPTで下準備が必要です。しかし、これから手順を解説しますので安心して読み進めてください。
OpenAI で API キーを発行
まず、Chat GPTの準備としてAPIの発行を行います。
Chat GPTのアカウントを作成していない方は、(アカウント作成手順)を参考にしてください。
手順①
OpenAIに登録してログイン後、右上のアカウントロゴを選択して「View API keys」を選択します。
手順②
左ペインの「API Keys」が選択されていることを確認し、中央の「+ Create new secret key」を選択します。
手順③
APIキーが生成されるため、右の緑アイコンをクリックすると取得してください。
以上がChat GPTでのAPI発行手順です。APIキーの保管は厳重にし、第三者に漏洩しないよう注意してください。
LINE Messaging API の設定
次に、LINEの準備として「LINE Messaging API」の設定を行います。
「LINE Messaging API」は、LINEトーク画面でユーザからのメッセージやコンテンツを送受信するために必要なAPIです。
・「LINE Messaging API」を利用するには、LINE DevelopersにてLINEのアカウントまたはビジネスアカウントを新規で作成する必要がある
※既にアカウントを持っている方は、②チャネル作成から実施してください
① LINEビジネスアカウント作成
1. アカウント作成は(サイト)から作成できます。
2. 初めてログインした場合は、利用規約とプライバシーポリシーを確認して、「同意する」ボタンをクリックします。
以上で、LINE Developersの登録が完了しました。
次に、プロバイダー・チャネルを作成します。チャネルとは、アプリやサービスとLINEのプラットフォームを連携するための仲介役です。
② プロバイダー作成とチャネル作成
作成方法は、こちら(プロバイダーとチャネル作成手順)を参照してください。
※LINE Developersコンソールにアクセスし、プロバイダーとチャネルを作成します。プロバイダーは、チャネルを管理する組織や個人の単位です。チャネルは、LINE Messaging APIを利用するアプリケーションやサービスの単位です。
③ LINE Messaging API設定
1. チャネル作成後、中央の「Messaging API設定」を選択します。
2. 表示されているQRコードを、自身のスマートフォンで読み取ります。
3. 友達追加後、1で表示している「Messaging API」設定画面にて、「LINE公式アカウント機能」から「応答メッセージ」の編集を選択してくだい。
4. 「応答設定」をオフにし、「Webhook」をオンにします。「応答設定」をオフにすることで、作成したLineボットの自動応答をしないようにできます。
※今回は、ノーコードツール「make」を使用した方法となり、Google App Scriptを利用したい方は、(Google App Script利用手順)を参照ください。
ノーコードツール「make」でシナリオを作成
それでは、下準備が完了したため「make」でのシナリオ作成手順を解説します。
「make」を利用するには、アカウント作成が必要です。
makeアカウント作成
1. サイトにアクセス
2.「Get started free」を選択し、下記情報を入力し最後にチェックします。
・メールアドレス
・パスワード
・ユーザー名
・国
※GoogleやFacebookなどで登録も可能です
Webhook (エンドポイント)の作成
Webhook (エンドポイント)の作成は、外部のサービスやアプリケーションと連携するための重要な機能です。
1. makeアカウント作成後、真ん中の「+」から「Watch Events」を選択します。
2. Webhookの「Add」を選択し、Webhook名に任意の名前を入力してください。
3. Connectionを選択すると、入力欄が表示されます。
4.LINE Messaging API設定の際に開いた設定画面から、最下部の「チャネルアクセストークン」-「発行」を選択します。
5.make画面に戻り、Connectionの入力欄に貼り付けて「save」をクリックし、もう一度「save」をクリックしてください。
6.Webhook名の下にURLがあるため、「Copy address to clipboard」を選択して「OK」をクリックします。
7.makeシナリオ画面の下部にある「Save」をクリックします。
Messaging API に Webhook を設定
作成したWebhookは、LINEからのメッセージ受け取り窓口です。そのため、先ほど6でコピーしたアドレスを使用してください。
1. LINE Messaging API画面を表示し、「Messaging API設定」から「Webhook設定」-「Webhook URL」の入力欄にWebhookアドレスを貼り付けます。
2. 入力後、「Webhookの利用」をオンにしましょう。
3.最後に、「Webhook URL」下の「検証」をクリックし成功することを確認します。
以上で、LINEからWebhookにメッセージを受信できるようになりました。
LINE メッセージの受信チェック
念のため、実際に友達追加したLINEからメッセージを送って確認しましょう。
1. makeのコンソール画面に戻り、「Run once」ボタンをクリックします。
2.「Wait for new data」を選択します。
3. 友達追加したLINEアカウントから、作成したチャットボットアカウントにメッセージを送信してください。
4. 受信が成功すると、make画面に「1」と表示されメッセージを受信できたことを確認できます。
ChatGPT 用のモジュールを追加
次に、チャットボットに届いたメッセージをChat GPTに送って返答してもらうモジュールを追加しましょう。
1. make画面から、LINEモジュールの右側「+」をクリックします。
2. モジュールの検索欄に、「HTTP」と入力し「HTTP」モジュールを選択します。
3. 「Make a request」を選択し、下記の通り入力してください。
・URL:https://api.openai.com/v1/chat/completions
・Method:POST
4. HerdersのItem1とItem2には、下記の通り入力します。
●Item1
・Name:Content-type
・Value: application/json
5. 「Body type」「Content type」「Request content」「Parse response」は、下記を入力します。
Body type | Raw | ||
Content type | Json(application/json) | ||
Request content | ・messages:role:userのcontentは、LINEから受け取るメッセージを渡す(Watch Eventsのメッセージ受信時の任意のパラメータを指定) ・role:system:Chat GPTにLINEのチャットボットの振る舞いを指定します 下記に、サンプルを貼ります。{ “model”: “gpt-3.5-turbo”, “messages”: [{“role”: “system”, “あなたはSEOブロガーです。常に分かりやすく丁寧に返信してください。ブログの投稿は毎日。受信メッセージに `アフィリエイト` が含まれる場合は返信内容に「アフィリエイトは稼ぐ方法です。」を文末または文頭に含めてください。”}, {“role”: “user”, “content”: “{{1.events[].message.text}}”}]} 公式ドキュメントにサンプルがあります。 | ||
Parse response | Yes |
LINE から ChatGPT へメッセージ送信確認
Chat GPT用のモジュール追加後、一度LINEからChat GPTにメッセージメッセージが送信されるかを確認しましょう。
1. makeのコンソール画面に戻り、「Run once」ボタンをクリックします。
2. 「Wait for new data」をクリックします。
3. LINEからメッセージを送信してください。
4. 送受信完了すると、make画面のLINEモジュールとChat GPTモジュールの右上に「1」と表示されます。
5. Chat GPTモジュールのAPIレスポンスを確認し、Data > choices > message > content で返信内容を確認可能です。
ChatGPT からの返答を LINE に返信する
最後に、Chat GPTからの返答内容を取り出すモジュールを追加していきましょう。
1.Chat GPT用モジュールの右側にある「+」をクリックします。
2. 「Send a Reply Message」を選択後、Connectionは、Webhook名を選びます。Reply Tokenは「Events[] > Token」から確認しましょう。
4. Messagesを展開し、Item1の「Type」と「Text」を下記の通り入力してください。
・Type:Text
・Text:Chat GPTからのメッセージがあるパラメータを指定(Data > choices > message > content)
設定後、メッセージの送受信を確認してみましょう。
5. make画面の「Scheduling」をオンにし、常にLINEメッセージを確認できるようにします。
6. 「アフィリエイト」と送信すると、「アフィリエイトは稼ぐ方法です。」が含まれていることを確認してください。
ファインチューニング(微調整)
Chat GPTは、オープンドメインの対話システムを構築するための強力な言語モデルです。しかし、一般的な言語モデルとして学習されたChat GPTは、特定のタスクに適応する能力に欠ける場合があります。そのため、ファインチューニングという手法を用いて、Chat GPTを目的に応じてカスタマイズ可能です。
下記について、解説します。
・ファインチューニングのメリット
・インストール
・トレーニングデータの準備
・微調整されたモデルを作成する
ドキュメントが下記を発表しました。
Chat GPT公式2023 年 7 月 6 日に、ada、babbage、curie、davinci モデルの廃止を発表しました。微調整バージョンを含むこれらのモデルは、2024 年 1 月 4 日にオフになります。私たちは、アップグレードされたベース GPT-3 モデル、GPT-3.5 Turbo および GPT-4 の微調整を可能にすることに積極的に取り組んでいます。待つことをお勧めします。まもなく非推奨になるモデルに基づいて微調整するのではなく、それらの新しいオプションを利用できるようにするためです。
※公式ドキュメント引用
上記の発表で、GPT3.0で使用するモデルは廃止となります。今後は、GPT3.5 TurboまたはGPT-4でのファインチューニングを行うことになるでしょう。
参考:OpenAI
ファインチューニングのメリット
ファインチューニングは、学習済みのChat GPTをさらに特定のタスクに適応させるための再学習させる手法です。特定の分野で、適切な回答を得られます。
ファインチューニングのメリットは、下記の通りです。
・データ不足の問題解決:事前学習済みのモデルを利用することで、学習に必要なデータ量を減らせます。
・自然言語処理への応用:ChatGPTをファインチューニングすることで、文章生成や自動要約、感情分析などのタスクに対応可能です。
・社内文書への特化:ChatGPTに社内文書を学習させることで、非公開情報やドメイン知識に関する会話能力を与えられます。
以上のメリットがあり、ファインチューニングにより特定のタスクに適切に回答することが可能です。
インストール
Chat GPTのファインチューニングを利用するために、インストールを行います。
インストールには、CLIコマンドで実行します。
インストールするには、下記のコマンドで実行可能です。
pip install –upgrade openai
インストール後に、環境変数にAPIキーを設定します。OPENAPI_API_KEYには、Chat GPTのAPIキーが必要です。
export OPEN_API_KEY=”<OPENAPI_API_KEY>
以上が、Chat GPTのファインチューニングをインストールする方法になります。
トレーニングデータの準備
トレーニングデータは、Chat GPTに伝えたいことを学習させ、JSON形式である必要があります。
複数行で記述する方法になり、具体的には下記のようなフォーマットでJSON形式を準備します。
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
※promptは質問文で、completionは回答文です。
上記のように、複数行用意することで学習用ファイルを準備できます。
微調整されたモデルを作成する
微調整モデルの作成について解説しますが、先ほどのトレーニングデータが準備された前提になります。
下記コマンドで、微調整ジョブが作成可能です。
openai api fine_tunes.create -t -m <BASE_MODEL>
BASE_MODELは、 (ada、babbage、curie、または davinci)のモデル名になります。
先述しましたが、ada、babbage、curie、davinci モデルの廃止が発表されているため、コマンドは変わる可能性があります。
レリパの GPT-4 微調整サービス
レリパはマーケティングに統合したチャットボットをリリースしました。GPT-4モデルのAPIを活用していることと貴社のデータを合わせて、レリパのチャットボットは事前学習できます。それで、貴社の情報によってカスタマイズした答えを提供できます。
GPT-4 は、基本的にインターネット全体で事前トレーニングされており、ChatGPT で見たように、汎用チャットボットに最適です。 そうは言っても、事実に基づく回答を必要とするドメイン固有のタスクの場合、GPT-4 の基本モデルは失敗することがよくあります。たとえば、ChatGPTは貴社の製品の特徴についてお客様に伝えていただけたいなら、普通の情報だけ提供できます。
以上のとおりに、GPT-4 モデルは、回答が段落内に含まれている場合は質問に適切に回答しますが、トレーニングされたデータセットに回答が含まれていない場合、基本モデルはとにかく回答するために最善を尽くす傾向があり、多くの場合、回答が事実ではなくなってしまいます。
基本モデル LLM の重みの更新を含む「微調整」の代わりに、事実に基づく レリパのQ&A ボットの場合、Embeddings API を使用して必要な結果を達成できることがよくあります。
Embeddings API を使用して、関連情報を含む別のドキュメントを提供し、ユーザーのクエリに類似するドキュメントのセクションを見つけて、この情報を使用して動的プロンプトを作成し、質問に回答します。
ほんの数例のプロンプトが表示されると、多くの場合、実行しようとしているタスクを直感的に理解し、もっともらしい完了を生成できます。
質問応答ボットを作成するには、大まかに次のことを行う必要があります。
- トレーニング データセットを準備する
- 当社のチャットボットのサイトに準備したデータセットをアップロードする。
- 微調整したボットを試す
また、微調整または Embeddings API の使用に興味がある場合は、新しいサービスの提供を発表できることを嬉しく思います。 GPT-4 微調整のチャットボットをリリースしました。
まとめ
今回は、LINEとChat GPTをノーコードツールを利用して連携する方法を解説しました。
LINEを活用して自動チャットボットを作成できると、人を介さずやり取りが可能です。
本記事の大事なポイントを下記にまとめます。
・Chat GPTはOpenAIが開発した人工知能チャットボットで、APIを利用することで様々なアプリやサービスに組み込むことができる。
・LINEとChat GPTを連携させるには、LINE DevelopersでMessaging APIの設定を行い、チャネルアクセストークンを取得する必要がある。
・ノーコードツール「make」では、WebhookやData Storesなどのモジュールを使って、LINEから受け取ったメッセージをChat GPTに送信し、返答をLINEに返すシナリオを作成することができる。
・Chat GPTに特定の役割や文脈を与えるためには、プロンプトという技術を使って、APIに渡すメッセージの形式を調整する必要がある。
本手順で自動チャットボットを構築はできますが、初めてで不安な方はぜひレリパにご相談ください。