ChatGPT相当モデルを使ったチャットボットを簡単に作れるツールを開発した話
概要
こんにちは、maKunugiです。
ChatGPTが世間を席巻しています。会話AIの領域には今まで様々なブレイクスルーがありましたが、遂に実用化の「キャズム」を超えてきた感があります。そして、ChatGPTのAPIの公開が直近と言われていることや、GPT-3.5を初めとする、誰でも利用可能な大規模言語モデルが次々と登場していることから、これらを活用したサービスもこれから数多く生み出されていくはずです。
今回紹介したいのは、ChatGPT相当の言語モデルを利用したチャットボットが作れる、「ノーコードツール」を作った話です。ChatGPT相当の言語モデルとは、GPT-3.5 (text-davinci-003)というChatGPTのベースになっているといわれるOpenAIのモデルです。この言語モデルをセリフのカスタマイズしながら、簡単にチャットボットを作成できるツールの開発に挑戦しました。Web上で動作するチャットボットやLINE、Slack、API経由で会話ができるチャットボットを手軽に構築できます。興味のある方はぜひお読みいただけると幸いです。
作ったもの
「ツール」と言いましたが、厳密には私が運用する会話AI構築サービスに追加した、新しい機能になります。
私は2年前から「会話型AI構築サービス mebo(ミーボ)」を開発・運営しています。
meboはGPTベースのAIによる応答と、手動で登録するセリフやシナリオを織り交ぜ、様々な用途に使える会話Aiを構築できるサービスです。今回はこのmeboに、GPT-3.5を利用して会話を構築することができる機能を設けました。
(GPT-3.5を利用した会話例)
(従来のmeboの会話)
なぜ作ったのか
今回meboにGPT-3.5連携をさせた理由は主に4つです。
- ノーコードで簡単に高性能なチャットボットを構築するため
- GPT-3.5のセリフを手軽にカスタマイズして使いたいから
- 様々なプラットフォーム上で簡単に動かしたいから
- キャラクター性を持たせたいから
1. ノーコードで簡単に高性能なチャットボットを構築するため
meboはなるべくプログラミング不要で会話AIを作成することを目指したサービスです。meboの大半の機能はコーディングなしで利用できます。手軽にGPT-3.5を利用した会話AIが作成できます。
2. GPT-3.5のセリフを手軽にカスタマイズして使いたいから
ChatGPTを利用していて誰もが思うのが、セリフをカスタマイズして使いたいというニーズです。meboは手動でセリフやシナリオを登録することが可能です。meboは、会話AIの作成者が登録したセリフをGPT-3.5に加味させるため、手動で登録したセリフやシナリオとAIの応答を織り交ぜることが可能です。技術的な点は後述しますが、これはmeboが「プロンプト」を動的に変更する機能を備えていることによって、実現をしています。
3. 様々なプラットフォーム上で簡単に動かしたいから
meboはデフォルトで3種類のプラットフォーム上で動作させることができます。
- Web上のチャット画面
- LINE
- Slack
また、API経由で会話もできるため、meboのAPIと接続させることで様々なプロダクトに会話機能を搭載することが可能です。
4. キャラクター性を持たせたいから
meboには、会話AIが行う会話の例や自己紹介、一人称、二人称の呼び方、口調等を細かく設定できます。それにより、キャラクターを持たせた会話AIを構築することが可能です。GPT-3.5を連携させることにより、親しみ深く、尚且つ知的で実用的なAIが作成できます。
使い方
それでは、GPT-3.5を利用したチャットボットの構築方法を見ていきましょう!
1. APIキーの取得
まずは、OpenAI APIの公式サイトに行き、APIキーを取得しましょう。
初めての方は、上記からSign Upを行い、登録を進めてください。
ログインができOpenAIのサービスを利用できる準備が整ったら、右上のメニューから「View API Keys」へ移動します。
「Create new secret key」で新規APIキーが発行できます。後ほど利用するので控えておいてください。
2. meboへログイン
次にmeboにログインをしていきます。下記のサイトからSign Inを行ってください。
3. エージェントの新規作成
ログインができたら、エージェント(AIの単位)を新規作成していきます。
新規作成方法は2種類あります。どちらでもOKなのですが、今回は「Chara.AI Generator」を利用していきましょう。ちなみに、この機能は前回こちらの記事で紹介した新機能です。
エージェント作成用の10個の質問に答えていき、エージェントの作成を完了させましょう。
作成が完了すると、ダッシュボード画面が表示されます。
4. エージェントの設定
次に左メニューからエージェントの設定ページへ移動します。
ページ中部にある、「答えられなかった場合の応答」の下にある、「AIによって自動で応答を返す」にチェックをつけましょう。
「AIによる応答の設定」という項目が出現するので、AIのモデルを「GPT-3(text-davinci-003)」に変更します。
モデルを選択すると、APIキーの登録が可能になります。先ほど取得したAPIキーを登録しましょう。
次に会話例を記入します。AIの特徴をよく表した会話の例を350文字以内で入力しましょう。
入力のフォーマットは下記のとおりです。
user: ユーザーの発言
ai: AIの応答
user: ユーザーの発言
ai: AIの応答
その他、複数の項目が設定可能ですが、適宜自由に設定を行い、ページ右下の「保存」を押してください。
ダッシュボードに戻ると、ページ右に「会話をテスト」というボタンがあるので押してみましょう。
チャットボットと会話をすることができました!🎉
ここまでで、GPT-3.5を搭載したAIと会話ができるようになりました。
5. セリフを登録してみる
トレーニング一覧ページから、様々な方法でAIにセリフを教えることができます。
試しにトピックの追加から、トピックと何かしらの発話ペアを登録してみましょう。
最後に「公開設定」ページに移動し、「トレーニングを反映させる」をクリックします。
再び会話のテストを行ってみましょう。
教えたセリフを応答してくれました!
6. AIを公開する
「公開設定」ページでは、AIを公開することができます。公開のスコープは2種類です。
一般公開: Webのチャット画面のURLをシェアして、誰でも会話ができます。
限定公開: チャット画面の利用は自分のみですが、APIやSlack、LINEで動作するAIに利用できます。
お好みの公開方法で公開しましょう。
公開を行うと、SlackやLINE、APIとの連携が可能になります。
※ プレビュー状態では、外部サービスとの連携はできません。
各プラットフォームとの連携の仕方は、公開設定ページに設置してあるリンクからご確認ください。
(Slackと連携した様子)
注意事項
以下の注意事項にご留意の上、ご利用ください。
1. OpenAIのAPIキーの課金に注意!
OpenAIのAPIは従量課金です。会話を行った際に処理された「tokens」という文字単位で課金がなされます。
下記ページから現在の利用状況がわかります。予期せぬ請求がないよう、慎重にご利用ください。
meboのエージェント設定ページには、一度のAIの発話でやり取りするtokensの数の目安が記載されているので、そちらもご参考ください。
また、meboもサブスクリプション課金のサービスになっております。デフォルトのトライアルプランは月当たり1000回の会話まで無料で行えます。それ以上の会話を行う場合は、有料プランの購入が必要になります。
2. 過激な表現や性的な表現への利用は控えましょう!
OpenAIの規約では、過激な表現や政治的表現、暴力的な表現などを行うAIの作成を禁止しています。
事後チェックがあるかもしれないとのことなので、そういった用途で利用しているAPIキーは停止される可能性もあります。どうしてもそういった用途で利用したい場合は、meboの別のAIモデル(高精度AI)をご利用ください。3. GPT-3.5は優秀だが発言に誤りもある
高性能ですがまだまだ事実と異なることを発言することがあります。信憑性のない発言を行うことを前提でご利用ください。作成したチャットボットを公開する場合は、ユーザーに誤解を与えないよう配慮をお願いします。OpenAIの規約には、「AIの応答」であることを明記する必要があるという言及もあります。
以上で利用方法および注意事項の説明を終わります。meboの各機能に関しては説明しきれなかったため、ご興味をお持ちいただけた方は、ぜひこちらのガイドをご参照ください。
技術的な話
最後に技術的な話を絡めて、本記事を終わろうと思います。
GPT-3.5をどのように利用しているか
GPT-3.5の利用は「プロンプト」を与えることによって会話をさせています。
meboがGPT-3.5に下記の要素をプロンプトとして与えています。
- AIの自己紹介文
- AIの名前
- AIの会話例 + meboで登録したコンテンツ (動的)
この4点をプロンプトに与えることによって会話を行わせています。1〜3は固定で、3はユーザーの発話に応じて動的に変化します。ユーザーの発話があった際、まずは手動で登録した発話ペアを検索し、ユーザーの発話に近しい発話ペアを抽出します。その発話ペアをプロンプトに追加することで、手動で登録したセリフがGPT-3.5の応答に影響を及ぼすようになります。(発話ペアとユーザー発話のマッチ度が高ければ、AIを使わずそのまま応答を返します。)
また、meboではシナリオ会話機能も搭載しています。詳細な仕組みは省きますが、シナリオの中にAIの応答を含めることができ、応答する際に直前の会話の内容をプロンプトに含めて応答を返します。
下記のように、シナリオ内の発話に「@{auto_response}」と表記しておくと、その部分をAIが考えてくれる機能があります。
このあたりの技術的な話は、また別途記事にまとめていこうと思います。
まとめ
今回は私が個人開発しているmeboというサービスにGPT-3.5を連携させた話を紹介しました!
GPT-3.5を利用したチャットボット作成に興味をお持ちいただけた方は、ぜひOpenAIの利用料に気をつけながらご利用ください!
このサービスへの質問やFBはお気軽に下記Twitterまでお寄せください。
最後までお読みいただきありがとうございます。
Discussion