Dialogflow でアクションを定義するには、Dialogflow エージェントでインテントを作成し、アクションへのエントリ ポイントとしてインテントを割り当てます。作成できるアクションのタイプは次のとおりです。
- デフォルトのアクション: すべての Dialogflow エージェントには、ユーザーがアクションの名前を名前で求めたときに呼び出されるアクションが 1 つだけ必要です(例: 「OK Google。Google の豆知識と話したい」、「OK Google,「Google のファクトに話をしましょう」など)。
- 会話にディープリンクするその他のインテント: これらのアクションは、ユーザーがアクションを名前で呼び出し、さらに呼び出しフレーズを指定したときにトリガーされます(例: 「歴史の豆知識について Google のファクトと話したい」)。
これらの呼び出しモデルの仕組みの詳細については、インテントと呼び出しをご覧ください。
デフォルトのアクションを定義する
すべての Dialogflow エージェントには、GOOGLE_ASSISTANT_WELCOME イベントを処理するインテントが 1 つだけ必要です。このインテントは、ユーザーがアクションをアクション名で呼び出すとトリガーされます(例: 「OK Google, Google の豆知識と話したい」)。
GOOGLE_ASSISTANT_WELCOME イベントは、次の方法で定義できます。
Dialogflow コンソールのインテント エディタから、次の操作を行います。
- ナビゲーション メニューで [Intents] をクリックします。
- ウェルカム イベントに設定するインテントを選択します。
- インテントの [Events] セクションに「
GOOGLE_ASSISTANT_WELCOME
」と入力します。 [保存] をクリックします。
図 1. Dialogflow インテントの [Events] セクションのスクリーンショット。
Google アシスタントの統合モーダル ウィンドウで次の操作を行います。
- ナビゲーション メニューで [Integrations] をクリックし、[Google Assistant] をクリックします。
- [X] をクリックして、[明示的呼び出し] フィールドの現在の項目を削除します。
[ウェルカム インテント] ボックスで、ウェルカム イベントとして設定するインテントを選択します。
図 2. Dialogflow コンソールの Google アシスタント統合モーダル ウィンドウのスクリーンショット。
インテントの [Events] セクションを表示すると、インテントに GOOGLE_ASSISTANT_WELCOME イベントが設定されています(図 1 を参照)。
フルフィルメントを有効にする
デフォルトでは、Dialogflow インテントは、インテントの [Response] セクションに指定された静的レスポンスを返します。呼び出されたときに同じメッセージで応答するだけでよい単純なアクションには、この設定で十分かもしれません。ただし、インテントから動的レスポンスを返す場合は、複雑なロジックを処理し、インテントに対してリアルタイムでレスポンスを作成できるフルフィルメントを提供する必要があります。
インテントのフルフィルメントを有効にするには、次の手順を行います。
- インテントのインテント エディタで、一番下までスクロールします。
[Fulfillment] をクリックし、[Enable webhook call for this intent] をオンにします。
図 3. Dialogflow インテントの [Fulfillment] セクションのスクリーンショット。
このインテントがトリガーされた際の処理方法については、フルフィルメントを作成するをご覧ください。
追加のアクションを定義する
会話のエントリ ポイントとして機能するアクションを追加できます。この設定により、ユーザーは実行したい操作の詳細を指定できます(例: 「Google の豆知識と話して、歴史の事実について調べよう」)。
Dialogflow で他のアクションを定義するには、次の操作を行います。
- 作成するアクションのインテントを作成します。
インテントの [Trainingphrase] セクションで、このアクションをトリガーするパターンを指定します。たとえば、「Google の豆知識と話して、歴史の事実を突き止めよう」というフレーズでアクションを呼び出す場合は、次のトレーニング フレーズを指定します。
- 「歴史的事実を探して」
- 「歴史的事実を調べて」
- 「会社の歴史に関する事実を教えて」
- 「本社に関する情報を読んで」
- 「本社についていくつかの情報を教えて」
インテントごとに少なくとも 10 個のトレーニング フレーズを用意することをおすすめします。
インテントのフルフィルメントを有効にするには、画面下部までスクロールして [Fulfillment] をクリックし、[Enable webhook call for this intent] を選択します。(フルフィルメントの詳細については、フルフィルメントを作成するをご覧ください)。
[保存] をクリックします。
ナビゲーション メニューで [Integrations] をクリックし、[Google Assistant] をクリックします。(Google アシスタントのモーダル ウィンドウが表示されます)。
[Implicit invocation] セクションで、インテントを追加します。
図 4. Google アシスタント統合モーダル ウィンドウの [暗黙的呼び出し] セクションのスクリーンショット。
アクションを定義する際は、次の制限事項とガイドラインが適用されます。
- 呼び出しフレーズに予約語を含めないでください。
- たとえば、呼び出しフレーズの先頭に「Talk to」や「let me talk to」を使用しないでください。
@sys.any
エンティティのみを含むトレーニング フレーズは指定しないでください。- より具体的にします(例:
find recipes for @sys.any
)。
- より具体的にします(例:
認識されないアクションの処理
ユーザーが、アクションで認識されないアクションを呼び出そうとすると、Dialogflow はそうしたケースに対処するためにインテントをトリガーできます。
この動作を有効にするには、google_assistant_welcome
の入力コンテキストを使用して新しいインテントを作成し、ユーザーに対する適切なレスポンスを指定します。
- ナビゲーション メニューで [Intents](インテント)をクリックします。
- [インテントを作成] をクリックして、インテントに名前を付けます。
- [Contexts] セクションで、入力コンテキストとして
google_assistant_welcome
を指定し、Enter キーを押します。(入力コンテキストを入力すると、google_assistant_welcome
が出力コンテキストとして表示されます)。 [x] をクリックして、出力コンテキストを削除します。
[トレーニング フレーズ] で、ユーザー式として
banana
(またはその他の名詞)を追加します。[banana] をダブルクリックし、[
@sys.any
] を選択します。(@sys.any
エンティティを使用して、バナナだけでなく、任意の文法に表現を一般化するように Dialogflow に指示します)。[Response] セクションで、
$any
を使用してレスポンスを指定します。たとえば、次のレスポンスを使用します。I'm sorry, I don't know how to help with $any.
[保存] をクリックします。