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, le query in linguaggio naturale dei tuoi utenti possono essere riformattate come query filtrate. In questo modo puoi ottenere 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 su come scrivere espressioni di filtro, consulta Filtrare la ricerca generica per dati strutturati o non strutturati.
Questa funzionalità è meglio spiegata con esempi:
Esempio: estrazione dei campi dalle query mostra i filtri dei campi estratto dalla query.
Esempio: con un filtro di geolocalizzazione include il caso speciale del filtro di geolocalizzazione.
Esempio: estrazione dei campi dalle query
Questa funzionalità di comprensione delle query in linguaggio naturale viene spiegata nell'esempio della ricerca di un hotel.
Prendi la seguente query effettuata a un datastore strutturato per il sito di un hotel: "Trova un hotel adatto alle famiglie con almeno quattro stelle che costi meno di 300 € a notte, che mi consenta di portare il mio cane e che abbia il Wi-Fi gratuito."
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 a quello precedente, tranne per il fatto che include un filtro di geolocalizzazione, che è un tipo speciale di filtro estratto. Vertex AI Search è in grado di riconoscere le località in una query e creare filtri di prossimità per le località.
Prendi in considerazione la seguente query effettuata su un sito aziendale a livello di stato: "Trova un hotel elegante e alla moda 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 una classificazione di almeno 4 stelle e nel 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 scritto 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
Alla comprensione delle query in linguaggio naturale si applicano le seguenti limitazioni:
La comprensione delle query in linguaggio naturale non può essere applicata alle app di ricerca combinata. Viene visualizzato 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 solo per le app di ricerca generiche che utilizzano datastore di dati strutturati.
L'utilizzo della comprensione delle query in linguaggio naturale aumenta la latenza, pertanto potresti scegliere di non utilizzarla 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 accumuli di dati strutturati collegati alle app che prevedi di utilizzare.
Per attivare la comprensione delle query in linguaggio naturale:
REST
Trova l'ID del tuo datastore. Se hai già l'ID del tuo datastore, vai al passaggio successivo.
Nella console Google Cloud, vai alla pagina Agent Builder e nel menu di navigazione fai clic su Data Store.
Fai clic sul nome del tuo datastore.
Nella pagina Dati del tuo datastore, ottieni l'ID datastore.
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 dello datastore di Vertex AI Search.
Ripeti i passaggi 1 e 2 per ogni datastore.
Attendi circa 24 ore.
Se provi a utilizzare la comprensione delle query in linguaggio naturale prima che lo datastore sia pronto, la risposta che ricevi è la stessa che otterresti se
filterExtractionCondition
fosse impostato suDISABLED
.
Ricerca, conversione di query in linguaggio naturale in filtri
Per eseguire una ricerca su una query in linguaggio naturale e ottenere risultati ottimizzati per le query in linguaggio naturale, segui questi passaggi:
REST
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 su cui vuoi eseguire una query. L'app deve essere collegata a un datastore contenente dati strutturati. L'app non può essere un'app di ricerca combinata.QUERY
: la query è scritta in un linguaggio naturale.
Ricerca, conversione delle località nelle query in filtri di geolocalizzazione
Per eseguire una ricerca su una query in linguaggio naturale e ottenere risultati ottimizzati per le query in linguaggio naturale, inclusa la vicinanza alle località, procedi nel seguente modo:
REST
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 su cui vuoi eseguire una query. L'app deve essere collegata a un datastore contenente dati strutturati. L'app non può essere un'app di ricerca combinata.QUERY
: la query è scritta in un linguaggio naturale.GEO_FIELD_NAME_1, GEO_FIELD_NAME_N
: un elenco di valori di tipogeolocation
. Se il tipo di valore non ègeolocation
, questo campo viene ignorato.