Google Homeとapi.aiについて

api.aiについて

api.aiは、自然言語での会話が可能なインターフェースを簡単に作ることが出来るプラットフォームです。

api.ai
https://api.ai/

自然言語とは、人が日常的に使う言葉で
例えば、AIに天気の話を聞きたい時、
「今日の天気」など予め定義されたキーワードで話かけてやるのではなく
「今日は雨降る?」「この後の天気はどう?」など
ニュアンスは違うけど意図としては同じといった内容を捉えることができます。

api.aiで作成したものは、Slackや、LINE、Twitterなどでbotとして使用したり、
iOSや、Android上でアプリケーションのインターフェースとして使用したりできます。

昨年、Googleに買収され話題になりましたが、2年ぐらい前から既に話題になっていたようです。
(2年くらい前となると全然別の開発をやっていたこともあり、お恥ずかしながら知りませんでした)

このapi.aiで作成した内容をActions on Googleと連携させることで
「OK Google, ・・」で起動するようなGoogle HomeのActionとして利用することもできます。

エージェントの作成

既にGoogleアカウントをお持ちであれば、サービス登録から実際に触ってみるまで、1分くらいでできます。

ログイン後の画面、Create Agentから自然言語の会話の作成を開始できます。
(api.aiでは、作成した会話の一塊をエージェントと呼んでいます。人の代わりに対応してくれる代理人みたいなイメージなのかもしれません)

次に作るエージェントの使用言語が選択できますが、英語の場合は幾つかサンプルが選択できますので、そちらを参考に作り始めると作りやすいと思います。

<現在選べるサンプル>
・Alarm
・CustomerSupport
・EasterEgg(?)
・HotelBooking
・MusicPlayer
・News
・PizzaDelivery
・ProfileBot
・TV

自然言語での会話を作る流れとしては、これまでブログで紹介してきた
・AzureのLUIS(+ Bot framework)
・BluemixのConversation
などとよく似ており
「Intent(意図)とEntity(関連性の高い単語)の定義」と「例文の学習」
を行うことで、自然語での会話に対応できるようになっていきます。

このあたりのイメージについては、
以下のブログを参考にするとイメージが付きやすいかもしれません。

「LUISチュートリアル(前編:仕組みと設定方法)」

api.aiに簡単なチュートリアルは用意されているので、それに沿って進めれば、なんとなくわかるかもしれません。
https://docs.api.ai/docs/get-started

作成した直後の段階では全然Intentの抽出ができませんでした。いくらか使いながら学習させてやる必要がありそうです。

api.aiを触ってみた感想

触ってみた感覚としては、会話を作る上で利用できる機能はBluemixのConversationに近い印象でした。
目的を持った会話が作りやすくなっています。

例えば、ピザの注文を受けるbotの場合
ピザの注文の確定の為に、ピザの種類や、サイズなど複数の要素を指定してもらわないといけません。

今回は仮に
・ピザの種類
・サイズ
この両方が揃っていれば、注文が確定できるものとします。

このとき、ユーザーから
「マルゲリータのMサイズください」
と言われた場合、
ピザの種類「マルゲリータ」/ サイズ「Mサイズ」
と両方の情報が揃っている為、注文確定となります。

しかし、
「マルゲリータください」
とだけ言われた場合、
サイズの情報がない為、サイズはどうするかを聞かないことには、注文が終わりません。

この際に「サイズはどうしますか?」と、bot側から必要な情報を聞きにいけるような仕組みが、api.aiとBluemixのConversationには用意されており、ノンコーディングで設定可能です。

もちろん、AzureのLuisでもBot frameworkを組み合わせば可能で
どちらが優れているというより、どのような目的で使うかという話かと思います。
より目的に向けてカスタマイズされているイメージですね。

 

Google Home向けのActionを作るにあたっての注意点

作成したbotをGoogle HomeのActionに対応させるには、こちらの「Integrations」から「Actions on Google」と連携させます。

 

「Actions on Google」の設定を求められるので、入力して、PREVIEWを押すと
Google HomeのWeb Simulator上で実際に試してみることができるようになります。

 

PREVIEWの処理が終わるとポップアップで
Web Simulator https://developers.google.com/actions/tools/web-simulator へ誘導されます。

Google HomeのWeb Simulatorを使うには
Googleアカウントの以下のアクティビティの有効化が必要です。
・ウェブとアプリのアクティビティ
・端末情報
・音声アクティビティ

実際に音声入力も可能なので、実際のGoogle Homeのようにお試しすることができます。

Google HomeのActionに対応させるにあたって、注意点があります。
api.ai自体は日本語に対応していますが、Google Homeは日本語に対応していません。

また、Web Simulatorも日本語には対応していないようです。

試しにやってみたところ日本語が表示されたので、動くかと思ったんですが
入力に対してまともにIntentが検出されませんでした。

その他

Prebuilt Agentsとして、ホテルの予約、飛行機の予約など実際のサービスに使えそうなエージェントが用意されています。
(元々はDomainsと呼ばれていたサービスで、割と最近変わったみたいです)

必要に応じて、これらをカスタマイズすることで、目的に合わせたエージェントを手早く簡単に作成することができます。
が、日本語のものはまだ少ないようです。

また、実際にサービスとして運用するには、他のシステムと連携させる必要がでてきますが、これはWebhookを使って行うようです。

システムの連携イメージ

https://docs.api.ai/docs/key-concepts#apiai-nlu-and-dialog-managementより引用

 

例えば、ホテルの空室情報などとも連携できると
デバイスの位置情報から現在地の近くのホテルの空室状況から
ユーザーにとってよりよい条件のものを提案して、そのまま予約をとったりと
便利なサービスに利用できそうですね。

空室情報をAPIなどで公開した場合、上記のようなサービスで利用して貰えたりなどのメリットもありますが、セキュリティ、運用面などでのデメリットもあると思います。

そういった場合に便利なのが、同じくGoogleが買収したApigeeです。
http://www.apigee.com/

こちらについてはまた次の機会に紹介できればと思います。

%d人のブロガーが「いいね」をつけました。