組み込みインテント(Dialogflow)

組み込みインテントは、固有識別子として指定でき、 アクションが特定のカテゴリのユーザーに対応できることを伝える できます。次に、アシスタントが組み込みインテントを適合させるユーザークエリの例を示します。

  • 「ゲームをプレイ」built-in intent: "OK Google,記憶力ゲームで遊ぶ」
  • 「星占いをして」built-in intent: "OK Google,「星占いをして」
で確認できます。

アクションの検出中に、アシスタントは使用できる 指定した組み込みインテントを含むアクションに関するメタデータ おすすめします会話のラウンドトリップを最小限に抑えるために、 アシスタントはユーザークエリのパラメータもスキャンしようとします。 アクションに渡します

アシスタントがサポートする組み込みインテントの完全なリスト(パラメータとユーザークエリの例を含む)を見るには、組み込みインテントのリファレンスをご覧ください。

組み込みインテントの統合

アクションの作成方法に応じて、さまざまな方法があります。 組み込みインテントを統合します。

Dialogflow

Dialogflow を使用してアクションを作成している場合は、組み込みインテントをアタッチできます。 Dialogflow コンソールからグラフィックで表示します。

Dialogflow を使用して組み込みインテントをアタッチするには、次の手順に従います。

  1. Dialogflow コンソールを開き、エージェントを選択して、 [Intents] 画面
  2. エージェントが受信したときにトリガーするインテントを作成または選択します。 組み込みインテントを指定できます。[イベント] セクションを開き、[追加] をクリックします イベント

    図 1. Dialogflow コンソールで Dialogflow イベントを追加します。
  3. [Events] フィールドに、アプリの組み込みインテント イベントの名前を入力します。 エージェント(例: actions_intent_PLAY_GAME)。

    図 2. Dialogflow コンソールで組み込みインテントをエージェントに接続する。
  4. [保存] をクリックします。

Actions SDK

Actions SDK を使用してアクションをビルドする場合は、 組み込みインテントとアクション パッケージ内のアクションの間のマッピングについて説明します。

Actions SDK を使用して組み込みインテントをアタッチするには、次の手順に従います。

  1. 組み込みインテントは、アクション定義の名前フィールドで指定します。
  2. gactions ツールを使用して、アクション パッケージを Actions プロジェクトにアップロードします。 Actions SDK の概要をご覧ください。

たとえば、次のスニペットは、CHECK_AIR_QUALITY 組み込みインテント:

{
   "actions":[
      {
         "description":"Default Welcome Intent",
         "name":"MAIN",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.MAIN"
         }
      },
      {
         "description":"Check Air Quality",
         "name":"CHECK_AIR_QUALITY",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.CHECK_AIR_QUALITY"
         }
      }
   ],
   "conversations":{
      "conversation_1":{
         "name":"conversation_1",
         "url":"https://example.com/fulfillment",
         "fulfillmentApiVersion":2
      }
   }
}

組み込みインテントのパラメータの処理

組み込みインテントを通じてアクションを呼び出すと、フルフィルメントによって 追加のパラメータを受け取れますインテント スキーマでは、変数の名前、 パラメータとその型をプリミティブ型または schema.org として提供する。 エンティティです。会話型アクションの組み込みインテントのスキーマを確認するには、 組み込みインテントのリファレンス

組み込みインテントのパラメータはオプションです。アシスタントがデータの入力を処理します。 このパラメータには、ユーザーによる呼び出しから抽出できる場合は、 表示できます。

たとえば、actions.intent.CHECK_AIR_QUALITY 組み込みのスキーマ インテントでは、次の 4 つのオプション パラメータを定義します。

パラメータ名
attributes 文字列値
location schema.org/Place オブジェクト。
temporalCoverage schema.org/Duration オブジェクト。
timeIndicator EnumeratedDuration(Google 固有の拡張機能)。

次のコード スニペットは、会話 Webhook(JSON)の例を示しています。 ユーザーがアクションを呼び出したときに「都市の大気質は?」と尋ねると San Francisco tomorrow?」:

"inputs":[
      {
         "intent":"actions.intent.CHECK_AIR_QUALITY",
         "rawInputs":[
            {
               "inputType":"VOICE",
               "query":"what is the air quality in san francisco tomorrow"
            }
         ],
         "arguments":[
            {
               "name":"location",
               "structuredValue":{
                  "geo":{
                     "longitude":-122.41941550000001,
                     "latitude":37.7749295
                  },
                  "@context":"https://schema.org",
                  "@type":"Place",
                  "name":"san francisco"
               }
            },
            {
               "name":"temporalCoverage",
               "rawText":"2018-04-25",
               "textValue":"2018-04-25"
            }
         ]
      }
   ]

この例では、各パラメータは次の値をとります。

  • location パラメータには schema.org/Place が含まれます。 値「San Francisco」を指定します。
  • temporalCoverage パラメータには schema.org/Duration が含まれます。 呼び出し時刻に対する明日の日付の値。
  • attributes パラメータと timeIndicator パラメータの値がありません これは、ユーザーの呼び出しフレーズにそのような情報が含まれていないためです。

Node.js 用の Actions on Google クライアント ライブラリを使用する場合は、 次のスニペットに示すように、パラメータの値を取得できます。

app.intent('actions.intent.CHECK_AIR_QUALITY', (conv) => {
  const attributes = conv.arguments.get('attributes');
  const location = conv.arguments.get('location');
  const temporal_coverage = conv.arguments.get('temporalCoverage');
  Const time_indicator = conv.arguments.get('timeIndicator')

  // Your Action logic. If you need to use any of the parameter values,
  // you should check first that it is defined. Arguments.get returns
  // undefined if it can't find a value for a parameter.

});

組み込みインテントとの統合のテスト

統合をテストするには、次の手順に従います。

  1. テスト アクションを有効にして Actions シミュレータを開くか、 操作できます。
  2. 組み込みインテントに関連付けられたクエリを音声または文字で入力します。たとえば 「ゲームをしたいです。」
  3. 表示されたアプリ選択ダイアログから、該当アクションを見つけます。
  4. アプリを選択し、アプリにインテントを送信します。
図 3. 組み込みのインテント フレーズから生成される
アクション選択ダイアログ。
図 4. 組み込みインテントにアタッチされたアクションの呼び出し

組み込みインテントを使用するためのベスト プラクティス

組み込みインテントを使用する場合は、以下のベスト プラクティスに従います。

  • 組み込みインテントを特定のアクションにマッピングする: 特定の組み込みインテントが アクションをトリガーし、ユーザーを特定のインテントに誘導して、 できるだけスムーズに 3 つの機能を実装できます対象 たとえば、アクションが PLAY_GAME 組み込みインテントをサポートしている場合、 そのインテントを受信したら、直ちにユーザーをゲーム機能に誘導する必要があります。 必要があります。ゲームをしたいかどうかをユーザーに再度尋ねないようにします。
  • 組み込みインテントのパラメータを処理する: 組み込みインテントを使用してください。 パラメータ値を設定します。 これらの値を入力するように、ユーザーに再度促すことは避けてください。