💬

10個の質問に答えるだけで会話型AIキャラを生成できるサービス「Chara.AI Generator」を作った!

2023/01/09に公開

概要

こんにちは、maKunugiです
今回は表題の通り、会話型AI(= 会話ができるAI)のキャラクターを簡単に生成できるサービスを作ってみた話について、紹介させていただきます。会話ができるAIに興味がある方、ぜひ読んでみていただけると嬉しいです!

作ったもの

作ったもの: Chara.AI Generator
読み方: キャラエーアイ ジェネレーター
https://mebo.work/generator

私はmebo(ミーボ)という会話型AI構築サービスを2年ほど運営しており、そのサービスの1つの機能として開発しました。
Chara.AI Generatorは、下記のような自然な会話ができるAIキャラクターを簡単な作業で生成することができます。

user:  今年もよろしくね!
ai: はい、よろしくお願いします😊今年はどんな年になるのかな〜楽しみだね〜。
user: 今年はどんな一年にしたい?
ai: 去年に引き続きいろんなことに挑戦したいな😊洋菓子作りもしてみたい!
user: どんな洋菓子作りたいの?
ai: うーん、具体的にはないんだけど、例えばシュークリームとかかな。甘いものが大好きで😅

デモ用のAIと会話する

上記のような会話AIを、10個のAIキャラクター生成用の質問に答えるだけで作ることができます。
数分の作業で会話ができるAIキャラクターを生成することができます。

なぜ作ったか

以前より会話型AI構築サービスを運営していましたが、必要な設定やセリフの登録の手間が多く、AIキャラクターを作成する手間が非常に大きい状況がありました。なるべく手間を減らし、まずは話せる会話型AIを構築できる環境を用意するため、Chara.AI Generatorの開発に至りました。

最近、コマンドを打つだけでAIに絵を描いてもらえるMidjournyなどのサービスが注目を集めています。Chara.AI Generatorは同じくらい気軽に、会話が可能なAIキャラクターを生成し活用できるようなサービスを目指しています。

特徴

1. 10個の質問に答えるだけで生成できる

10個の質問」に答えるだけで、自然な会話ができる高精度な会話型AIのキャラクターを生成できます。

10個の質問

  1. キャラクターの名前は?
  2. キャラクターのアイコンは?
  3. キャラクターの自己紹介文を書いてください。
  4. 1人称・2人称の呼び方は?
  5. 「こんばんは〜。」に対して応答してみてください。
  6. 「最近していることは?」に対して応答してみてください。
  7. 「趣味は何?」に対して応答してみてください。
  8. 「どうしてそれが趣味になったの?」に対して応答してみてください。
  9. 「これからよろしくね!」に対して応答してみてください。
  10. 会話の開始時の発話は?

上記の10個の項目を設定するだけで、AIキャラクターが生成できます。
AIは上記の項目からキャラクターの特徴を掴み、応答を返してくれます。

2. 様々なプラットフォーム上で会話ができる

生成されたAIキャラクターはWebブラウザで動くチャット画面で会話ができます。また、SlackやLINEと接続して、各プラットフォーム上のbotとして動かすことも可能です。さらに、APIを有効化することで様々なプロダクトと連携することも可能です。

会話可能なプラットフォーム一覧

  1. チャット画面 (設定なしで利用可能) ※ URLシェアが可能です
  2. LINE (meboの公開設定画面で連携可能)
  3. Slack (meboの公開設定画面で連携可能)
  4. API (meboの公開設定画面で有効化可能)

APIを活用すれば、音声認識・音声合成サービス、アバター系サービスと組み合わせ、音声で対話できるAIキャラクターを作成することもできます。

年末年始には、Chara.AI Generatorで作れるAIを用いて、「AI同士が永遠に話し続けるYouTubeの配信」にも挑戦しました。

3. 会話を自由にカスタマイズできる

先述した通り「Chara.AI Generator」は、会話型AI構築サービス「mebo(ミーボ)」上にAIキャラクターが生成される機能です。

https://mebo.work

meboはAIキャラクターの会話をカスタマイズする様々な機能を備えています。

主な機能

  1. シナリオ対話
  2. 一問一答のセリフの追加
  3. マークダウンで入力したセリフの追加
  4. インタビューに答えてセリフを追加

これらの機能を利用することで、会話の内容を自由にカスタマイズすることができます。

(シナリオ対話構築の様子)

Chara.AI Creatorで生成されたAIキャラクターは基本的に、「10個の質問」で設定した項目を考慮して「AIが勝手に」応答を返します。しかし、時には決まった応答を変えさせたい話題もあります。そんな時は、手動でセリフをカスタマイズしましょう。これらの機能をうまく活用することで、AIによる自動応答と固定のセリフを織り交ぜたAIキャラクターを構築することができます。

