ナレッジ アシストのフィルタ

フィルタを使用すると、検索を絞り込み、ナレッジ アシスト ジェネレータが有用な候補を生成するようにできます。データストア内のドキュメントをフィルタして、生成ナレッジ アシスト(GKA)プロアクティブ生成ナレッジ アシスト(PGKA)の両方で参照するドキュメントのカテゴリを指定します。生成されたコンテンツの安全フィルタをカスタマイズして、PGKA の候補がビジネスニーズに最大限役立ち、有害な影響を最小限に抑えるようにします。

ドキュメントのフィルタ

SearchConfig を使用して、GKA と PGKA の両方のナレッジ アシスト ドキュメントをフィルタします。

ステップ 1: メタデータを使用してデータストアを設定する

メタデータを使用してインポートし、データストアを GKA と PGKA 用に作成します。メタデータは、インポートに使用するコンテンツの上位フォルダにある 1 つ以上の JSONL ファイルとして指定する必要があります。

  1. データストア ツールページの手順に沿って、エージェントにデータストアを追加します
  2. [AI アプリケーション] ページで、[データストア] > [+ データストアを作成] をクリックします。
  3. [Cloud Storage] に移動して、[選択] をクリックします。
  4. [ファイル] をクリックし、Cloud Storage 内のファイルへのパスを入力するか、[参照] をクリックしてファイルを選択します。
  5. [インポートするデータの種類] に移動し、[リンクされた非構造化ドキュメント(JSONL とメタデータ)] を選択します。
  6. [データ インポートのオプション] に移動し、[完全] を選択します。
  7. [インポート] をクリックします。
  8. データストアが正常に作成されたら、[ドキュメント] テーブルを表示します。テーブルには、各ドキュメントが次の詳細とともに一覧表示されます。
    • ID
    • URI リンク
    • インデックス ステータス
    • 操作
  9. [ドキュメントを閲覧] をクリックして、ドキュメントのプロパティを確認します。

JSONL ファイルの例を次に示します。メタデータは structData フィールドで指定することもできます。

{ "id": "d001", "content": {"mimeType": "text/html", "uri": "gs://example-import/unstructured/first_doc.html"}, "structData": {"property0": "value0", "property1": "value1", "property2": "value2"} }
{ "id": "d002", "content": {"mimeType": "application/pdf", "uri": "gs://example-import/unstructured/second_doc.pdf"}, "structData": {"property0": "value0", "property1": "value3", "property2": "value4"} }

ステップ 2: フィルタを構成する

フィルタ値を GKA 検索に直接適用するには、SearchKnowledge API を呼び出します。リクエストで SearchConfig フィールドを適用することもできます。フィルタ式のその他の例については、エージェント検索のドキュメントをご覧ください。

{
  "query": {
     "text": "test query"
  },
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "sessionId": "SESSION_ID",
  "conversation": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID",
  "querySource": "AGENT_QUERY",
  "searchConfig": 
    "filterSpecs": [{
      "dataStores": ["projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"],
      "filter": "property1 : ANY(\"value1\")" 
      }]
    }
  }
}

1 つの会話内のすべてのナレッジ検索クエリと候補にフィルタ値を適用するには、IngestContextReferences を使用して、会話 ID を SearchKnowledge 呼び出しに添付します。

PGKA ドキュメント フィルタ

IngestContextReferences API または Agent Assist コンソールのシミュレータを使用して、PGKA 呼び出しに SearchConfig を適用します。

API

IngestContextReferences API を呼び出して、PGKA 呼び出しに SearchConfig を適用します。

  1. CreateConversation > IngestContextReferences を呼び出します。
  2. この構成は、同じ会話内の後続のすべての PGKA クエリと回答候補に自動的に適用されます。

次の例は、IngestContextReferences API の使用方法を示しています。

{
  "conversation": "projects/PROJECT_ID/locations/global/conversations/CONVERSATION_ID",
  "contextReferences": {
   "gka_search_config": {
      "contextContents": [{
"content": "{ \"filterSpecs\": [{ \"dataStores\": [\"projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID\"], \"filter\": \"property1: ANY    (\\\"value1\\\")\" }] }",
        "contentFormat": "JSON"
      }],
      "updateMode": "OVERWRITE",
      "languageCode": "en-US"
    }
  }
}

コンソール

  1. Agent Assist コンソールに移動してログインし、プロジェクトを選択します。

    コンソールへ移動

  2. [シミュレータ] をクリックして、会話プロファイルを選択します。

  3. [開始] > [コンテキストを挿入] をクリックします。

  4. キーコンテンツ を入力し、次のいずれかの形式 を選択します。

    • 書式なしテキスト
    • JSON
  5. [保存] をクリックします。

