Amazon re:InventでAmazonはLexを発表した。LexはディープラーニングのサービスでAmazonのポータブルBluetoothとWi-Fi機能を持つEchoの中のAlexaで使われている。Amazonの発表の直後、GoogleはActions on Googleを発表した。Actions on Googleを使えば、開発者はGoogle Assistantベースの会話アプリを開発できる。Google Homeのデバイスと統合することも可能だ。
画像の元: https://madeby.google.com/home/
GoogleのWayne Piekarsk氏はActions on Googleについて次のように説明している。
開発者は自分のサービスをGoogle Assistantと連携できます。
これは次のように実現される。
ユーザーの要求を満たすことができるConversationアクションは2方向のダイアログで実行されます。ユーザーがアクションを要求すると、Google Assistantがリクエストを処理し、実行するべき最適なアクションを決定します。そして、関係があれば、Conversationアクションを実行します。そしてその時点から、ユーザーがどのように挨拶をさたか、ユーザーの要求をどのように満たすか、会話をどのように終わりにするか、といった残りの処理をします。
GoogleはActions on Googleを紹介するサンプルとしてPersonal Chefアプリケーションを用意している。このアプリケーションはGoogle Homeデバイスを通じてリシピ検索サービスとやりとりする。ユーザーは今、どんな雰囲気か、どんな食材があるかを明らかにする。アプリはその雰囲気を解釈し、食欲と雰囲気に合ったレシピのためにどの食材が使えるかを理解する。
これまで、このようなアプリケーションを作るのは難しかった。アクションの意味を抽出するのが大変だったのだ。Solvvyの共同創業者でCTOを務めるMehdi Samadi氏は次のように説明する。
AI技術という点では、“近くにある安いインド料理店を見せて”という命令/指示を一連の実行可能なコマンドに変換するのさえ、簡単ではありません。ユーザーは“インド”料理の店を探しているということを理解し、さらに、“安い”という言葉で意味していることを解釈するという点でパーソナライズされなければなりません。
ConversationアクションGoogleによって開発されており、このような文脈に依存した難しい点に対処できる会話アプリの開発を支援する。
画像の元: (スクリーンショット) https://www.youtube.com/watch?v=HNfE0uaKcfY
Conversationアクションは3つの主なコンポーネントで出来上がっている。
- Invocation trigger これは、ユーザーがどのようにアクションを実行、発見するのかを定義する。実行されるとアクションがユーザーとの会話を実行する。この会話はDialogで定義される。
- Dialog これは、ユーザーがどのようにアクションと会話するのかを定義し、アプリケーションのユーザーインターフェイスとして機能する。会話を先にするめるのはFulfillmentに依存する。
- Fulfillment これは、ユーザーの入力を処理し、応答を返し、また、RESTのエンドポイントを公開する。Fulfillmentはまた、読み上げるレシピやニュースを検索する、というような実際のアクションを実行するロジックを持つ。
会話アクションを実行するには3つの方法がある。
- Conversation APIはGoogle Assistantでのコミュニケーションで使うリクエストと応答のフォーマットを提供する。
- Actions SDKには、NodeJSのクライアントライブラリ、Action Packageの定義、CLIとWeb Simulatorが組み込まれている。
- その他のツールにはAPI.AIがある。
API.AIはGoogleが最近買収したものだ。これによって開発者は会話のインターフェイスを構築できる。2016年9月、GoogleのScott Huffman氏は次のように説明している。
60,000人以上の開発者がSlackやFacebook Messenger、Kikといった環境向けにAPI.AIを使って会話を提供する仕組みを開発しています。
Actions on Googleを使えば、開発者は会話インターフェイスにAPI.AIを組み込んで会話APIが必要になるテキストの書き換えの量を少なくできる。Piekarsk氏はActions on GoogleでAPI.AIを使うことの利点を強調している。
API.AIは直感的でグラフィカルなユーザーインターフェイスで会話インターフェイスを作成できます。会話の状態の管理とスロットとフォームの充当という点で困難な処理を実行します。
画像のソース: (スクリーンショット) https://www.youtube.com/watch?v=HNfE0uaKcfY
会話を処理するために、開発者は開発者コンソールを使ってIntentsを定義することができる。GoogleのPersonal Chefでは、ユーザーからの必要な情報を定義している。食材や気温、料理のタイプや調理時間などだ。
開発者はサンプルの文を提供する必要がある。API.AIはこれらサンプル文を使って機械学習アルゴリズムで学習をする。これによって、ユーザーが発話する可能性のある文を処理できるようになる。開発者はAPI.AI用に正規表現を書いて文のパースをしなくてよい。
画像の元: https://www.youtube.com/watch?v=HNfE0uaKcfY
開発者はそれぞれの情報に手動で値をセットすることもできる。設定をすると、API.AIはその情報を使って発話された文から意味を抽出する。例えば、開発者がプロテインにマップされる要素のリストを定義しておく。Personal Chefアプリがレシピの一部にプロテインが含まれていることを期待するなら、牛肉、ラム、豆腐、チキン、といったシノニムのリストを含めておく。
ユーザーがアプリケーションと会話するとき、ユーザーは情報の一部分だけを提供するのが自然だ。これらの情報は無秩序で、アプリケーションが完全な情報を受信できない場合、アクションによって追加の質問をする。
開発者はIntentsをバックエンドのウェブフックと繋いで、IFTTT、Zapier、Azure Logic Appsなどのサードパティのサービスと連結し拡張することができる。ウェブフックが呼ばれたら、すべてのデータがJSONとして渡される。
開発者がこれらのIntentsとEntitiesを開発者コンソールで構成すると、API.AI Web Simulatorでテストを起動できる。また、個人のGoogle Homeデバイスで、事前にプレビューもできる。
Rate this Article
- Editor Review
- Chief Editor Action