meboの各機能や細かい使い方に関しては、こちらをご参照ください。
https://zenn.dev/makunugi/books/f3d9eb62b6d133

AIキャラの生成方法

1. meboにログインする

下記のページからmeboにログインしましょう。
https://mebo-admin.work/auth/login

2. 新規作成 -> Chara.AI Generator

「Chara.AI Generator」のカード内にある「新規作成する」をクリックしましょう。

3. 各項目の入力

表示された10個の項目を入力しましょう。

最後に「生成する」をクリックします。

下記のようなダッシュボードが表示されれば、生成は成功です🎉

4. 会話のテスト

ダッシュボードまたは公開設定画面にある「会話をテスト」ボタンから会話ができます。

ここまでの作業で会話ができるAIキャラクターが生成できました!

5. 設定の確認

左メニューの「エージェントの設定」からAIキャラクターの細かな設定を行うことができます。

6. 公開

左メニューの「公開設定」からAIキャラクターの公開設定をすることができます。
公開を行うと、チャット画面のURLをシェアして他の人に会話を楽しんでもらうことができます。

利用にあたっての注意事項

meboは無料で利用ができますが、ユーザーに割り当てられたプランごとに月当たりの会話回数の上限が設けられています。会話回数の上限をオーバーすると、会話ができなくなります。(上限の確認やプランの変更は、meboのコンソール上で行えます。)

技術的な話

ここまで、Chara.AI Generatorの紹介をさせていただきました。ここからは余談として、少しだけ技術的な話についても触れさせていただきます。Chara.AI Generatorを含むmeboは下記のような技術で構成されています。

(主な構成要素)

  • フロントエンド
    • チャット画面
    • コンソール画面
  • サーバーサイド
    • 対話用API
    • 管理用API
  • 対話システム
    • 用例ベース対話システム(+ コンテンツパーサー)
    • 生成ベース対話システム
    • シナリオ型対話システム

フロントエンド

フロントエンドは、チャット画面、コンソール画面に分かれます。いずれもNext.jsで実装されています。

サーバーサイド

サーバーサイドは、

  • 会話を司る「対話用API」
  • AIキャラクターおよびユーザーを管理する「管理用API」

で構成されます。Go (+ Echo)で実装されており、GCPのCloud Run上で動いています。認証やDBにFirebaseを採用しています。

対話システム

対話用APIは裏に控える複数の対話システムを利用して応答を返しています。対話システムは現在下記の3つが存在しています。

  1. 用例ベース
  2. 生成ベース
  3. シナリオ型

用例ベース

用例ベースは、あらかじめユーザーの発話とAIの応答を用例として登録しておき、新しいユーザーの発話があった際に、一番近しい応答を採用する方式の対話システムです。meboでは、セリフを手動で追加することで、この用例ベースの対話システムを活用できます。Elasticsearchと単語分散表現を組み合わせた文書検索を行っています。コンテンツの入稿はマークダウン形式で行うため、内部で自前のパーサーを実装して、用例に変換しています。

生成ベース

生成ベースは、AIが応答文を生成する対話システムです。現在は、rinna株式会社が提供している「japanese-gpt-1b」をベースに作成したモデルを利用しています。
https://huggingface.co/rinna/japanese-gpt-1b
用例ベースの対話システムが行う応答を部分的に活用し、用例に登録されたキャラクターの特徴が反映されるように補完しながら、AIが応答を返します。

尚、この記事を書きながら、GPT-3.5(text-davinci-003)を生成ベースの対話システムに活用することも検討をしていました。GPT-3.5を利用することで、より正しい知識による回答が可能でしたが、
「キャラクター性の保持のしにくさ」「料金の高さ」がネックになり利用を見送っています。使う目処が立てば、GPT-3.5を利用できるオプションも追加しようと考えています。

尚、インフラはVertex AIを利用しています。(円安でインフラ代が高騰しており、泣きそうです。)

シナリオ型

シナリオ型の対話システムは、AIキャラクターの作成者が描いた会話のフロー通りに対話を行います。所謂ステートマシンのような状態管理をしながら対話が進行していきます。シナリオの中には、用例ベースの応答や生成ベースの応答を織り交ぜられるような構造になっています。

各実装に関しては、需要があれば別途まとめてみようと思います。

まとめ

なるべく手軽に会話型AIのキャラクターが作成できることを目指し、「Chara.AI Generator」というサービスを作った話を紹介させていただきました。ぜひ興味をお持ちいただけた方は、ぜひ会話ができるAIキャラクターを作ってみていただけると嬉しいです!

サービスへのフィードバックやご意見・ご質問は、お気軽にこちらへお寄せください。

https://twitter.com/makunugi

最後までお読みいただきありがとうございました!

Discussion