依文件層級關聯性篩選搜尋結果

在 Vertex AI Search 應用程式中搜尋時,您可以指定文件層級的關聯性篩選條件,這樣系統只會傳回符合篩選條件門檻的文件。本頁面說明門檻類型、門檻最佳化的重要性,以及如何指定相關性篩選條件和門檻。

依文件層級關聯性篩選簡介

搜尋查詢傳回結果時,系統會為每個擷取的文件指派關聯程度。在搜尋要求中,您可以設定門檻,只傳回符合篩選門檻的文件。設定較高的門檻可減少查詢傳回的文件數量。但如果門檻設得太低,結果可能會出現與使用者查詢內容關聯性不高的文件。

因此,如果發現結果包含太多與使用者關聯性不足的文件,請設定較高的關聯性門檻,將結果縮減為最相關的少數文件。如果高閾值過於嚴格,可以調低至較合適的值。

搜尋類型

您可以對下列類型的搜尋套用相關性篩選器:

  • 關鍵字搜尋:根據關鍵字搜尋檢索文件。
  • 語意相似度搜尋:根據嵌入檢索文件。

在關聯性篩選器定義中,您可以為每項搜尋指定閾值類型。搜尋會擷取指定搜尋的文件,然後套用指定門檻。

閾值類型

傳送搜尋要求時,您可以為關鍵字和語意相似度搜尋指定下列其中一種門檻。

  • 關聯性門檻:設定這個門檻後,搜尋功能會使用專屬模型判斷文件關聯性。在這種情況下,搜尋可能會使用任何相關信號,例如關鍵字相似度分數、主題性分數和語意相似度分數。

    關聯性門檻是粗略的設定,允許下列值:HIGHMEDIUMLOWLOWESTHIGH 門檻可能會傳回較少高相關分數的文件,而 LOWEST 門檻可能會傳回更多與搜尋查詢不相關的文件。

  • 語意關聯性門檻:設定這個門檻後,篩選器只會根據語意相似度分數判斷文件關聯性。

    語意關聯性門檻是精細的設定,也是介於 0 到 1 之間的浮點值。將門檻設為零會傳回所有文件,設為一則會傳回最相關的文件。

關聯性篩選器定義和範例

如要在搜尋要求中定義相關性篩選器,請為每種搜尋類型 (關鍵字搜尋和語意搜尋) 指定一種門檻 (相關性門檻和語意相關性門檻)。您可以在相關性篩選器規格中指定其中一種或兩種搜尋類型。不過,每種搜尋類型只能定義一種門檻。舉例來說,你可以嘗試下列做法:

{
  "relevanceFilterSpec": {
    "keywordSearchThreshold":  {
      "relevanceThreshold": "LOW"
    },
    "semanticSearchThreshold":  {
      "semanticRelevanceThreshold": 0.871
    }
  }
}

在這項搜尋要求中,結果會分兩個階段傳回:擷取和篩選。

  • 搜尋作業會根據關鍵字比對結果擷取文件,然後以低相關性門檻篩選文件。這會傳回大量擷取的文件。
  • 同時,搜尋功能會根據語意相似度擷取文件,然後以 0.871 的高語意相關性門檻篩選文件。這樣一來,系統傳回的擷取文件就會比較少。

搜尋重點在於關鍵字比對,而非語意相似度。 篩選器會允許更多因關鍵字比對而擷取的文件。

同樣地,您可以按照下列方式定義關聯性篩選器,傳回較少含有相符關鍵字的文件,以及較多含有語意相似性的文件。

"relevanceFilterSpec": {
    "keywordSearchThreshold":  {
        "semanticRelevanceThreshold": 0.871
    },
    "semanticSearchThreshold":  {
        "relevanceThreshold": "LOW"
    }
}

文件層級關聯性篩選器支援的資料類型和應用程式

文件層級關聯性篩選器可套用至含有下列類型資料的資料庫:

  • 具備進階網站索引建立功能的網站資料
  • 自訂非結構化資料
  • 自訂結構化資料

文件層級相關性篩選器不適用於具有基本網站索引、媒體資料或醫療保健資料的資料存放區。

此外,文件層級相關性篩選器不適用於混合搜尋應用程式。混合搜尋應用程式是指連結至多個資料儲存庫的應用程式。

其他類型的篩選器

文件層級相關性篩選條件並非篩選查詢傳回資料的唯一方式。您也可以使用篩選運算式,根據中繼資料 (在進階網站索引和含中繼資料的非結構化資料儲存庫中) 和欄位值 (在結構化資料儲存庫中) 篩選結果。

詳情請參閱:

如果同時使用篩選運算式和文件層級關聯性篩選器,系統會先對結果套用篩選運算式,然後再套用文件層級關聯性篩選器。

事前準備

請確認您已建立應用程式和資料儲存庫,並將資料擷取至資料儲存庫。詳情請參閱「建立搜尋應用程式」。另請參閱「文件層級相關性篩選器支援的資料類型和應用程式」。

如要依相關性篩選,請按照下列步驟操作:

  1. 找出應用程式 ID。如果已有應用程式 ID,請跳到下一個步驟。

    1. 前往 Google Cloud 控制台的「AI Applications」頁面。

      前往「應用程式」

    2. 在「應用程式」頁面中找出應用程式名稱,然後從「ID」欄取得應用程式的 ID。

  2. 如要依文件層級相關性篩選搜尋結果,請使用 engines.servingConfigs.search 方法,指定 relevanceFilterSpec 欄位,為每種搜尋類型定義一種門檻。也就是說,您可以為特定類型的搜尋指定 relevanceThresholdsemanticRelevanceThreshold

    curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
     "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search",
    "query": "QUERY",
    "relevanceFilterSpec": {
      "keywordSearchThreshold":  {
          "relevanceThreshold": "RELEVANCE_THRESHOLD"
      },
      "semanticSearchThreshold":  {
          "semanticRelevanceThreshold": SEMANTIC_RELEVANCE_THRESHOLD
      }
    }
    }'
    

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案的 ID。
    • APP_ID:要查詢的 Vertex AI Search 應用程式 ID。
    • QUERY:要搜尋的查詢文字。
    • RELEVANCE_THRESHOLD:下列其中一項:HIGHMEDIUMLOWLOWEST
    • SEMANTIC_RELEVANCE_THRESHOLD:範圍 [0,1] 中的浮點值。
  3. 使用不同門檻測試多個查詢,找出最適合資料和應用程式的門檻設定。