TL;TR
docomoから先行商用リリースされているAIエージェントサービスを利用してみました。
ドコモAIエージェント
詳しい情報はドコモAIエージェントAPIのご紹介をご覧ください。
特徴としては
- 音声入力用のAI基盤(テキスト入力も可能)
- BOT基盤はルールベース(機械学習ベースではないです)
- メインエージェントからエキスパートエージェントを呼び出す構造となっており、エキスパートエージェントをカスタマイズすることで、様々なサービスと連携が可能
- メインエージェントは現状、認定パートナーのみ開発が可能
- BOTの音声の変更が可能
- Rasberry PI用SDK有り
といったところでしょうか。
声が変えられる機能は日本人向きですね。
エキスパートエージェントの作成方法
とりあえずエキスパートエージェントを作ってみましょう。
DialogflowやWatsonのようにWebでチャットボットを作成することが出来ます。
アカウント作成
Expert Agent Developer Dashboardにアクセスし、ログインします。(Googleのアカウントがあればログイン可能です)
BOTの追加
「BOTを追加」ボタンを押し、BOTを追加します。
BOTの新規作成
BOTを設定します。 設定項目は下記となります。
Title | Description |
---|---|
Bot name | BOTの名前となります。 |
Invovation name | メインエージェントから呼び出される時の名前となります。 「テストボット」と名付けた場合は、メインエージェントに対して「テストボットを読んで」と言うと、テストボットに切り替わります。 |
Welcome Message | メインエージェントから呼び出される時の挨拶メッセージです。 |
Intentを追加
「Intentを追加」ボタンを押し、Intentを追加します。Intent1つ1つがBOTの動作となります。
まずは、「search」という名前の検索動作用のIntentを定義してみましょう。
Intentの設定
UtterancesにBOTの利用者からの入力を定義します。 「*を探して」などと入力しておくと、ユーザーが「XXXを検索して」という発言をした時に、このIntentが起動することになります。
今回は適当に「を検索して」「を探して」「*って何」の3つを定義してみます。
あくまでルールベースですので、精度を上げる時はここの条件を大量に設定する必要があるでしょう。
SLOTを追加
「Add Slot」(何故か英語・・・)ボタンを押し、スロットを追加します。
SLOTとはUtterancesで抽出されたエンティティーの情報が入る変数です。
SLOTの設定項目は下記となります。
Title | Description |
---|---|
Required | 必須要素かどうか |
Name | 抽出したエンティティーの名前 |
Default | デフォルト値 |
Reflective Sentence | このスロット用の要素が未検出の時、ユーザーへ尋ねるメッセージ |
Entity | 抽出タイプ |
今回は検索用の単語の取得用として、下記のように設定します。
Title | Value |
---|---|
Required | True |
Name | noun (@sebastien.nounを利用する場合、この名前でないとダメ) |
Reflective Sentence | 何を検索しますか? |
Entity | @sebastien.noun (名詞) |
Endpointの設定
用意したスロットの値の収集が全て完了したら、Endpointに設定したRest APIが実行されます。
Rest APIだけではなく、あらかじめ用意されているAPIを呼び出す事も可能なので、今回はwikipedia検索用の「@sebastien.wikipediaBot」を利用してみます。
保存
全ての設定が完了したら画面上部の「保存」ボタンを押して、保存しましょう。
TEST
画面右のTest領域でBOTの動作をテストすることが出来ます。
Testの部分に「テストボット呼んで」と入力するとテストボットに切り替わり、「札幌を探して」と入力するとすると、「Intent:search、Slot:noun、Value:札幌」となっていることがわかると思います。
これでBOTの作成は完了です。
BOTをサービスに追加する
BOTをサービスに追加するには、別のコンソールページUser Dashboardへ移動する必要があります。
サービスの有効化
「サービスを追加」ボタンを押すと、BOTリストが表示され、先程作成した「テストボット」が見つかると思います。
「テストボット」をクリックし、「Enable」ボタンを押すとテストボットが有効化されます。
Androidアプリからテスト
GooglePlayで「セバスチャン開発支援アプリ」を検索すると、開発支援アプリが見つかると思いますので、それをAndroid端末へインストールします。
BOT呼び出し
セバスチャン開発支援アプリの対話画面で、右上のマイクボタンかキーボードボタンを押して「テストボット呼んで」と入力するとテストボットが起動します。
まとめ
この手のサービスが乱立している昨今ですが、docomoのAIエージェントは比較的簡単なチャットボットを簡単に作成することが可能なのではないかと思います。
複雑な事をやるにはAWSのAPI Gateway/LambdaやFirebaseと連携させる必要はありますが、それ程難しくはないでしょう。
課題としては、音声入力 -> ルールベースのBOT基盤という仕組み上、BOTの認識精度が音声認識の精度に大きく左右されてしまう所があります。
今後の改善に期待しましょう!
さて、AIQでは、私達と東京か札幌で一緒に働ける仲間を募集しています。
詳しくはこちら。
私達と一緒にを様々な業界の未来を変えていきませんか?