インテントには、インテントが一致した後にレスポンスを返せるようにする組み込みレスポンス ハンドラがあります。この機能では静的レスポンスのみをサポートしていますが、レスポンスでパラメータ参照を使用すると動的レスポンスになります。この方法は、エンドユーザーが提供した情報を要約するのに役立ちます。たとえば、インテント レスポンスは、「あなたのために $date に部屋を予約しました」のようになります。
場合によっては、その他のレスポンスは不要です。コードでアクションや動的レスポンスを作成する場合は、以下の動的レスポンス オプションを使用します。通常、エージェントは静的レスポンスと動的レスポンスの組み合わせを使用します。
複数のタイプのレスポンスを提供できます。基本のレスポンス タイプはテキスト レスポンスです。他の種類のレスポンス(画像、音声、合成音声など)が利用できます。これらの一部はプラットフォーム固有です。
インテントに複数のレスポンス パターンを定義した場合、エージェントによってレスポンスがランダムに選択されます。レスポンス パターンをいくつか追加して、エージェントの会話を豊かにしましょう。
エージェントを作成する際は、各インテントのレスポンス データを提供する必要があります。API やフルフィルメントを Dialogflow と連携させる場合は、レスポンス データを提供する必要はありません。どちらのメソッドであっても、動的なリスポンスが生成されるからです。ただし、シミュレータを使用して単純なレスポンスを持つインテントをテストまたは定義する場合は、レスポンス データを指定します。
原則として、インテント レスポンスの場合は、エンドユーザーに別のインテントと一致する表現を提供するよう促します。また、エンドユーザーに具体的なデータを提供するよう伝える必要があります。たとえば、「どの都市で生まれましたか」は、「どこで生まれましたか」といった自由な形式の質問よりも優れています。
このデータがある場所
エージェントを作成する際は、Dialogflow ES コンソール(ドキュメントに移動、コンソールを開く)を使用するのが最も一般的です。コンソールの使用方法は次のとおりです。インテントのレスポンス データにアクセスするには、次のようにします。
- Dialogflow ES コンソールに移動します。
- エージェントを選択します。
- 左側のサイドバーのメニューで [Intents] を選択します。
- インテントを選択します。
- [Responses] セクションまで下にスクロールします。
コンソールではなく API を使用してエージェントを作成する場合は、インテントのリファレンスをご覧ください。API のフィールド名はコンソールのフィールド名と同様です。以下の手順では、コンソールと API の間の重要な違いを説明します。
レスポンス プラットフォーム
各レスポンスは、デフォルト プラットフォーム(API の PLATFORM_UNSPECIFIED
と呼ばれます)、または特定の統合プラットフォームに対して定義されます。統合を使用しない場合、すべてのレスポンスでデフォルトのプラットフォームを使用できます。統合を使用する場合、それぞれの統合が固有のレスポンスを持つことも、デフォルトのレスポンスを使用するように構成することもできます。
プラットフォーム固有のレスポンスの詳細については、リッチ レスポンス メッセージをご覧ください。
組み込みレスポンスを作成する
組み込みレスポンスを作成するには、次の手順を行います。
- デフォルトまたは特定のプラットフォームを選択します。
- テキスト レスポンスなどの目的のレスポンス タイプが表示されていない場合は、[Add Responses] をクリックしてレスポンス タイプを選択します。
- レスポンスに必要な情報を入力します。
- [Save] をクリックします。
フルフィルメントによる動的レスポンス
フルフィルメントを使用すると、動的レスポンスを作成できます。詳細については、フルフィルメントのドキュメントをご覧ください。
API を使用した動的レスポンス
API を使用すると、動的レスポンスを作成できます。詳細については、API の概要をご覧ください。
特殊文字
一部の特殊文字はレスポンスでエスケープする必要があります。
ドル記号 $
または番号記号 #
のレスポンスを使用するには、中かっこ {}
を記号の直後に追加します。次に例を示します。
${100}
は$100
として解決されます。${$number}
が$100
として解決されます。ここで、$number
は値が 100 のパラメータ参照です。#{hello}
は#hello
として解決されます。
レスポンスで中かっこ {}
を使用する場合は、二重中かっこで置き換えます。次に例を示します。
{{hello}}
は{hello}
として解決されます。
空のパラメータ値の処理
解決が空の値になる場合は、そのパラメータを使用しないレスポンスのバリアントを少なくとも 1 つ指定してください。
たとえば、インテントに 2 つのパラメータ p1
と p2
があり、いずれかまたは両方が空になる可能性がある場合は、少なくとも次に挙げる 4 つのレスポンス バリアントを指定します。
- わかりました。「$p1」と「$p2」と言いましたね。
- わかりました。「$p1」と言いましたね。
- わかりました。「$p2」と言いましたね。
- わかりました。