ちょっと話題の記事

GPT-3 を LINE チャットボットに組み込んでみた

2022.12.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

当初公開したタイトルに誤りがありました。本ブログはChatGPTではなく2022年初頭にトレーニングを終えたGPT-3.5シリーズのモデルをAPIとして実行したものになります。ChatGPTのAPIがAPIで実行できるようになり次第ブログを更新したいと思います。※ChatGPTはGPT-3.5シリーズのモデルをベースに微調整を加えたもの

各所で盛り上がっている ChatGPT を 使い慣れた LINE から使えるようにしてみました。 簡単なやり取りであればコードを書く必要すらないのでノーコードツール(Make)を使って実現してみます。

今回の成果物はこちら(15 分程度で作成することができます)

ChatGPT とは

作り方の説明に入る前にまず簡単に ChatGPT とは何かについてChatGPTに聞いてみます。

だそうです。

少しだけ補足すると ChatGPT はOpenAIが開発した言語モデルで、できることとしては上の画像の通り、ユーザーの質問に対して精度の高い回答をしてくれるものになります。単純な質問に対する回答だけでなく、コード生成なども可能です。(プレビュー期間中は無料で利用することができます)

参考:ChatGPT 使い方総まとめ

ただ、いづれの回答に関しても必ず正しい答えが返ってくるわけではないので、その前提で利用してみるのが良いかと思います。

やってみた

では早速やっていきます。

OpenAI アカウント設定

まずは OpenAI のアカウントを作成します。アカウント作成後、API Keys 管理画面から API Key を発行します。この API Key を使ってコマンドで質問をしてみましょう。

$ curl https://api.openai.com/v1/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {your api key}' \
  -d '{
  "model": "text-davinci-003",
  "prompt": "クラスメソッド株式会社について教えてください",
  "max_tokens": 4000
  }'

  {
  "id": "cmpl-6JcnCbCLEN9ooMHDMstz9UpZCvYcb",
  "object": "text_completion",
  "created": 1670135370,
  "model": "text-davinci-003",
  "choices": [
    {
      "text": "。\n\nクラスメソッド株式会社は、2000年8月に設立された日本のクリエイティブチームです。クラスメソッドは、ソフトウェア開発やデザインサービスなど、ソフトウェアを使ったソリューション提供を専門としています。クラスメソッドは、Webサービスやモバイルアプリケーションなど、アプリを開発するだけでなく、Webデザインやグラフィックデザイン、データ分析など、フロントエンドからバックエンドまであらゆる分野においてソリューションを提供しています。クラスメソッドは日本国内だけでなく、アメリカ、イギリス、オーストラリアなど、世界中にドライビングフォースを持ちます。",
      "index": 0,
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 29,
    "completion_tokens": 316,
    "total_tokens": 345
  }
}

設立年や海外拠点などやや間違えはありますが雰囲気はあってます。各パラメーターの意味はapi referenceにて確認することができます。

本ブログの趣旨ではないですが、OpenAI のアカウントができたので、この時点でChatGPT のコンソールより、ChatGPT を試すことができるようになります。

ノーコードツール(Make)アカウント設定

次に LINE 公式アカウントの作成および Make への SignUp を実施します。以下の動画を参考にやまびこ LINE bot(発言した内容がそのまま返ってくる)を作るところまで実施してみてください。

ノーコード界隈で話題の「Make(旧Integromat)」でLINE Botを作ろう

ノーコードツールと ChatGPT の統合

上記のやまびこアプリを作成した時点で以下のようなモジュールが配置されているかと思います。

左側のが LINE 公式アカウントからの Webhook を受け付けるモジュールで、右側がユーザーに対してメッセージを返却するモジュールです。今回はユーザーの入力に対して ChatGPT の API を実行したいので、この間に外部 API を実行するためHTTPモジュールを以下のように配置します。

Request content にはユーザーからのリクエスト内容を含めます。

{
  "model": "text-davinci-003",
  "prompt": "{{1.events[].message.text}}",
  "max_tokens": 4000
}

次にユーザーの返却するためのリプライメッセージのモジュールも以下のように編集します。これで ChatGPT からのレスポンスがユーザーに返却されるようになります。 ※Data.choices[]: textが指定できない場合は、 HTTP モジュールの Parse responseyes にした状態で、 Run once で実行してみてください。

ChatGPT を組み込んだ LINE チャットボットを実行する

では最後にこのチャットボットを実行してみましょう。MakeのシナリオのRun onceから実行する、もしくはシナリオ自体を有効化してみましょう。 すると冒頭で紹介したようなチャットボットが確認でき上がっているかと思います。

終わりに

以上、ChatGPTとノーコードツール(Make)の紹介でした。自分だけの相談役がこんなにも簡単にできちゃった。みなさんも試してみてください。