Filtrare le ricerche in base alla pertinenza a livello di documento

Quando esegui ricerche nell'app Vertex AI Search, puoi specificare filtri di pertinenza a livello di documento in modo che vengano restituiti come risultati solo i documenti che soddisfano la soglia del filtro. Questa pagina spiega i tipi di soglia, l'importanza di ottimizzarla e come specificare i filtri di pertinenza e la relativa soglia.

Informazioni sul filtro per pertinenza a livello di documento

Quando una query di ricerca restituisce un risultato, assegna un livello di pertinenza a ogni documento recuperato. Nella richiesta di ricerca, puoi impostare una soglia per restituire solo i documenti che soddisfano la soglia del filtro. L'impostazione di una soglia elevata può ridurre il numero di documenti restituiti dalla query. mentre l'impostazione di una soglia bassa può diluire i risultati con documenti poco pertinenti alla query dell'utente.

Pertanto, se ritieni che il risultato contenga troppi documenti di pertinenza insufficiente per i tuoi utenti, imposta una soglia di pertinenza elevata per restringere i risultati solo a quelli più pertinenti. Se una soglia elevata è troppo restrittiva, puoi abbassarla a un valore più ottimale.

Tipi di ricerche

Puoi applicare i filtri di pertinenza ai seguenti tipi di ricerche:

  • Ricerca per parola chiave: recupera i documenti in base alla ricerca per parola chiave.
  • Ricerca per somiglianza semantica: recupera i documenti in base agli embedding.

Nella definizione del filtro per pertinenza, puoi specificare il tipo di soglia per ciascuna di queste ricerche. La ricerca recupera i documenti per la ricerca specificata e poi applica la soglia indicata.

Tipi di soglia

Quando invii la richiesta di ricerca, puoi specificare uno dei seguenti tipi di soglia per la ricerca di parole chiave e di somiglianza semantica.

  • Soglia di pertinenza: quando imposti questa soglia, la ricerca utilizza un modello proprietario per determinare la pertinenza di un documento. In questo caso, la ricerca potrebbe utilizzare qualsiasi indicatore pertinente, come il punteggio di somiglianza delle parole chiave, il punteggio di attualità e il punteggio di somiglianza semantica.

    La soglia di pertinenza è un'impostazione generica che consente i seguenti valori: HIGH, MEDIUM, LOW e LOWEST. Una soglia HIGH potrebbe restituire meno documenti con un punteggio di pertinenza elevato, mentre la soglia LOWEST potrebbe restituire più documenti che potrebbero non essere pertinenti alla query di ricerca.

  • Soglia di pertinenza semantica: quando imposti questa soglia, il filtro si basa esclusivamente sul punteggio di similarità semantica per determinare la pertinenza di un documento.

    La soglia di pertinenza semantica è un'impostazione granulare ed è un valore di rappresentazione in virgola mobile compreso nell'intervallo [0,1]. Se imposti la soglia su zero, vengono restituiti tutti i documenti, mentre se la imposti su uno, vengono restituiti i documenti più pertinenti.

Definizione ed esempio del filtro Pertinenza

Per definire i filtri di pertinenza nella richiesta di ricerca, specifica un solo tipo di soglia (soglia di pertinenza e soglia di pertinenza semantica) per ogni tipo di ricerca (ricerca per parole chiave e ricerca semantica). Puoi specificare uno o entrambi i tipi di ricerca all'interno della specifica del filtro per pertinenza. Tuttavia, deve essere definito un solo tipo di soglia all'interno di ogni tipo di ricerca. Ad esempio, considera quanto segue:

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

In questa richiesta di ricerca, i risultati vengono restituiti in due fasi: recupero e filtraggio.

  • La ricerca recupera i documenti in base alla corrispondenza delle parole chiave e poi li filtra con una soglia di pertinenza bassa. In questo modo viene restituito un numero elevato di documenti recuperati.
  • Contemporaneamente, la ricerca recupera i documenti in base alla somiglianza semantica e poi li filtra con una soglia di pertinenza semantica elevata di 0.871. In questo modo vengono restituiti meno documenti recuperati.

L'enfasi della ricerca è più sulla corrispondenza delle parole chiave che sulla somiglianza semantica. I filtri consentono di recuperare più documenti grazie alla corrispondenza delle parole chiave.

Allo stesso modo, puoi definire il filtro di pertinenza nel seguente modo per restituire meno documenti con parole chiave corrispondenti e più documenti con similarità semantica.

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

Tipi di dati e app supportati per il filtro di pertinenza a livello di documento

Il filtro per pertinenza a livello di documento può essere applicato ai datastore con i seguenti tipi di dati:

  • Dati del sito web con indicizzazione avanzata dei siti web
  • Dati non strutturati personalizzati
  • Dati strutturati personalizzati

Il filtro per pertinenza a livello di documento non funziona per i datastore con indicizzazione di base dei siti web, dati multimediali o dati sanitari.

Inoltre, il filtro per pertinenza a livello di documento non può essere utilizzato con le app di ricerca mista. Le app di ricerca combinata sono app connesse a più datastore.

Altri tipi di filtri

Il filtro per pertinenza a livello di documento non è l'unico modo per filtrare i dati restituiti dalle query. Puoi anche utilizzare le espressioni di filtro per filtrare i risultati in base ai metadati (nei datastore di indicizzazione avanzata dei siti web e dati non strutturati con metadati) e ai valori dei campi (nei datastore strutturati).

Per informazioni, vedi:

Se utilizzi sia un'espressione di filtro sia il filtro per pertinenza a livello di documento, l'espressione di filtro viene applicata prima ai risultati, poi viene applicato il filtro per pertinenza a livello di documento.

Prima di iniziare

Assicurati di aver creato un'app e un datastore e di aver importato i dati nel datastore. Per ulteriori informazioni, vedi Creare un'app di ricerca. Vedi anche Tipi di dati e app supportati per il filtro di pertinenza a livello di documento.

Per filtrare in base alla pertinenza:

  1. Trova l'ID app. Se hai già l'ID app, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications.

      Vai ad App

    2. Nella pagina App, trova il nome della tua app e recupera il relativo ID dalla colonna ID.

  2. Per filtrare la ricerca in base alla pertinenza a livello di documento, specifica il campo relevanceFilterSpec che definisce un solo tipo di soglia per ogni tipo di ricerca utilizzando il metodo engines.servingConfigs.search. ovvero puoi specificare relevanceThreshold o semanticRelevanceThreshold per un determinato tipo di ricerca.

    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
      }
    }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • APP_ID: l'ID dell'app Vertex AI Search che vuoi interrogare.
    • QUERY: il testo della query da cercare.
    • RELEVANCE_THRESHOLD: uno dei seguenti valori: HIGH, MEDIUM, LOW, LOWEST.
    • SEMANTIC_RELEVANCE_THRESHOLD: un valore in virgola mobile compreso nell'intervallo [0,1].
  3. Testa più query con soglie diverse per determinare le migliori impostazioni di soglia per i tuoi dati e la tua applicazione.