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

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

ドキュメントのフィルタ

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

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

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

  1. Datastore ツールページの指示に沿って、Datastore をエージェントに追加します。
  2. AI アプリケーション ページで、[データストア] > [+ データストアを作成] をクリックします。
  3. [Cloud Storage] に移動して、[選択] をクリックします。
  4. [ファイル] をクリックし、Cloud Storage 内のファイルのパスを入力するか、[参照] をクリックしてファイルを選択します。
  5. [インポートするデータの種類] に移動し、[リンクされた非構造化ドキュメント(JSONL とメタデータ)] を選択します。
  6. [データ インポート オプション] に移動し、[完全] を選択します。
  7. [インポート] をクリックします。
  8. Datastore を作成したら、Documents テーブルを表示します。表には、各ドキュメントと次の詳細が表示されます。
    • 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 フィールドを適用することもできます。フィルタ式のその他の例については、Vertex AI Search のドキュメントをご覧ください。

{
  "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 を使用し、SearchKnowledge 呼び出しに会話 ID を関連付けます。

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
  • Format: 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"
    }
  ]
}