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 Ricerca, consulta Configurare i risultati per il widget Ricerca.
La ricerca con follow-up si applica alle app di ricerca con dati non strutturati e siti web.
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 normale ricerca di dati non strutturati perché la ricerca con follow-up 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 l'intento alla base di una query e restituisce risultati pertinenti.
Consapevolezza del contesto: comprende il contesto delle interazioni precedenti e fornisce risposte sensibili al contesto.
Multi-turno:consente agli utenti di porre domande aggiuntive e ricevere risposte pertinenti.
Esempio di ricerca con follow-up
Di seguito è riportato un esempio di ricerca con follow-up. Supponiamo che tu voglia sapere informazioni sulle vacanze in Messico:
Tu: Qual è il periodo migliore dell'anno per andare in vacanza in Messico?
Ricerca con follow-up:il periodo migliore per andare in vacanza in Messico è la stagione secca, che va 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 tra 21 e 26 °C. La media di Cancún è di circa 25 °C.
Con la ricerca normale, la tua domanda "Qual è il tasso di cambio?" non avrebbe una risposta perché la ricerca normale non saprebbe che volevi il tasso di cambio messicano. Allo stesso modo, una ricerca normale non manterrebbe il contesto per fornirti le temperature per il Messico.
Le conversazioni
Nella ricerca con follow-up, una conversazione è costituita da query di testo fornite da un utente e dalle risposte fornite da Vertex AI Search.
Queste coppie di query e risposte 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 Conversation. Oltre a contenere i messaggi di query e risposta, la risorsa conversazione dispone di:
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 assegnato 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 che hai.
Se hai un'app di ricerca non strutturata, assicurati che sia attivata l'opzione: 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 di ricerca e per archiviare 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, segui questi passaggi:
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 Google Cloud progetto
DATA_STORE_ID: l'ID del datastore associato alla tua app.
USER_PSEUDO_ID: si tratta di un identificatore univoco per il monitoraggio di un visitatore della ricerca. Ad esempio, puoi implementarlo con un cookie HTTP, che identifica in modo univoco un visitatore su un singolo dispositivo.
Fai clic per visualizzare 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 di 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 Google Cloud progetto
DATA_STORE_ID: l'ID del 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 libero che contiene 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 crei il filtro varia a seconda che tu disponga di dati del sito web o di dati non strutturati con metadati. Per saperne di più, vedi Filtrare la ricerca con i follow-up.
Fai clic per visualizzare 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 AI Applications Python.
Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura 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 derivata una risposta. Puoi
costruire il filtro utilizzando le espressioni di filtro. Le espressioni di filtro che utilizzi variano a seconda che tu disponga di dati del sito web o di dati non strutturati con metadati.
Espressioni di filtro per i dati dei siti web
Se hai un datastore con dati del sito web, puoi filtrare la ricerca con
una query di follow-up utilizzando le espressioni di filtro in Espressioni di filtro con
indicizzazione avanzata dei siti web. Dopo aver
creato l'espressione del filtro, utilizzala per il valore del campo filter
nel
passaggio 2 di Memorizza le conversazioni e ricevi 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 una query di follow-up in modo che restituisca documenti in base ai
campi dei metadati contenuti nei documenti. Consulta Filtrare la ricerca di 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 Memorizza le conversazioni e ricevi risposte.
Configurare il riepilogo
Il messaggio di risposta della ricerca con i follow-up è un riepilogo generato restituito
in summaryText
. Esistono vari modi per configurare il riepilogo generato. Questi sono descritti nelle sezioni seguenti:
- Visualizzare le citazioni con i risultati di ricerca
- Ignorare le query contraddittorie
- Ignorare le query che non cercano riepiloghi
- Impostare il numero di risultati da utilizzare nel riepilogo
- Ricevere riepiloghi personalizzati
- Applicare SafeSearch alle risposte della chat
Ottenere citazioni con i risultati di ricerca
Le citazioni, se specificate, sono numeri inseriti in linea in un riepilogo della ricerca. Questi numeri indicano da quali risultati di ricerca sono tratte le frasi specifiche del riepilogo.
Per ottenere citazioni:
Segui la procedura precedente Memorizzare le conversazioni e ricevere risposte dalla chat, tranne che al 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 una 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
ai risultati di ricerca restituiti e sono indicizzati a partire da 1. Ad esempio, [1]
significa 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.
Ignora query contraddittorie
Le query avversative 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 ostili. Quando una query ostile viene ignorata, la proprietà
summaryText
contiene un testo standard che indica che non viene restituito alcun riepilogo
della ricerca. I documenti di ricerca vengono restituiti per le query ostili anche se i riepiloghi della ricerca non lo sono.
Per specificare che non devono essere restituiti riepiloghi della ricerca per le query ostili:
Segui la procedura precedente Memorizzare le conversazioni e ricevere risposte dalla chat, tranne che al passaggio 2, esegui 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 a una query avversariale.
"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 che non cercano riepiloghi
Le query che non cercano riepiloghi restituiscono risultati non adatti alla riepilogazione. Ad esempio, "perché il cielo è blu" e "chi è il miglior calciatore del mondo?" sono query che cercano riepiloghi, mentre "aeroporto SFO" e "mondiali 2026" non lo sono. Si tratta molto probabilmente di query di navigazione. Puoi specificare che non vengano restituiti riepiloghi di ricerca per le query che non cercano riepiloghi. I documenti di ricerca vengono restituiti per le query che non cercano riepiloghi, anche se i riepiloghi della ricerca non vengono restituiti.
Per specificare che non devono essere restituiti riepiloghi di ricerca per le query che non cercano riepiloghi:
Segui la procedura precedente Memorizzare le conversazioni e ricevere risposte dalla chat, tranne che al 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 visualizzare parte della risposta a una query avversariale.
"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 primi risultati da utilizzare per il riepilogo:
Segui la procedura precedente Memorizzare le conversazioni e ricevere risposte dalla chat, ma al passaggio 2 esegui 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
.
Ottenere 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 dell'output (ad esempio "semplice"), lingua dell'output, focus della risposta e formato (ad esempio tabelle, elenchi puntati e XML).
Ad esempio, per la query "Quali sono i vantaggi di BigQuery?" potresti inserire istruzioni di personalizzazione come i seguenti esempi:
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 Memorizzare le conversazioni e ricevere risposte dalla chat precedente, ma al passaggio 2 esegui 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 che violano le norme dalle risposte riepilogative. Per saperne di più su SafeSearch, consulta Impostazioni di sicurezza per Vertex AI Search.
Per applicare la Safe Search a una risposta della chat:
Segui la procedura precedente Memorizza le conversazioni del negozio e ricevi risposte dalla chat, tranne che al passaggio 2, dove devi specificare
safe_search
nella query.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 ottenere, eliminare, aggiornare ed elencare le conversazioni memorizzate.
Recuperare una conversazione dal datastore
Per visualizzare tutti i dettagli di una conversazione specifica da un datastore:
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/CONVERSATION_ID"
PROJECT_ID: Il numero o l'ID del tuo Google Cloud progetto
DATA_STORE_ID:l'ID del datastore associato alla tua app.
CONVERSATION_ID: l'ID della conversazione
Fai clic per visualizzare 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 conversazione specifica, ad esempio se conteneva 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 Google Cloud progetto
DATA_STORE_ID: l'ID del datastore associato alla tua app.
CONVERSATION_ID: l'ID della conversazione
La risposta del 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 di 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 Google Cloud progetto
DATA_STORE_ID: l'ID del datastore associato alla tua app.
CONVERSATION_ID: l'ID della conversazione che vuoi aggiornare
NEW_STATE: il nuovo valore per lo stato, ad esempio
COMPLETED
Fai clic per visualizzare 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 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 Google Cloud progetto
DATA_STORE_ID: l'ID del datastore associato alla tua app.
CONVERSATION_ID: L'ID della conversazione che vuoi aggiornare
NEW_USER_PSEUDO_ID: Il nuovo valore per lo pseudo ID utente
Fai clic per visualizzare 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 nella conversazione sostituendo user_pseudo_id
con altri campi nella risorsa Conversation.
Elenca tutte le conversazioni
Per elencare tutte le conversazioni in un datastore:
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 Google Cloud progetto
DATA_STORE_ID: l'ID del datastore associato alla tua app.
Fai clic per visualizzare 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
next_page_token
, non ci sono altre conversazioni da elencare.
Le dimensioni predefinite della pagina sono 50.
Elencare le 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, potresti mostrare all'utente le 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 Google Cloud progetto
DATA_STORE_ID: l'ID del datastore associato alla tua app.
USER_PSEUDO_ID: lo pseudo ID dell'utente di cui vuoi elencare le conversazioni.
La risposta del comando
GET
ha il seguente aspetto:Fai clic per visualizzare 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 (aperte o chiuse) e associate a un utente o 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%20AND%20state=STATE"
PROJECT_ID: Il numero o l'ID del tuo Google Cloud progetto
DATA_STORE_ID: l'ID del 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
ha il seguente aspetto:Fai clic per visualizzare 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 AIP-160 Filtering.
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 turistici in Messico?".
Se vuoi che la tua app di ricerca restituisca domande correlate, contatta il team del tuo account Google e comunica per quali progetti e app 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 saperne di più sui campi
summaryResultCount
,includeCitations
,ignoreAdversarialQuery
,ignoreNonSummarySeekingQuery
, consulta SummarySpec nella documentazione dell'API AI Applications.Per altri esempi su come ottenere riepiloghi delle ricerche, vedi Ottenere riepiloghi.