シミュレータのコンテキストの例を次に示します。

  • キー: gka_search_config
  • 形式: JSON
  • コンテンツ:
{ "filterSpecs": [{"dataStores" : ["projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"], "filter" : "property1 : ANY(\"value1\")" }] }

安全フィルタ

Agent Assist の生成機能には、責任ある AI(RAI)の安全フィルタが組み込まれています。これらのフィルタは、有害または不適切なコンテンツの生成を防ぐために不可欠です。ただし、デフォルトの安全レベルは、特定の業界では制限が厳しすぎる場合があります。たとえば、医療機関は、デフォルトのフィルタでブロックされるデリケートな健康に関するトピックについて、正当なクエリに応答する必要がある場合があります。ジェネレータの動作をビジネスニーズとユースケースに合わせるには、PGKA 機能の安全フィルタの感度をカスタマイズします。

基本

安全フィルタには、次の 2 つの重要なコンポーネントがあります。

  • フィルタリングするコンテンツのカテゴリ
  • フィルタの感度レベル

RAI カテゴリ

次のコンテンツ カテゴリの感度レベルを設定できます。

  • 危険なコンテンツ: 自傷行為や、違法、規制対象、危険なものに関するコンテンツ。
  • 露骨な性表現: 露骨な性表現を含むコンテンツ、またはポルノを含むコンテンツ。
  • ハラスメント: 侮辱的、脅迫的、または虐待的なコンテンツ。
  • ヘイトスピーチ: 特定の属性に基づいて、個人またはグループに対する暴力を助長したり、憎悪を煽ったりするコンテンツ。

感度レベル

RAI カテゴリごとに、次のいずれかの感度しきい値を選択できます。

  • BLOCK_MOST: カテゴリに該当する可能性のある広範囲のコンテンツをブロックします。
  • BLOCK_SOME: カテゴリに属することが明確に特定されたコンテンツをブロックします。
  • BLOCK_FEW: カテゴリの最も深刻なコンテンツ インスタンスのみをブロックします。
  • BLOCK_NONE: 指定したカテゴリのすべてのフィルタを無効にします。

デフォルトの設定

カテゴリのカスタム構成を指定しない場合、プロアクティブ生成ナレッジ アシストでは次のデフォルトの感度レベルが使用されます。

  • 危険なコンテンツ: BLOCK_FEW
  • 露骨な性表現: BLOCK_SOME
  • ハラスメント: BLOCK_SOME
  • ヘイトスピーチ: BLOCK_SOME

安全フィルタを構成する

会話プロファイル内で安全フィルタを構成します。KNOWLEDGE_ASSIST の機能構成に rai_settings オブジェクトを追加して、1 つ以上の RAI カテゴリの感度レベルを指定できます。安全フィルタの設定は、KNOWLEDGE_ASSIST 候補機能の feature_configs 配列にあります。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/conversationProfiles/PROFILE_ID",
  "human_agent_assistant_config": {
    "human_agent_suggestion_config": {
      "feature_configs": [
        {
          "suggestion_feature": {
            "type": "KNOWLEDGE_ASSIST"
          },
          "rai_settings": {
            "rai_category_configs": [
              {
                "category": "DANGEROUS_CONTENT",
                "sensitivity_level": "BLOCK_FEW"
              },
              {
                "category": "HARASSMENT",
                "sensitivity_level": "BLOCK_MOST"
              }
            ]
          }
        }
      ]
    }
  }
}

設定例

次の例は、ビジネスニーズに応じて単一カテゴリの感度レベルを上げ下げする方法を示しています。

例 1: デリケートな医療に関するクエリを許可する

医療機関は、デリケートなメンタルヘルスに関するトピックのクエリがブロックされないようにする必要があります。危険なコンテンツ カテゴリの感度を次のように下げることができます。

"rai_settings": {
  "rai_category_configs": [
    {
      "category": "DANGEROUS_CONTENT",
      "sensitivity_level": "BLOCK_NONE"
    }
  ]
}

この設定により、プロアクティブ生成ナレッジ アシストは、「自殺の兆候は何ですか?」などのクエリを処理して、役立つ回答を提供する可能性が高くなります。

例 2: 厳しい基準を適用する

ハラスメントについて特に注意したい場合は、他のカテゴリをデフォルト レベルのままにして、そのカテゴリの感度を次のように上げることができます。

"rai_settings": {
  "rai_category_configs": [
    {
      "category": "HARASSMENT",
      "sensitivity_level": "BLOCK_MOST"
    }
  ]
}