Questa pagina introduce la ricerca con follow-up per Vertex AI Search e mostra come implementarlo utilizzando le chiamate API.
Se vuoi aggiungere la ricerca con follow-up al widget di ricerca, consulta Configurare per il widget di ricerca.
La ricerca con follow-up si applica alle app di ricerca con contenuti non strutturati dati 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 sugli agenti Vertex AI, consulta Introduzione a Agenti Vertex AI.
Informazioni sulla ricerca con follow-up
La ricerca con follow-up si basa su modelli di AI generativa. Ricerca con follow-up è diverso dai normali dati non strutturati rete di ricerca perché con Il follow-up prende in considerazione le 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.
Multi-turno: consente agli utenti di porre domande aggiuntive e ricevere pertinenti.
Esempio di ricerca con follow-up
Di seguito è riportato un esempio di ricerca con follow-up. Supponiamo che tu voglia sapere 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 una vacanza in Messico è durante l'asciutto. da novembre ad aprile.
Tu:qual è il tasso di cambio?
Ricerca con follow-up: 1 $ equivale a circa 17,65 peso messicani.
Tu: Qual è la temperatura media a dicembre?
Ricerca con follow-up:la temperatura media varia da 21 a 25 °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 standard non manterrebbe il contesto per fornire le tue temperature per il Messico.
Le conversazioni
Nella ricerca con follow-up, una conversazione è composta da query di testo fornite da un l'utente e le 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 i dati non strutturati viene mantenuta. Nel data store, 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 a seconda in base al tipo di app che possiedi.
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 le seguenti app siano attive:
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 del datastore associato con la tua app.
USER_PSEUDO_ID: si tratta di un identificatore univoco per il monitoraggio di un visitatore della 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 spazio dati associato alla tua app.
CONVERSATION_ID: un ID univoco per la conversazione, per 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 filtro un'espressione di base. Il valore predefinito è una stringa vuota. Il modo in cui crei il filtro varia a seconda che disponi di dati del sito web o dati non strutturati con metadati. Per ulteriori informazioni, consulta la sezione Filtro con domande aggiuntive.
Fai clic per vedere una risposta di esempio da 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 eseguire l'autenticazione su Vertex AI Agent Builder, configura le credenziali predefinite dell'applicazione. Per maggiori 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. Tu
per creare il filtro utilizzando le espressioni di filtro. Le espressioni di filtro che
varia a seconda che si tratti di dati del sito web o di dati non strutturati con
metadati.
Espressioni di filtro per i dati del sito web
Se hai un data store 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 indexing avanzato del sito 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.
Filtra espressioni per dati non strutturati con metadati
Se hai un data store 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 Filtrare la ricerca per
dati non strutturati per capire come utilizzare i metadati
filtra la ricerca ordinaria (senza follow-up). Puoi usare questi 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 della ricerca con follow-up è un riepilogo generato restituito
nel seguente paese: summaryText
. Esistono vari modi in cui puoi configurare la generazione
riassunto. Le sezioni sono descritte nelle sezioni seguenti:
- Ricevere citazioni con i risultati di ricerca
- Ignorare le query di attacco
- 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
Ricevi citazioni con i risultati di ricerca
Le citazioni, se specificate, sono numeri posizionati in linea in una ricerca riassunto. Questi numeri indicano i risultati di ricerca di frasi specifiche in il riepilogo.
Per ricevere le citazioni:
Segui la precedente sezione Archiviare conversazioni e scaricare chat risposta, tranne che nel passaggio 2. esegui 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 delle citazioni si riferiscono
i risultati di ricerca restituiti e sono indicizzati. Ad esempio, [1]
indica che la frase è attribuita al primo risultato di ricerca. [2, 3]
indica che
viene attribuita sia al secondo che al terzo risultato di ricerca.
Ignorare le query avversarie
Le query di tipo adversarial includono commenti negativi o sono progettate per generare output non sicuri e in violazione delle norme. Puoi specificare che i riepiloghi delle ricerche non debbano
per le query avversarie. 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 di ricerca vengono restituiti per le query dirette anche se i riepiloghi della 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 parte della risposta di un antagonista query.
"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 eseguono la ricerca di riepilogo restituiscono risultati non adatti a riassunto. Ad esempio, "perché il cielo è blu?" e "Chi è il miglior calcio in tutto il mondo?" sono query di ricerca di riepilogo, ma "aeroporto SFO" e "mondo tazza 2026" non lo sono. Molto probabilmente si tratta di query di navigazione. Puoi specificare che non vengano restituiti riepiloghi delle ricerche per le query di ricerca non di riepilogo. I documenti della 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 precedente sezione Archiviare conversazioni e scaricare chat risposta, tranne che nel passaggio 2. esegui 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 parte della risposta di un antagonista query.
"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 dei migliori risultati per generare riassunto 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 per la personalizzazione come negli esempi seguenti:
Esempio di istruzione:
"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
Esempio di istruzione:
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 personalizzata, come stringa.
Applicare SafeSearch alle risposte della chat
SafeSearch può essere utilizzato per filtrare i contenuti espliciti, non sicuri e che violano le 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 data store
Per ottenere tutti i dettagli su 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 del datastore associato con la tua app.
CONVERSATION_ID: l'ID della conversazione
Fai clic per vedere una risposta di esempio da 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 conversazione specifica, ad esempio se contiene accidentalmente contenuti sensibili, utilizza questa chiamata API per eliminarla.
Per eliminare una conversazione da un datastore:
Esegui questo 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 del datastore associato con la tua app.
CONVERSATION_ID: l'ID della conversazione
La risposta dal comando
DELETE
è simile alla seguente:{}
Aggiornare una conversazione
Esistono vari motivi per cui potresti voler aggiornare una conversazione. Ad esempio, per eseguire una delle seguenti operazioni:
Contrassegnare una conversazione come completata
Unire i messaggi da una conversazione a un'altra
Modifica
user_pseudo_id
Per aggiornare state
in una conversazione:
Esegui questo 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 del datastore associato con la 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 questo 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 spazio dati associato alla tua app.
CONVERSATION_ID: l'ID della conversazione da aggiornare
NEW_USER_PSEUDO_ID: il nuovo valore per l'pseudo ID utente
Fai clic per vedere una risposta di esempio da 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 della risorsa Conversazione.
Elenca tutte le conversazioni
Per elencare tutte le conversazioni in un data store:
Esegui questo 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 spazio dati 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 next_page_token
. Se non viene restituito alcun valore next_page_token
, non ci sono altre conversazioni da elencare.
La dimensione predefinita della pagina è 50.
Elenco delle conversazioni per filtro
Anziché elencare tutte le conversazioni in un datastore, potresti voler elencare tutte le conversazioni aperte o tutte le conversazioni associate a un determinato utente.
Ad esempio, puoi presentare 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
).
Elencare le conversazioni di un utente
Per elencare le conversazioni associate a un utente o a un visitatore:
Esegui questo 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 spazio dati 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" } ] }
Elencare 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 spazio dati associato alla tua app.
USER_PSEUDO_ID: lo pseudo ID dell'utente le cui conversazioni che vuoi elencare.
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 dei filtri, consulta l'articolo AIP-160Filtering (Filtri 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 fare le vacanze in Messico?", oltre a rispondere alla tua domanda, la ricerca suggerisce altre domande che potresti porre, ad esempio "Qual è il mese più economico per fare le vacanze in Messico?" e "Quali sono i mesi di alta stagione in Messico?".
Se vuoi che l'app di ricerca restituisca domande correlate, contatta il tuo team dedicato all'account e indicare quali progetti e app vuoi ricevere domande correlate per i quali è stata abilitata la funzionalità. 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
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.