Cloud Machine Learning API を使った会話アプリの作成 - Part 3
Google Cloud Japan Team
このブログ記事の Part 1 と Part 2 では、API.AI と Google Cloud Machine Learning API を使った会話型ツアー ガイド アプリの作成方法を紹介しました。最終回となる今回は、このアプリを、Google Assistant が動作するデバイス(Google Home、動作要件を満たす Android スマートフォンおよび iPhone、Android Wear)に拡張する方法を見ていきます。この拡張アプリは、Part 1 と Part 2 で作成した既存の API.AI エージェントがベースとなります。
Actions on Google 用の新しいインテント
Part 1 では会話型ツアー アプリの入力コンテキストと出力コンテキストの関係について説明しました。where コンテキストはユーザーに画像のアップロードを要求しますが、これは Google Assistant ではサポートされていません。このコンテキストの関係は次のように変更できます。
hours-no-context、ticket-no-context、map-no-context という 3 つの新しいインテントを追加します。各インテントは、他のインテントが location を入力パラメータとして使えるように、location を出力コンテキストとして設定します。
Actions on Google の統合を有効にする
今度は Actions on Google を有効にして、Google Assistant と連携させます。- Additional triggering intents(追加するトリガー インテント)の下のポップアップ ダイアログで、Google Assistant でサポートしたいすべてのインテントを追加します。なお、Welcome Intent はシステムによって自動的に Default Welcome Intent に設定されます。後で Actions on Google で SETTINGS(設定)をクリックすると、この設定ダイアログを表示できます。
inquiry.where インテントは画像のアップロードを要求しますので、Google Assistant ではサポートされないことに注意してください。そのため、このインテントをトリガー インテント リストに追加してはなりません。また、サポートする新しいインテントを追加作成する方法については、上述の『Actions on Google 用の新しいインテント』で説明しています。 - Actions on Google でサポートしたいすべてのインテント(hours-no-context インテントなど)を Additional triggering intents のリストに追加したら、最下部の UPDATE(更新)および TEST(テスト)ボタンをクリックします。すると、緑色のボックスが生成されるので、VIEW(表示)ボタンをクリックし、Actions on Google Web Simulator に移動します。
Actions on Google コンソールに初めてアクセスする場合はプロンプトが表示され、Activity controls センターにおいて Device Information(端末情報)と Voice & Audio Activity(音声アクティビティ)をオンにするよう促されます。
デフォルトでは、これらの設定はオフになっています。これらをすでにオンにしている場合は、このプロンプトは表示されません。
tell() API と ask() API の違い
Part 2 で触れたように、Actions on Google SDK で Google Cloud Functions を実装するときの tell() API と ask() API には微妙な違いがあります。Part 1 と Part 2 では両 API にはあまり違いはありませんが、Actions on Google を統合する Part 3 では違いがあります。tell() は会話を終了させ、マイクを閉じますが、ask() は会話を継続し、ユーザーの次の入力を待ちます。この違いはシミュレータでテストできます。Cloud Functions で tell() を使うと、Cloud Functions のウェブフック、たとえば inquiry.parades インテントの “Are there any parades today?”(今日はパレードがある?)などでインテントをトリガーした場合、再び “Talk to my test app” と言わなければなりません。
ask() を使用すればテスト アプリとの会話を続けられるので、再び “Talk to my test app” と言う必要はありません。
次のステップ
このサンプル アプリを通じて、機械学習を利用したシンプルなアプリの作成方法をおわかりいただけたと思います。さらに多くの情報を得たいのであれば、以下のクイックスタートを試してみるとよいでしょう。- Cloud Speech API Quickstart
- Cloud Vision API Quickstart
- Cloud Translation API Quickstart
- API.AI Quickstart
ソース コードは GitHub からダウンロードできます。
* この投稿は米国時間 8 月 28 日、Software Engineer である Chang Luo と Bob Liu によって投稿されたもの(投稿はこちら)の抄訳です。
- By Chang Luo and Bob Liu, Software Engineers