Filtra con comprensione del linguaggio naturale

Questa pagina spiega come applicare la comprensione del linguaggio naturale per creare automaticamente filtri per le query di ricerca e, di conseguenza, migliorare la qualità dei risultati restituiti.

Puoi utilizzare questa funzionalità con le app di ricerca collegate ai datastore di dati strutturati.

Informazioni sulla comprensione delle query in linguaggio naturale

Se hai un'app di ricerca generica con dati strutturati, dei tuoi utenti le query in linguaggio naturale possono essere riformattate query. Questo può portare a risultati di ricerca di qualità migliore rispetto alla ricerca di parole nella stringa di query.

L'utilizzo della comprensione delle query in linguaggio naturale è più semplice e flessibile rispetto alla scrittura di espressioni di filtro personalizzate. Per informazioni sulla scrittura di espressioni di filtro, consulta Filtrare la ricerca generica per dati strutturati o non strutturati.

Questa funzionalità viene spiegata al meglio tramite degli esempi:

Esempio: estrazione di campi dalle query

Questa funzionalità di comprensione del linguaggio naturale viene spiegata attraverso l'esempio di ricerca di un dell'hotel.

Considera la seguente query effettuata su un datastore strutturati per il sito di un hotel: "Trovami un hotel adatto alle famiglie con almeno 4 stelle e meno costoso Più di 300 a notte, mi permette di portare il cane e la connessione Wi-Fi è gratuita."

Senza la comprensione delle query in linguaggio naturale, l'app di ricerca cerca i documenti che contengono le parole nella query.

Con la comprensione delle query in linguaggio naturale e i dati strutturati in modo appropriato, la ricerca viene resa più efficace sostituendo parte del linguaggio naturale nella query con i filtri. Se i dati strutturati hanno campi per star_rating (numeri), price (numeri) e amenities (stringhe), la query può essere riscritta come i seguenti filtri più una query residua:

  • Filtri estratti dalla query in linguaggio naturale:

    {
        "star_rating": ≥4,
        "price": ≤300,
        "amenities": "Wifi", "Pets Allowed"
    }
    
  • Query residua, riformulata dopo l'estrazione dei filtri:

    family-friendly

Esempio: con un filtro di geolocalizzazione

Questo esempio è simile al precedente, tranne per il fatto che include una geolocation, che è un tipo speciale di filtro estratto. Vertex AI Search è in grado di riconoscere le località in una query crea filtri di prossimità per le località.

Considera la seguente query effettuata a un sito aziendale a livello statale: "Trovami un hotel chic ed elegante con almeno 4 stelle a San Francisco".

Con la comprensione delle query in linguaggio naturale e il filtro di geolocalizzazione, la ricerca viene riformulata come filtri e una query residua:

  • Filtri estratti dalla query in linguaggio naturale, per almeno una valutazione a 4 stelle ed entro un raggio di 10 km da San Francisco:

    {
        "star_rating": ≥4,
        "location": GEO_DISTANCE(\"San Francisco, CA\", 10000)
    }
    

    In questo esempio, GEO_DISTANCE è un indirizzo, ma in altre query potrebbe essere scritta come latitudine e longitudine, anche se la query originale conteneva un indirizzo.

  • Query residua, riformulata dopo l'estrazione dei filtri:

    chic and stylish in San Francisco

    Anche se il filtro di geolocalizzazione è stato creato, il nome del luogo rimane nella query residuale. È diverso dagli altri filtri, come star_rating.

Limitazioni

Le seguenti limitazioni si applicano alla comprensione delle query in linguaggio naturale:

  • La comprensione delle query in linguaggio naturale non può essere applicata alle app di ricerca combinate. Tu ricevi un errore se provi a utilizzare la comprensione delle query in linguaggio naturale con un'app di ricerca combinata.

  • La comprensione delle query in linguaggio naturale funziona per qualsiasi app di ricerca generica che utilizza i dati strutturati. Tuttavia, Google sconsiglia di utilizzare questa funzionalità con i seguenti tipi di dati strutturati:

    • Dati non strutturati con metadati
    • Dati del sito web con dati strutturati

    È improbabile che questa funzionalità produca buoni risultati se applicata a questi tipi di dati strutturati, in quanto in genere non contengono contenuti, ma informazioni sulla natura dei contenuti.

  • L'utilizzo della comprensione delle query in linguaggio naturale aumenta la latenza, quindi potresti scegliere di non usarla se la latenza è un problema.

  • Per la geolocalizzazione, la posizione deve essere descritta esplicitamente. Non puoi utilizzare località come "qui vicino" o "casa".

  • Il raggio per la geolocalizzazione è di 10 km e non è configurabile.

Prima di iniziare

Prima di iniziare a utilizzare la comprensione delle query in linguaggio naturale, devi attivarla per gli archivi di dati collegati alle app che prevedi di utilizzare.

Per abilitare la comprensione delle query in linguaggio naturale, segui questi passaggi:

REST

  1. Individua l'ID datastore. Se hai già un datastore ID, vai al passaggio successivo.

    1. Nella console Google Cloud, vai alla pagina Agent Builder e nel menu di navigazione fai clic su Data Store.

      Vai alla pagina Datastore

    2. Fai clic sul nome del datastore.

    3. Individua l'ID datastore nella pagina Dati del datastore.

  2. Esegui il seguente comando curl:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID?update_mask=natural_language_query_understanding_config.mode" \
    -d '{
          "naturalLanguageQueryUnderstandingConfig": {
            "mode": "ENABLED"
          }
        }'
    
    • PROJECT_ID: l'ID del tuo progetto Google Cloud.
    • DATA_STORE_ID: l'ID del datastore di Vertex AI Search.
  3. Ripeti i passaggi 1 e 2 per ciascun datastore.

  4. Attendi circa 24 ore.

    Se provi a utilizzare la comprensione delle query in linguaggio naturale prima che il datastore sia pronto, la risposta che ottieni è lo stesso che se filterExtractionCondition fosse impostato su DISABLED.

Ricerca, conversione delle query in linguaggio naturale in filtri

Per cercare una query in linguaggio naturale e ottenere risultati ottimizzati per query in linguaggio naturale, procedi nel seguente modo:

REST

  1. Esegui il seguente comando curl, che chiama il metodo search:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED"
            }
          }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud.
    • APP_ID: l'ID dell'app Vertex AI Search di cui su cui vuoi eseguire una query. L'app deve essere collegata a un data store contenente dati strutturati o metadati. L'app non può essere un'app di ricerca combinata.
    • QUERY: la query è scritta in modo naturale lingua.

Ricerca, conversione delle località nelle query in filtri di geolocalizzazione

Per cercare una query in linguaggio naturale e ottenere risultati ottimizzati per per le query in linguaggio naturale, inclusa la vicinanza di luoghi, procedi nel seguente modo:

REST

  1. Esegui il seguente comando curl, che chiama il metodo search:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED",
              "geoSearchQueryDetectionFieldNames": ["GEO_FIELD_NAME_1", "GEO_FIELD_NAME_N"]"
            }
          }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud.
    • APP_ID: l'ID dell'app Vertex AI Search di cui su cui vuoi eseguire una query. L'app deve essere collegata a un data store contenente dati strutturati o metadati. L'app non può essere un'app di ricerca combinata.
    • QUERY: la query è scritta in modo naturale lingua.
    • GEO_FIELD_NAME_1, GEO_FIELD_NAME_N: un elenco di valori di tipo geolocation. Se il tipo di valore non è geolocation, questo campo viene ignorato.