暗黙的呼び出しとは、ユーザーが名前でアクションを呼び出すことなく、なんらかのタスクの実行を要求する場合に発生するインタラクション フローです。Google アシスタントはユーザーのリクエストをアクション、検索結果、モバイルアプリなど、適切なフルフィルメントに適合させようと試み、ユーザーにおすすめを提示します。
ユーザーのタスクを支援できるアクションがデプロイされていれば、アシスタントを介してユーザーがそのアクションを見つける手段として、暗黙的呼び出しが活かされます。
仕組み
一致するアクションを見つけるために Google はいくつかのシグナルを利用します。例えば、ユーザーがアシスタントに依頼している作業が、構成済みインテントの呼び出しフレーズのどれかに似ている。またはユーザーのコンテキストが対象アクションに適している、などといったシグナルです。
このようなインタラクションが発生する仕組みは、次のとおりです。
- ユーザーがアシスタントにタスクの実行を依頼します。
- 推奨アルゴリズムにより、アクションがユーザーのタスクを遂行できるかどうかが判断されます。
- アシスタントがアクションをユーザーに推奨します。
暗黙的呼び出しの後にユーザーがアクションを選択すると、アシスタントはそのアクションに、ユーザーが要求した特定のタスクを通知します。
次の例は、アクションの呼び出し名を指定せずに、ユーザーがチキンスープのレシピを要求することで暗黙的呼び出しが起動する流れを示します。
ユーザー | OK Google, チキンスープのレシピを教えて。 |
<アシスタントは、Actions on Google プラットフォームにクエリを行い、ユーザーのリクエストに適したアクションを見つけます> | |
アシスタント | もちろんできます。パーソナルシェフがおすすめです。利用しますか? |
アクションの呼び出しフレーズを、関連するさまざまなユーザークエリにマッピングできないと、関連性があると認識されません。詳しくは、有用な呼び出しフレーズを作成するためのベスト プラクティスをご覧ください。
おすすめアルゴリズムの性質は進化を続けているため、Google では、アクションが暗黙的呼び出しによって推奨されることは保証できません。
呼び出しフレーズの追加
ここでは、Dialogflow または Actions SDK を使用してアクションを作成する場合に、暗黙的呼び出しのための呼び出しフレーズを追加する方法について説明します。
Dialogflow
トレーニング フレーズでエンティティを使用する場合は、エンティティを含むフレーズの要件を十分に理解してください。
Dialogflow では、アクションとその呼び出しフレーズは、暗黙的呼び出しのために指定するインテントのトレーニング フレーズとして定義されます。Dialogflow 統合ガイドで説明されているように、Dialogflow コンソールで 1 つの手順を実行するだけで、アクションへのディープリンクと暗黙的呼び出しのサポートを追加できます。
Actions SDK
Actions SDK では、アクションとその呼び出しフレーズはクエリパターンとして定義されます。詳しくは、アクションを定義するをご覧ください。
暗黙的呼び出しの分析と表示
ここでは、アクション コンソールを使用して、アクションに一致した暗黙的呼び出しについての情報を分析して表示する方法について説明します。
検出の分析
Actions Console の [Analytics] > [Discovery] セクションには、どのフレーズがアシスタントにこのアクションを推奨したか、およびどのインテントがプロンプトに合致したかに関する有用な情報が提供されます。
詳細については、コンソール分析と健全性のドキュメントをご覧ください。
呼び出しフレーズの表示
Actions Console の [Build] > [Actions] で、アクションとその呼び出しフレーズを確認できます。
リスト内のアクションのいずれかをクリックすると、その呼び出しフレーズを表示できます。Dialogflow を使用している場合は、[フレーズをさらに追加] を選択できます。これにより、Dialogflow のアクションのインテントに直接リンクされます。
エンティティを含むフレーズの要件
Dialogflow を使用している場合、次のルールがエンティティに適用されます。これらの構文ルールは、実際には単語間のスペース区切りを使用しない言語(韓国語やタイ語など)にも適用されます。
- エンティティをフレーズに含める場合は、エンティティの前後にスペースが必要です。
- エンティティをフレーズの先頭に置く場合は、エンティティの前にスペースを追加する必要はありません。
- エンティティをフレーズの末尾に配置する場合は、エンティティの後にスペースを追加する必要はありません。
エンティティがテキストとスペースで区切られていない場合、Actions on Google はエンティティを値置換せずに、フレーズ全体を文字列として読み取ります。
Actions シミュレータでエンティティとテキストを含むフレーズをテストし、意図した意味が維持されることを確認する必要があります。
詳細については、Dialogflow のエンティティの概要をご覧ください。
有用な呼び出しフレーズを作成するためのベスト プラクティス
呼び出しフレーズはユーザーに対し、呼び出しと検出を支援する便利なツールとなりますが、呼び出しフレーズの選択は慎重に行う必要があります。アクションの呼び出しフレーズを設計する場合は、次のベスト プラクティスに従ってください。
アクションのユースケースに固有の呼び出しフレーズを維持する
アクションは特定の目的を果たす必要があるため、呼び出しフレーズは、アクションの用途を実際に表したものである必要があります。たとえば、アクションがフライトの予約に使用される場合は、「$location から $location に行くにはどうすればよいですか?」を使用しないでください。「$location から $location までのフライトを予約」のような表現を選ぶことをおすすめします。
- 呼び出しフレーズにエンティティが含まれている場合は、エンティティのすべての同義語が、そのフレーズとアクションのユースケース全般に関連があることを確認してください。
動詞と目的語の両方を含むフレーズを作成する
呼び出しは完全な文とします。つまり、言語的に自然な文にするためには、アクションの呼び出しフレーズを動詞と目的語のペアとする必要があります。たとえば、「簡単なレシピ」は、完全な呼び出しが「OK Google, 簡単レシピ」となるため、適切な呼び出しフレーズにはなりません。より適切な方法として、「OK Google, 簡単なレシピを作るにはどうすればよいですか?」というように呼び出せます。
良い呼び出しフレーズと悪い呼び出しフレーズの例を以下に示します。
不適切な呼び出しフレーズ
- フレーズに動詞がありません: 「5 番」
- フレーズが一般的すぎます: "Travel to New York"。
適切な呼び出しフレーズ
- 句に明確な動詞と目的語がある: 「お父さんのジョークを聞く」
「フレーズ一致」は、次のような具体的なリクエストを提供します。
- 「今日は何を着ればいいですか?」
- 「雑学ゲームをしたいです」
- 「女の子の赤ちゃんの名前を探して。」
このような呼び出しフレーズは、ある特定のアクションに唯一固有であるとは限りません。どのアクションをユーザーに提案するかはアシスタントによって決定されます。