Questa pagina spiega come applicare la comprensione del linguaggio naturale per creare automaticamente filtri per le query di ricerca e, di conseguenza, per migliorare la qualità dei risultati restituiti.
Puoi utilizzare questa funzionalità con le app di ricerca connesse a datastore di dati strutturati.
Informazioni sulla comprensione delle query in linguaggio naturale
Se hai un'app di ricerca personalizzata con dati strutturati, le query in linguaggio naturale dei tuoi utenti possono essere riformattate come query filtrate. In questo modo, i risultati di ricerca possono essere 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, vedi Filtrare la ricerca personalizzata per dati strutturati o non strutturati.
Questa funzionalità è spiegata al meglio attraverso esempi:
Esempio: estrazione di campi dalle query mostra i filtri dei campi estratti 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 attraverso l'esempio della ricerca di un hotel.
Prendi la seguente query eseguita su un datastore strutturati per un sito di hotel: "Trova un hotel adatto alle famiglie con almeno quattro stelle che costi meno di 300 a notte, che mi permetta 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 documenti che contengono le parole nella query.
Grazie alla comprensione delle query in linguaggio naturale e ai dati strutturati in modo appropriato, la ricerca è più efficace perché parte del linguaggio naturale nella query viene sostituito con 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à.
Considera la seguente query effettuata su un sito di attività commerciali a livello statale: "Trova un hotel chic ed elegante con almeno 4 stelle a San Francisco".
Grazie alla comprensione delle query in linguaggio naturale e al filtro di geolocalizzazione, la ricerca viene riformulata come filtri e una query residua:
Filtri estratti dalla query in linguaggio naturale, per almeno 4 stelle e in 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 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
Sebbene il filtro di geolocalizzazione sia stato creato, il nome del luogo rimane nella query residua. È diverso dagli altri filtri, ad esempio
star_rating
.
Limitazioni
Si applicano le seguenti limitazioni alla comprensione delle query in linguaggio naturale:
La comprensione delle query in linguaggio naturale non può essere applicata alle app di ricerca ibrida. Se provi a utilizzare la comprensione delle query in linguaggio naturale con un'app di ricerca ibrida, viene visualizzato un errore.
La comprensione delle query in linguaggio naturale funziona solo per le app di ricerca personalizzate che utilizzano datastore strutturati.
L'utilizzo della comprensione delle query in linguaggio naturale aumenta la latenza, quindi potresti scegliere di non utilizzarla se la latenza è un problema.
Per la geolocalizzazione, la posizione deve essere descritta in modo esplicito. Non puoi utilizzare posizioni come "vicino a me" 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 strutturati collegati alle app che prevedi di utilizzare.
Per attivare la comprensione delle query in linguaggio naturale:
REST
Trova l'ID datastore. Se hai già l'ID del tuo datastore, vai al passaggio successivo.
Nella Google Cloud console, vai alla pagina AI Applications e nel menu di navigazione, fai clic su Datastore.
Fai clic sul nome del tuo datastore.
Nella pagina Dati del datastore, recupera l'ID datastore.
Esegui questo 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" } }'
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo Google Cloud progetto.DATA_STORE_ID
: l'ID del datastore 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 l'datastore sia pronto, la risposta che ricevi è la stessa di quando
filterExtractionCondition
è impostato suDISABLED
.
Cerca, convertendo le 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 questo 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 Google Cloud progetto.APP_ID
: l'ID dell'app Vertex AI Search per cui vuoi eseguire query. L'app deve essere collegata a un datastore che contiene dati strutturati. L'app non può essere un'app di ricerca combinata.QUERY
: la query è scritta in linguaggio naturale.
Cerca, convertendo le 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 questo 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 Google Cloud progetto.APP_ID
: l'ID dell'app Vertex AI Search per cui vuoi eseguire query. L'app deve essere collegata a un datastore che contiene dati strutturati. L'app non può essere un'app di ricerca combinata.QUERY
: la query è scritta in 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.