フルフィルメント

エージェントの会話のターンでは、エージェントはエンドユーザーに対し、質問への回答、情報に対するクエリ、セッションの終了のいずれかで応答する必要があります。また、動的レスポンスの生成や、ターンのアクションを実行するには、エージェントによるサービスへの問い合わせが必要な場合があります。フィルメントは、このすべてを行うために使用されます。

フルフィルメントには次のいずれかを含めることができます。

  • 静的レスポンス メッセージ。
  • 動的レスポンスやアクションの実行のための Webhook 呼び出し。
  • パラメータ値を設定またはオーバーライドするパラメータのプリセット。

エージェントのターンの間に、複数のフルフィルメントを呼び出して、それぞれがレスポンス メッセージを生成することが可能です(生成が必要な場合もあります)。Dialogflow は、こうしたレスポンスをレスポンス キューに保持します。エージェントのターンが終了すると、Dialogflow は順序付けされたレスポンスをエンドユーザーに送信します。

ES フルフィルメントは、Webhook サービスの接続に限定されます。フルフィルメントのスコープが CX 向けに拡張され、すべてのタイプのプロンプトとレスポンスが対象になりました。

フルフィルメントのユースケース

フルフィルメントは、レスポンス メッセージが必要なすべての場所で使用されます。

これらの各ユースケースで、コンソールによりフルフィルメント編集パネルが開かれます。

フルフィルメントのスクリーンショット

静的レスポンス メッセージ(ダイアログ オプション)

静的なレスポンス メッセージは、設計時に定義したエージェント レスポンスです。フルフィルメントの作成時に定義します。実行時に、これらのレスポンスはレスポンス キューに追加されます。

レスポンス メッセージにはいくつかの種類があります。これについては、以下のサブセクションで説明します。コンソールを使用する場合、フルフィルメント パネルには初期テキスト レスポンス メッセージ カードがありますが、[Add dialogue option] をクリックすると他のレスポンス メッセージの種類のカードをさらに追加できます。

テキスト

テキスト レスポンス メッセージは、エンドユーザーにテキスト ダイアログを送信します。インテント検出 API 呼び出しまたは統合呼び出しで音声合成が使用されている場合は、このテキストを使用して音声コンテンツが生成されます。この場合は、指定されたテキストで必要に応じて音声合成マークアップ言語(SSML)を使用できます。

複数のテキスト レスポンス カードと、各カード内の複数のテキスト レスポンスを定義できます。複数のカードを定義すると、実行時に 1 つのレスポンスに連結されます。1 つのカード内で複数のレスポンスを定義すると、カード内のメッセージのいずれかが実行時にランダムに選択されます。

このテキスト メッセージにはパラメータ参照を含めることができます。

カスタム ペイロード

一部の統合では、リッチ レスポンスを処理するカスタム ペイロード レスポンスがサポートされています。これらのカスタム ペイロードは、統合のドキュメントで定義されている JSON 形式で指定されます。例については、Dialogflow Messenger のカスタム ペイロード形式をご覧ください。

開発した統合にカスタム ペイロードを送信することもできます。これは Dialogflow で処理されないので、独自のビジネス ロジックで処理する必要があります。

人間のエージェントへの引き継ぎ

このレスポンスは、会話を人間のエージェントに引き渡す必要があることをインテント検出 API 呼び出し元に通知します。Dialogflow は、このシグナルのみを使用して、測定の目的で引き渡された会話を識別します。このセッション状態がなんらかの形で変更されることはありません。このシグナルを使用すると、システムまたは統合が、会話を引き渡すために必要なアクションを実行できます。Dialogflow ではこのデータに対して構造が適用されないため、システムに適した構造を選択できます。

会話の成功メタデータ

このレスポンスは、Dialogflow エージェントとの会話が成功したことをインテント検出 API 呼び出し元に通知します。Dialogflow はこのシグナルのみを使用して、測定の目的で成功した会話を識別します。このセッション状態がなんらかの形で変更されることはありません。システムまたは統合でこのシグナルを使用して、必要なアクションを実行できます。Dialogflow ではこのデータに対して構造が適用されないため、システムに適した構造を選択できます。

事前に録音した音声を再生する

このレスポンスは、この機能をサポートする統合の音声ファイルを再生します。音声ファイルに一般公開の URL を指定する必要があります。たとえば、Cloud Storage で一般公開のファイルをホストできます。

条件付きレスポンス

このレスポンス タイプは、条件付きレスポンスに使用されます。一般的な形式を次に示します。

if [condition]
  [response]
elif [condition]
  [response]
elif [condition]
  [response]
else
  [response]
endif

ここで

  • [condition] は、ルート条件で使用される形式と同じ形式です。
  • [response] はテキスト レスポンスです。
  • elif ブロックと else ブロックは省略可能です。

例:

if $session.params.user-age >= 21
  Ok, you may enter.
else
  Sorry, you cannot enter.
endif

Webhook の呼び出し

Webhook があるフルフィルメントが呼び出される場合、エージェントは Webhook にリクエストを送信します。Webhook は、サービス内で必要なアクションをすべて実行し、動的レスポンス メッセージを提供し、パラメータ値をオーバーライドして、現在のページを変更できます。

パラメータのプリセット

フルフィルメントを使用して、現在のパラメータ値を設定またはオーバーライドするプリセットを指定できます。これらのプリセットは、静的レスポンス メッセージを解決する前、または Webhook を呼び出す前に適用されます。

レスポンス キュー

エージェントのターンの間に、複数のフルフィルメントを呼び出して、それぞれがレスポンス メッセージを生成することが可能です(生成が必要な場合もあります)。Dialogflow は、こうしたレスポンスをレスポンス キューに保持します。エージェントのターンが終了すると、Dialogflow は順序付けされたレスポンスをエンドユーザーに送信します。