データストア エージェントのパフォーマンスの改善

このガイドでは、データストア エージェントのパフォーマンスをモニタリングして改善するための推奨事項について説明します。

エージェントのパフォーマンスを追跡する

エージェントの会話履歴をモニタリングしたり、エージェントの統計情報に分析ツールを使用したりできます。

セルフサービス評価を実行する

セルフサービス評価を実行すると、データストア エージェントの品質を評価し、変更を推奨できます。

エージェントのレスポンスを改善する

テスト中に期待どおりでないレスポンスが見つかった場合は、次の手順をお試しください。

会話の余談を処理する

エンドユーザーが会話中に明らかにするための質問をする場合があります。たとえば、クレジット カード情報の収集中に、CVV が何かを明確にする必要があります。この場合、エージェントは質問に回答し、必要なクレジット カード情報の収集に戻る必要があります。これを行うには、質問に答えるデータストアを使用してデータストア ハンドラを作成し、そのハンドラをクレジット カード情報の収集を処理するフローのフロースタートページに適用して、このハンドラが「現在のページ」に戻るためのトランジション ターゲットを設定します。

不要なインテント マッチを処理する

エージェントがデータストア ハンドラを使うべきなのにインテントと一致している場合、これを修正するために以下を試すことができます。

  • あいまいなトレーニング フレーズを削除または変更します。これにより、すべてのトレーニング フレーズが目的の意図を正確に処理し、データストアのコンテンツと競合しなくなります。
  • ネガティブ サンプルを使用してインテント不一致を回避します。

データストアのフィルタリング

場合によっては、セッション パラメータ値に応じて、クエリに特定のデータストアのみを使用することがあります。たとえば、商品カテゴリごとに一意のデータストアを作成する場合があります。商品カテゴリのデータストア フィルタリングを行うには:

  • セッション パラメータを商品カテゴリに設定します。
  • セッション パラメータの値をチェックし、目的のデータストア ハンドラがある特定のページに遷移する条件ルートを作成します。
  • データストア ハンドラが呼び出しページに戻り、会話を続行できます。

カスタマイズ

生成回答をエンドユーザーにより関連性のあるものにするために、Dialogflow にユーザーに関する情報を提供できます。

この情報は JSON として提供されます。 想定されるスキーマはないため、オブジェクト プロパティを自由に定義できます。 この JSON は大規模な言語モデルにそのまま送信されるため、記述的なプロパティ名と値により最適な結果につながります。

次に例を示します。

{
  "subscription plan": "Business Premium Plus",
  "devices owned": [
    {"model": "Google Pixel 7"},
    {"model": "Google Pixel Tablet"}
  ]
}

Dialogflow API によるパーソナライズ

インテント検出リクエストを送信するときに、そのデータを Dialogflow に渡すことができます。 この情報はセッションで維持されないため、すべてのインテント検出リクエストで提供する必要があります。

この情報は、Sessions.detectIntent メソッドの queryParams.endUserMetadata フィールドに入力します。

セッション リファレンスのプロトコルとバージョンを選択:

プロトコル V3 V3beta1
REST セッション リソース セッション リソース
RPC セッション インターフェース セッション インターフェース
C++ SessionsClient 利用できません
C# SessionsClient 利用できません
Go SessionsClient 利用できません
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP 利用不可 利用できません
Python SessionsClient SessionsClient
Ruby 利用不可 利用できません

Dialogflow Messenger によるカスタマイズ

このデータを Dialogflow Messenger の統合に提供できます。setContext メソッドをご覧ください。

検索構成

エージェントの動作をより適切に制御し、回答の質を向上させるために、検索構成(ブーストとフィルタ)を公開することで、ドキュメントのブースト、埋め込み、フィルタを行うことができます。

ブースト コントロールを使用すると、特定のドキュメントにブースト値(ランキングが高い場合は 0 より大きい値、ランキングが低い場合は 0 未満の値)を適用することで、検索結果のランキングを変更できます。

フィルタ コントロールを使用すると、指定したフィルタ条件に基づいて検索結果を保持または削除できます。

この情報は、Dialogflow リクエストに JSON として提供されます。 JSON の形式は、検索コントロールのタイプによって異なります。

ブースト コントロール

次の検索構成は、ブースト コントロールを示しています。

"searchConfig": {
  "boostSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "spec": [
        {
          "conditionBoostSpecs": {
            "condition": "CONDITION",
            "boost": "1.0"
          }
        }
      ]
    }
  ]
}

フィルタ コントロール

次の検索構成は、フィルタ コントロールを示しています。

"searchConfig": {
  "filterSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "filter": "CONDITION"
    }
  ]
}

Dialogflow API を使用して検索構成を設定する

インテント検出リクエストを送信するときに、そのデータを Dialogflow に渡すことができます。 この情報はセッションで維持されないため、すべてのインテント検出リクエストで提供する必要があります。

この情報は、Sessions.detectIntent メソッドの queryParams.searchConfig フィールドに入力します。

セッション リファレンスのプロトコルとバージョンを選択:

プロトコル V3 V3beta1
REST セッション リソース セッション リソース
RPC セッション インターフェース セッション インターフェース
C++ SessionsClient 利用できません
C# SessionsClient 利用できません
Go SessionsClient 利用できません
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP 利用不可 利用できません
Python SessionsClient SessionsClient
Ruby 利用不可 利用できません

Dialogflow Messenger を使用して検索構成を設定する

このデータを Dialogflow Messenger の統合に提供できます。

検索コントロールを適用するには、次のスニペットをウェブサイトに埋め込むときに DF メッセンジャー コードに追加する必要があります。

<script>
  document.addEventListener('df-messenger-loaded', () => {
    const dfMessenger = document.querySelector('df-messenger');
    const searchConfig = { ... }
    dfMessenger.setQueryParameters(searchConfig);
  });
</script>

詳しくは、setQueryParameters メソッドをご覧ください。