Questa pagina introduce la ricerca con follow-up per Vertex AI Search e mostra come implementarla utilizzando le chiamate API.
Se vuoi aggiungere la ricerca con follow-up al widget di ricerca, consulta Configurare i risultati per il widget di ricerca.
La ricerca con follow-up si applica alle app di ricerca con dati non strutturati e siti web.
La ricerca con follow-up non si applica alle app Vertex AI Agents. Le app Vertex AI Agents utilizzano un agente che può conversare sui contenuti con gli utenti finali. Per ulteriori informazioni su Vertex AI Agents, consulta Introduzione a Vertex AI Agents.
Informazioni sulla ricerca con follow-up
La ricerca con i follow-up si basa su modelli di AI generativa. La ricerca con follow-up è diversa dalla ricerca di dati non strutturati standard perché tiene conto delle query precedenti nella stessa sessione di ricerca.
La ricerca con follow-up supporta quanto segue:
Elaborazione delle query in linguaggio naturale:elabora e comprende l'input in linguaggio umano, identifica lo scopo di una query e restituisce risultati pertinenti.
Sensibilità al contesto:comprende il contesto delle interazioni precedenti e fornisce risposte sensibili al contesto.
Più turni:consente agli utenti di porre domande di follow-up e di ricevere risposte pertinenti.
Esempio di ricerca con follow-up
Di seguito è riportato un esempio di ricerca con follow-up. Supponiamo che tu voglia sapere di più sulle vacanze in Messico:
Tu: Qual è il periodo migliore dell'anno per fare una vacanza in Messico?
Ricerca con follow-up: il periodo migliore per fare le vacanze in Messico è durante la stagione secca, da novembre ad aprile.
Tu: Qual è il tasso di cambio?
Ricerca con follow-up: 1 dollaro statunitense equivale a circa 17,65 pesos messicani.
Tu: Qual è la temperatura media a dicembre?
Ricerca con follow-up: la temperatura media varia da 21 a 26 °C. La temperatura media di Cancún è di circa 25 °C.
Con la ricerca normale, la tua domanda "Qual è il tasso di cambio?" non avrebbe risposta perché la ricerca normale non saprebbe che ti interessa il tasso di cambio messicano. Analogamente, una ricerca normale non manterrebbe il contesto per fornirti le temperature del Messico.
Le conversazioni
Nella ricerca con follow-up, una conversazione è composta da query di testo fornite da un utente e risposte fornite da Vertex AI Search.
Queste coppie di query e risposta sono a volte chiamate messaggi. Nell'esempio precedente, il secondo messaggio è composto da "Qual è il tasso di cambio?" e "1 dollaro statunitense equivale a circa 17,65 pesos messicani".
Le conversazioni vengono archiviate nello stesso datastore in cui vengono conservati i dati non strutturati. Nel datastore, una conversazione è rappresentata dalla risorsa Conversazione. Oltre a contenere i messaggi di query e risposta, la risorsa conversazione include:
Un nome univoco (l'ID conversazione).
Uno stato (in corso o completato).
Uno pseudo ID utente, ovvero un ID visitatore che monitora l'utente. Può essere assegnata in modo programmatico.
Un'ora di inizio e un'ora di fine.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti. I requisiti variano in base al tipo di app.
Se hai un'app di ricerca non strutturata, assicurati che siano attive le seguenti opzioni: Funzionalità LLM avanzate
Se hai un'app di ricerca di siti web, assicurati che siano attive le seguenti opzioni:
Memorizzare le conversazioni e ricevere risposte
Puoi utilizzare la riga di comando o le librerie client per generare risposte alla ricerca e per memorizzare la conversazione di ricerca con follow-up.
REST
Per utilizzare la riga di comando per creare una conversazione e generare risposte dall'input dell'utente:
Specifica il datastore in cui vuoi archiviare la cronologia delle conversazioni:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations" \ -d '{ "user_pseudo_id": "USER_PSEUDO_ID" }'
PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud
DATA_STORE_ID: l'ID dello datastore associato alla tua app.
USER_PSEUDO_ID: si tratta di un identificatore univoco per monitorare un visitatore proveniente dalla rete di ricerca. Ad esempio, puoi implementarlo con un cookie HTTP, che identifica in modo univoco un visitatore su un singolo dispositivo.
Fai clic per un esempio di risposta del comando
POST
.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "startTime": "2023-08-15T20:08:12.094639Z" }
Genera una risposta alla ricerca e aggiungila a una conversazione nuova o esistente nel tuo datastore:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "filter": "FILTER" }'
PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud
DATA_STORE_ID: l'ID dello datastore associato alla tua app.
CONVERSATION_ID: un ID univoco per la conversazione, ad esempio
123456
. Per una conversazione con ricerca e follow-up, utilizza lo stesso ID conversazione in ogni turno.FREE_TEXT: una stringa di testo libera contenente la domanda dell'utente, ad esempio
what is bigquery?
FILTER: un campo di testo per filtrare la ricerca utilizzando un'espressione di filtro. Il valore predefinito è una stringa vuota. Il modo in cui costruisci il filtro varia a seconda che tu abbia dati del sito web o dati non strutturati con metadati. Per saperne di più, consulta Filtrare la ricerca con i follow-up.
Fai clic per un esempio di risposta del comando
POST
.{ "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } }, "conversation": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }, "searchResults": [ { "id": "c86f19582746b56f71c9bb6929893835", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/c86f19582746b56f71c9bb6929893835", "id": "c86f19582746b56f71c9bb6929893835", "derivedStructData": { "link": "gs://aquamuse-data-ucs-eval-dev/documents/94627ee0249dfdfda25b1b158c717bca.txt", "snippets": [ { "snippet_status": "SUCCESS", "snippet": "For larger websites, talk to the IT team and/or utilize a big data solution such as Google \u003cb\u003eBigQuery\u003c/b\u003e to extract all URLs. It may also be necessary to ask the ..." } ], "extractive_answers": [ { "content": "Alternatively, load the Server Log Files into Google BigQuery and use the Google BigQuery interface or the 360 Data Studio to analyze the data. To monitor the indexation numbers of the HTTP and the HTTPS version, keep an eye on all submitted XML Sitemaps." } ] } } }, { "id": "774bd7ce2a3509ab4bbd1fc876f39dc2", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/774bd7ce2a3509ab4bbd1fc876f39dc2", "id": "774bd7ce2a3509ab4bbd1fc876f39dc2", "derivedStructData": { "snippets": [ { "snippet": "No snippet is available for this page.", "snippet_status": "NO_SNIPPET_AVAILABLE" } ], "extractive_answers": [ { "content": "This consists of a collection of virtual tables. A virtual table exists for every queryable object type (content type if you prefer) in the repository. Each row in these virtual tables correspond to an instance of the corresponding object type (or of one of its subtypes)." } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/28841ef8590a105e9415f1390648a811.txt" } } }, { "id": "3e1d306e49aefd9e23f2d5f7a66e6c76", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/3e1d306e49aefd9e23f2d5f7a66e6c76", "id": "3e1d306e49aefd9e23f2d5f7a66e6c76", "derivedStructData": { "snippets": [ { "snippet": "No snippet is available for this page.", "snippet_status": "NO_SNIPPET_AVAILABLE" } ], "extractive_answers": [ { "content": "Other logo switches are based on search terms. For instance, if the term "ASCII art" is searched, an ASCII art version of the Google logo will appear next to the search box." } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/98008df3eef5d3ee1661c52f23189190.txt" } } }, { "id": "cf94e24aacd47cd2c2f5effcbdeda832", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/cf94e24aacd47cd2c2f5effcbdeda832", "id": "cf94e24aacd47cd2c2f5effcbdeda832", "derivedStructData": { "extractive_answers": [ { "content": "The company is listed on the NASDAQ stock exchange under the ticker symbols GOOGL and GOOG, and on the Frankfurt Stock Exchange under the ticker symbol GGQ1. These ticker symbols now refer to Alphabet Inc., Google's holding company, since the fourth quarter of 2015." } ], "snippets": [ { "snippet": "No snippet is available for this page.", "snippet_status": "NO_SNIPPET_AVAILABLE" } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/d80204083ef1096799fa4b7257548b33.txt" } } }, { "id": "05bc6497a4e7e6ca36b2e495b354b764", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/05bc6497a4e7e6ca36b2e495b354b764", "id": "05bc6497a4e7e6ca36b2e495b354b764", "derivedStructData": { "extractive_answers": [ { "content": "SQL injection countermeasures are designed to utilize secure programming methods. By changing the variables used by the application code, weaknesses in applications can be greatly minimized. This report will detail how to perform a SQL injection and explore the best countermeasures to prevent the attack." } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/7cba75d646f5774a21d96801bec68bb3.txt", "snippets": [ { "snippet_status": "NO_SNIPPET_AVAILABLE", "snippet": "No snippet is available for this page." } ] } } } ] }
Ripeti il passaggio 2 per ogni nuova domanda nella conversazione.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python Vertex AI Agent Builder.
Per autenticarti in Vertex AI Agent Builder, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Filtrare la ricerca con i follow-up
Quando esegui una query con la ricerca con follow-up, puoi includere il campo filter
per limitare il pool di documenti da cui viene ricavata una risposta. Puoi
costruire il filtro utilizzando le espressioni di filtro. Le espressioni di filtro che utilizzi variano a seconda che tu abbia dati del sito web o dati non strutturati con metadati.
Espressioni di filtro per i dati del sito web
Se hai un datastore con dati del sito web, puoi filtrare la ricerca con la query di follow-up utilizzando le espressioni di filtro in Espressioni di filtro con
indicizzazione avanzata dei siti web. Dopo aver
costruito l'espressione del filtro, utilizzala per il valore del campo filter
nel
passaggio 2 di Archiviare le conversazioni e ricevere risposte.
Espressioni di filtro per dati non strutturati con metadati
Se hai un datastore con dati non strutturati con metadati, puoi filtrare la ricerca con la query di follow-up in modo che restituisca i documenti in base ai campi dei metadati che contengono. Consulta la sezione Filtrare la ricerca per dati strutturati o non strutturati per capire come utilizzare i metadati per filtrare la ricerca ordinaria (senza follow-up). Puoi utilizzare gli stessi principi per utilizzare i metadati per filtrare la ricerca con i follow-up. Dopo aver creato l'espressione di filtro, utilizzala per il valore del campo filter
nel passaggio 2 di Archiviare le conversazioni e ricevere risposte.
Configurare il riepilogo
Il messaggio di risposta dalla ricerca con follow-up è un riepilogo generato restituito
in summaryText
. Esistono diversi modi per configurare il riepilogo generato. Questi sono descritti nelle sezioni seguenti:
- Ricevere citazioni con i risultati di ricerca
- Ignorare le query contraddittorie
- Ignorare le query di ricerca non di riepilogo
- Impostare il numero di risultati da utilizzare nel riepilogo
- Ricevere riepiloghi personalizzati
- Applicare SafeSearch alle risposte di Chat
Ricevere citazioni con i risultati di ricerca
Le citazioni, se specificate, sono numeri inseriti in linea nel riepilogo della ricerca. Questi numeri indicano da quali risultati di ricerca sono tratte frasi specifiche nel riepilogo.
Per ottenere citazioni:
Segui la procedura precedente per archiviare le conversazioni e ricevere risposte via chat, tranne che al passaggio 2, dove devi eseguire questo comando che include il campo
summarySpec
che impostaincludeCitations
su true.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "include_citations": true } }'
Fai clic per visualizzare parte della risposta di un comando di esempio.
{ "reply": { "summary": { } "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly [1]. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data [2, 3].", "safetyAttributes": { "categories": [ "Finance", "Legal" ] …
I numeri delle citazioni sono inclusi nel testo del riepilogo. I numeri di citazione si riferiscono ai risultati di ricerca restituiti e sono indicizzati da 1. Ad esempio, [1]
indica che la frase è attribuita al primo risultato di ricerca. [2, 3]
significa che la frase è attribuita sia al secondo che al terzo risultato di ricerca.
Ignorare le query contraddittorie
Le query di tipo adversarial includono commenti negativi o sono progettate per generare output non sicuri e in violazione delle norme. Puoi specificare che non devono essere restituiti riepiloghi della ricerca per le query dirette. Quando una query nemica viene ignorata, la proprietà summaryText
contiene un testo boilerplate che indica che non viene restituito alcun riepilogo della ricerca. I documenti della rete di ricerca vengono restituiti per le query dirette anche se i riepiloghi della rete di ricerca non lo sono.
Per specificare che non devono essere restituiti riepiloghi della ricerca per le query di attacco:
Segui la procedura precedente per archiviare le conversazioni e ricevere risposte via chat, tranne che al passaggio 2, dove devi eseguire questo comando che include il campo
summarySpec
che impostaignoreAdversarialQuery
su true.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "ignoreAdversarialQuery": true } }'
Fai clic per visualizzare parte della risposta di una query di attacco.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "ADVERSARIAL_QUERY_IGNORED" ] …
Ignora le query di ricerca non di riepilogo
Le query che non cercano un riepilogo restituiscono risultati non adatti per la sintesi. Ad esempio, "Perché il cielo è blu" e "Chi è il miglior calciatore al mondo?" sono query che cercano un riepilogo, ma non lo sono "Aeroporto di San Francisco" e "Coppa del mondo 2026". Si tratta molto probabilmente di query di navigazione. Puoi specificare che non vengano restituiti riepiloghi della ricerca per le query di ricerca non di riepilogo. I documenti di ricerca vengono restituiti per le query di ricerca non relative ai riepiloghi, anche se i riepiloghi della ricerca non vengono restituiti.
Per specificare che non devono essere restituiti riepiloghi della ricerca per le query di ricerca non riepilogative:
Segui la procedura precedente per archiviare le conversazioni e ricevere risposte via chat, tranne che al passaggio 2, dove devi eseguire questo comando che include il campo
summarySpec
che impostaignoreNonSummarySeekingQuery
su true.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "ignore_non_summary_seeking_query": true } }'
Fai clic per visualizzare parte della risposta di una query di attacco.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "NON_SUMMARY_SEEKING_QUERY_IGNORED" ] …
Imposta il numero di risultati da utilizzare nel riepilogo
Puoi specificare il numero di risultati da utilizzare per generare il riepilogo. Per impostazione predefinita, se il campo summaryResultCount
non è impostato, tutti i risultati restituiti vengono utilizzati per generare il riepilogo.
Per impostare il numero di risultati principali da utilizzare per il riepilogo:
Segui la procedura precedente per organizzare conversazioni in negozio e ricevere risposte via chat, tranne che al passaggio 2, dove devi eseguire questo comando che include il campo
summarySpec
che impostasummaryResultCount
.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "summary_result_count": NUMBER_OF_RESULTS } }'
NUMBER_OF_RESULTS: il numero di risultati principali da cui generare il riepilogo della ricerca. Se il numero di risultati restituiti è inferiore a
summaryResultCount
, il riepilogo viene generato da tutti i risultati. Il valore massimo è5
.
Ricevere riepiloghi personalizzati
Puoi ottenere riepiloghi personalizzati fornendo istruzioni in linguaggio naturale nel
campo modelPromptSpec.preamble
quando richiedi un riepilogo.
Puoi richiedere personalizzazioni come lunghezza e livello di dettaglio, stile di output (ad es. "semplice"), lingua di output, punto focale della risposta e formato (ad es. tabelle, elenchi puntati e XML).
Ad esempio, per la query "Quali sono i vantaggi di BigQuery?", puoi inserire istruzioni di personalizzazione come gli esempi riportati di seguito:
Istruzioni di esempio:
"please show the answer format in an ordered list"
Risposta di esempio:
The benefits of BigQuery are: 1. Increased business productivity 2. IT staff productivity 3. Reduced infrastructure costs 4. Loading and exporting data are free
Istruzioni di esempio:
give a very detailed answer
Risposta di esempio:
BigQuery is a serverless, highly scalable, and cost-effective cloud data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that takes care of provisioning, scaling, and managing the underlying infrastructure, so you can focus on analyzing your data. BigQuery is also integrated with other Google Cloud services, such as Google Kubernetes Engine, Cloud Data Fusion, and Cloud Dataproc, making it easy to build and deploy data pipelines. Here are some of the benefits of using BigQuery: * **Fast and scalable:** BigQuery can process petabytes of data very quickly, and it can scale to handle even the most demanding workloads. * **Cost-effective:** BigQuery is a very cost-effective way to store and analyze data. You only pay for the data that you use, and there are no upfront costs or commitments. * **Secure:** BigQuery is a secure platform that meets the needs of even the most security-conscious organizations. * **Easy to use:** BigQuery is easy to use, even for non-technical users. It has a simple and intuitive user interface, and it supports a variety of data sources. * **Integrated with other Google Cloud services:** BigQuery is integrated with other Google Cloud services, making it easy to build and deploy data pipelines. If you are looking for a fast, scalable, and cost-effective way to analyze your data, then BigQuery is a great option.
Per ottenere un riepilogo personalizzato:
Segui la procedura precedente per archiviare le conversazioni e ricevere risposte via chat, tranne che al passaggio 2, dove devi eseguire questo comando che include il campo
summarySpec
che specifica l'istruzione di personalizzazione inmodelPromptSpec.preamble
.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "modelPromptSpec": { "preamble": "CUSTOMIZATION_INSTRUCTIONS" } } }'
- CUSTOMIZATION_INSTRUCTIONS: l'istruzione per la personalizzazione, come stringa.
Applicare SafeSearch alle risposte della chat
SafeSearch può essere utilizzato per filtrare i contenuti espliciti, non sicuri e in violazione delle norme dalle risposte di riepilogo. Per ulteriori informazioni su SafeSearch, consulta Impostazioni di sicurezza per Vertex AI Search.
Per applicare la ricerca sicura a una risposta di chat:
Segui la procedura precedente per salvare le conversazioni e ricevere le risposte della chat, tranne che al passaggio 2, nella query specifica
safe_search
.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "safe_search": true }'
Visualizzare e modificare le conversazioni archiviate
Puoi utilizzare la riga di comando per recuperare, eliminare, aggiornare ed elencare le conversazioni memorizzate.
Recuperare una conversazione dal datastore
Per ottenere tutti i dettagli di una conversazione specifica da un datastore:
Esegui il seguente comando curl:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID"
PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud
DATA_STORE_ID:l'ID dello datastore associato alla tua app.
CONVERSATION_ID: l'ID della conversazione
Fai clic per un esempio di risposta del comando
GET
.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/2040473575290303058", "state": "IN_PROGRESS", "userPseudoId": "2040473575290303058", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:11:24.046735Z" }
Eliminare una conversazione dal datastore
Per impostazione predefinita, le conversazioni precedenti a 60 giorni vengono eliminate automaticamente. Tuttavia, se vuoi eliminare una determinata conversazione, ad esempio se contiene accidentalmente contenuti sensibili, utilizza questa chiamata API per eliminarla.
Per eliminare una conversazione da un datastore:
Esegui il seguente comando curl:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID"
PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud
DATA_STORE_ID: l'ID dello datastore associato alla tua app.
CONVERSATION_ID: l'ID della conversazione
La risposta del comando
DELETE
è la seguente:{}
Aggiornare una conversazione
Esistono diversi motivi per cui potresti voler aggiornare una conversazione. Ad esempio, per eseguire una delle seguenti operazioni:
Contrassegnare una conversazione come completata
Unire i messaggi di una conversazione in un'altra
Modifica
user_pseudo_id
Per aggiornare il state
in una conversazione:
Esegui il seguente comando curl:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID?updateMask=state" \ -d '{ "state": "NEW_STATE" }'
PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud
DATA_STORE_ID: l'ID dello datastore associato alla tua app.
CONVERSATION_ID: l'ID della conversazione da aggiornare
NEW_STATE: il nuovo valore per lo stato, ad esempio
COMPLETED
Fai clic per un esempio di risposta del comando
PATCH
.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "COMPLETED", "userPseudoId": "test_id1", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }
Per aggiornare il user_pseudo_id
in una conversazione:
Esegui il seguente comando curl:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID?updateMask=user_pseudo_id" \ -d '{ "user_pseudo_id": "NEW_USER_PSEUDO_ID" }'
PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud
DATA_STORE_ID: l'ID dello datastore associato alla tua app.
CONVERSATION_ID: l'ID della conversazione che vuoi aggiornare
NEW_USER_PSEUDO_ID: il nuovo valore per l'pseudo ID utente
Fai clic per un esempio di risposta del comando
PATCH
.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id1", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }
Il comando precedente mostra come modificare user_pseudo_id.
. Tuttavia, puoi aggiornare altri campi della conversazione sostituendo user_pseudo_id
con altri campi nella risorsa Conversazione.
Elenca tutte le conversazioni
Per elencare tutte le conversazioni in un datastore:
Esegui il seguente comando curl:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations"
PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud
DATA_STORE_ID: l'ID dello datastore associato alla tua app.
Fai clic per un esempio di risposta del comando
GET
.{ "conversations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }, { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/2040473575290303058", "state": "IN_PROGRESS", "userPseudoId": "2040473575290303058", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ] } ] }
La risposta contiene un elenco di conversazioni e il next_page_token
. Se non viene restituito alcun valore next_page_token
, non ci sono altre conversazioni da elencare.
Le dimensioni della pagina predefinite sono 50.
Elenco delle conversazioni per filtro
Anziché elencare tutte le conversazioni in un datastore, potresti elencare tutte le conversazioni aperte o tutte le conversazioni associate a un determinato utente.
Ad esempio, potresti mostrare all'utente le sue ricerche chiuse con un'opzione per riaprirne una.
Per farlo, elenca le conversazioni che corrispondono a un determinato filtro:
user_pseudo_id
o
state
(IN_PROGRESS
o COMPLETED
).
Elenca le conversazioni per un utente
Per elencare le conversazioni associate a un utente o un visitatore:
Esegui il seguente comando curl:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations?filter=user_pseudo_id=USER_PSEUDO_ID"
PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud
DATA_STORE_ID: l'ID dello datastore associato alla tua app.
USER_PSEUDO_ID: lo pseudo ID dell'utente di cui vuoi elencare le conversazioni.
La risposta del comando
GET
è simile alla seguente:Fai clic per un esempio di risposta del comando
GET
.{ "conversations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" } ] }
Elenca le conversazioni per un utente e uno stato
Per elencare le conversazioni in un determinato stato (aperto o chiuso) e associate a un utente o un visitatore:
Esegui il seguente comando curl:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/conversations?filter=user_pseudo_id=USER_PSEUDO_ID%20AND%20state=STATE"
PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud
DATA_STORE_ID: l'ID dello datastore associato alla tua app.
USER_PSEUDO_ID: lo pseudo ID dell'utente di cui vuoi elencare le conversazioni.
STATE: indica se la conversazione è aperta o chiusa (
IN_PROGRESS
oCOMPLETED
)
La risposta del comando
GET
è simile alla seguente:Fai clic per un esempio di risposta del comando
GET
.{ "conversations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" } ] }
Per informazioni generali sulla sintassi di filtro, consulta Filtro AIP-160.
Domande correlate
Domande correlate è una funzionalità di Anteprima con lista consentita che può restituire domande correlate oltre ai risultati di ricerca.
Ad esempio, quando chiedi "Qual è il periodo migliore dell'anno per andare in vacanza in Messico?", oltre a rispondere alla tua domanda, la ricerca suggerisce altre domande che potresti porre, ad esempio "Qual è il mese più economico per andare in vacanza in Messico?" e "Quali sono i mesi di alta stagione in Messico?".
Se vuoi che la tua app di ricerca restituisca domande correlate, contatta il team degli Account Google e indica i progetti e le app per i quali vuoi attivare le domande correlate. Se non utilizzi la configurazione di pubblicazione predefinita, devi fornire anche il nome della configurazione di pubblicazione.
Una volta attivata la funzionalità delle domande correlate, le domande vengono restituite come stringhe in ConverseConversationResponse
.
Ulteriori informazioni
Per ulteriori informazioni sui campi
summaryResultCount
,includeCitations
,ignoreAdversarialQuery
,ignoreNonSummarySeekingQuery
, consulta SummarySpec nella documentazione dell'API Vertex AI Agent Builder.Per altri esempi su come ottenere i riepiloghi della ricerca, vedi Generare riepiloghi.