En esta página, se presenta la búsqueda con seguimientos de Vertex AI Search y verás cómo implementarlo con llamadas a la API.
Si deseas agregar búsquedas con seguimientos al widget de búsqueda, consulta Cómo configurar los resultados para el widget de búsqueda.
La búsqueda con preguntas adicionales se aplica a las apps de búsqueda con datos no estructurados y sitios web.
La búsqueda con preguntas adicionales no se aplica a las apps de Vertex AI Agents. Las apps de Vertex AI Agents usan un agente que puede tener conversaciones sobre el contenido con tus usuarios finales. Para obtener más información sobre los agentes de Vertex AI, consulta Introducción a los agentes de Vertex AI.
Acerca de la búsqueda con seguimientos
La búsqueda con seguimientos se basa en modelos de IA generativa. La búsqueda con preguntas adicionales es diferente de la búsqueda normal de datos no estructurados porque esta última tiene en cuenta las consultas anteriores en la misma sesión de búsqueda.
La búsqueda con seguimientos admite lo siguiente:
Procesamiento de consultas en lenguaje natural: Procesa y comprende el funcionamiento idioma de entrada, identifica el intent detrás de una consulta y devuelve resultados resultados.
Reconocimiento del contexto: Entiende el contexto de las interacciones previas y proporciona respuestas adaptadas al contexto.
Varios turnos: Permite que los usuarios hagan preguntas de seguimiento y reciban respuestas relevantes.
Ejemplo de búsqueda con seguimientos
El siguiente es un ejemplo de búsqueda con seguimientos. Supongamos que quieres saber sobre las vacaciones en México:
Tú: ¿Cuál es la mejor época del año para vacacionar en México?
Búsqueda con preguntas adicionales: La mejor época para vacacionar en México es durante la temporada seca, que va de noviembre a abril.
Tú: ¿Cuál es el tipo de cambio?
Búsquedas con seguimientos: USD 1 equivale a pesos mexicanos 17.65.
Tú: ¿Cuál es la temperatura promedio en diciembre?
Búsqueda con seguimientos: La temperatura promedio varía de 21 a 26 °C. El promedio de Cancún es de alrededor de 25 °C.
Con la búsqueda normal, tu pregunta "¿Qué es el tipo de cambio?" no sería respondeble porque la búsqueda normal no sabría que querías la comida mexicana el tipo de cambio. Del mismo modo, una búsqueda regular no mantendría el contexto para proporcionar las temperaturas para México.
Información acerca de las conversaciones
En búsquedas con seguimientos, una conversación se compone de consultas de texto proporcionadas por un usuario y las respuestas que proporciona Vertex AI Search.
A veces, estos pares de consulta y respuesta se denominan mensajes. En la ejemplo anterior, el segundo mensaje se compone de "¿Cuál es el tipo de cambio?". y "1 USD equivale a aproximadamente 17.65 pesos mexicanos".
Las conversaciones se almacenan en el mismo almacén de datos donde los datos no estructurados se conserva. En el almacén de datos, una conversación está representada por el campo Conversation recurso. Además de contener los mensajes de consulta y respuesta, el recurso de conversación tiene lo siguiente:
Un nombre único (el ID de la conversación)
Un estado (en curso o completado).
Un seudo-ID del usuario, que es un ID de visitante que realiza un seguimiento del usuario. Sí, es posible se asignan de forma programática.
Una hora de inicio y una de finalización.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos. Los requisitos varían según según el tipo de app que tengas.
Si tienes una app de búsqueda no estructurada, asegúrate de que esté activada la siguiente opción: Funciones avanzadas de LLM
Si tienes una app de búsqueda de sitios web, asegúrate de que los siguientes elementos estén activados:
Almacena conversaciones y obtén respuestas
Puedes usar la línea de comandos o las bibliotecas cliente para generar respuestas de búsqueda y almacenar la conversación de búsqueda con preguntas adicionales.
REST
Para usar la línea de comandos para crear una conversación y generar respuestas desde el la entrada del usuario, sigue estos pasos:
Especifica el almacén de datos en el que quieres guardar el historial de conversaciones:
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: El número o ID de tu proyecto de Google Cloud
DATA_STORE_ID: Es el ID del almacén de datos asociado. con tu app.
USER_PSEUDO_ID: Es un identificador único para hacer un seguimiento de un visitante de búsqueda. Por ejemplo, puedes implementar esto con una cookie HTTP, que identifica de forma única a un visitante en un solo dispositivo.
Haz clic para ver un ejemplo de respuesta 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 respuesta de búsqueda y agrégala a una conversación nueva o existente en tu almacén de datos:
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: Es el número o ID del proyecto de Google Cloud.
DATA_STORE_ID: Es el ID del almacén de datos asociado. con tu app.
CONVERSATION_ID: Es un ID único para la conversación, por ejemplo,
123456
. Para una conversación de búsqueda con preguntas adicionales, usa el mismo ID de conversación en cada turno.FREE_TEXT: Es una cadena de texto libre que contiene la propiedad del usuario. pregunta, por ejemplo,
what is bigquery?
FILTER: Es un campo de texto para filtrar la búsqueda con una expresión de filtro. El valor predeterminado es una string vacía. La forma en que construyes su filtro varía en función de si tiene datos del sitio web o datos no estructurados con metadatos. Para obtener más información, consulta Cómo filtrar la búsqueda con preguntas adicionales.
Haz clic para ver una respuesta de ejemplo 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." } ] } } } ] }
Repite el paso 2 para cada pregunta nueva en la conversación.
Python
Para obtener más información, consulta la API de Python de Vertex AI Agent Builder documentación de referencia.
Para autenticarte en Vertex AI Agent Builder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Filtrar la búsqueda con seguimientos
Cuando realizas una consulta con una búsqueda con seguimientos, puedes incluir el filter
para restringir el conjunto de documentos del que se deriva una respuesta. Puedes
construir tu filtro con expresiones de filtro. Las expresiones de filtro que usas varían según si tienes datos de sitios web o datos no estructurados con metadatos.
Expresiones de filtro para datos de sitios web
Si tienes un almacén de datos con datos de sitios web, puedes filtrar tu búsqueda con una consulta de seguimiento mediante las expresiones de filtro que se describen en Expresiones de filtro con indexación avanzada de sitios web. Después de
construye tu expresión de filtro, úsala para el valor del campo filter
en
paso 2 de Almacenar conversaciones y obtener respuestas
Filtra expresiones para datos no estructurados con metadatos
Si tienes un almacén de datos con datos no estructurados con metadatos, puedes filtrar
tu búsqueda con una consulta de seguimiento para que muestre documentos según los
campos de metadatos que contienen. Consulta Filtra la búsqueda por datos estructurados
datos no estructurados para entender cómo usar los metadatos para
filtrar la búsqueda común (sin seguimientos). Puedes usar estos mismos principios para usar metadatos y filtrar la búsqueda con seguimientos. Después de crear tu expresión de filtro, úsala para el valor del campo filter
en el paso 2 de Cómo almacenar conversaciones y obtener respuestas.
Configura el resumen
El mensaje de respuesta de la búsqueda con seguimientos es un resumen generado que se muestra
en summaryText
. Existen varias formas de configurar la configuración
. que se describen en las siguientes secciones:
- Cómo obtener citas con los resultados de la búsqueda
- Ignorar búsquedas adversas
- Ignora las búsquedas de resumen
- Establece la cantidad de resultados que se usarán en el resumen
- Obtén resúmenes personalizados
- Cómo aplicar SafeSearch a las respuestas de chat
Cómo obtener citas con los resultados de la búsqueda
Cuando se especifican, las citas son números que se intercalan en una búsqueda. . Estos números indican de qué resultados de la búsqueda se muestran oraciones específicas del resumen ya están disponibles.
Para obtener citas:
Sigue las instrucciones anteriores que se indican en Cómo almacenar conversaciones y obtener chat. de respuesta, excepto en el paso 2, ejecuta este comando que incluye el campo
summarySpec
que estableceincludeCitations
como verdadero.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 } }'
Haz clic para obtener una parte de la respuesta de un ejemplo kubectl.
{ "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" ] …
Los números de cita se incluyen en el texto de resumen. Los números de cita se refieren a los resultados de la búsqueda que se muestran y están indexados en 1. Por ejemplo, [1]
significa que el
oración se atribuye al primer resultado de la búsqueda. [2, 3]
significa que la oración se atribuye al segundo y tercer resultado de la búsqueda.
Ignorar búsquedas adversas
Las consultas de adversarios incluyen comentarios negativos o están diseñadas para generar
un resultado no seguro que incumpla las políticas. Puedes especificar que no se incluyan
para consultas adversarias. Cuando se ignora una consulta adversaria, el
La propiedad summaryText
contiene texto estándar que indica que no se realizó ninguna búsqueda
un resumen. Los documentos de búsqueda se devuelven incluso para consultas adversarias
pero no así los resúmenes de búsqueda.
Para especificar que no se deben mostrar resúmenes de búsqueda para consultas adversarias:
Sigue las instrucciones anteriores que se indican en Cómo almacenar conversaciones y obtener chat. de respuesta, excepto en el paso 2, ejecuta este comando que incluye el campo
summarySpec
que estableceignoreAdversarialQuery
como verdadero.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 } }'
Haz clic para ver parte de la respuesta de una consulta adversa.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "ADVERSARIAL_QUERY_IGNORED" ] …
Ignora las consultas de búsqueda que no son de resumen
Las búsquedas que no son de resumen devuelven resultados que no son adecuados para resumen. Por ejemplo, "¿por qué el cielo es azul?" y "¿Quién es el mejor de jugadores de todo el mundo?". son búsquedas de resumen, pero "aeropuerto SFO" y “del mundo cup 2026" no lo son. Es probable que sean consultas de navegación. Puedes especificar que no se deben mostrar resúmenes de búsqueda para las consultas que no buscan resúmenes. Los documentos de búsqueda se muestran para las búsquedas que no buscan resúmenes, aunque los resúmenes de búsqueda no se muestren.
Especificar que no se deben mostrar resúmenes de búsqueda para las búsquedas que no sean de resumen en la nube:
Sigue las instrucciones anteriores que se indican en Cómo almacenar conversaciones y obtener chat. de respuesta, excepto en el paso 2, ejecuta este comando que incluye el campo
summarySpec
que estableceignoreNonSummarySeekingQuery
como verdadero.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 } }'
Haz clic para ver parte de la respuesta de una consulta adversa.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "NON_SUMMARY_SEEKING_QUERY_IGNORED" ] …
Establece la cantidad de resultados que se usarán en el resumen
Puedes especificar la cantidad de resultados que se usarán para generar el resumen. De forma predeterminada, si no se configura el campo summaryResultCount
, se usan todos los resultados que se muestran para generar el resumen.
Para establecer la cantidad de resultados principales que se usarán en el resumen, sigue estos pasos:
Sigue las instrucciones anteriores que se indican en Cómo almacenar conversaciones y obtener chat. de respuesta, excepto en el paso 2, ejecuta este comando que incluye el campo
summarySpec
que establecesummaryResultCount
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: Es la cantidad de resultados principales que se generan. resumen de búsqueda. Si la cantidad de resultados que se muestran es inferior a
summaryResultCount
, el resumen se genera a partir de todos los resultados. El valor máximo es5
.
Obtén resúmenes personalizados
Puedes obtener resúmenes personalizados proporcionando instrucciones en lenguaje natural en
el campo modelPromptSpec.preamble
cuando solicites un resumen
Puedes solicitar personalizaciones como la longitud y el nivel de detalle, el estilo de salida (como “simple”), el idioma de salida, el enfoque de la respuesta y el formato (como como tablas, viñetas y XML).
Por ejemplo, para la consulta "¿Cuáles son los beneficios de BigQuery?", puedes ingresar instrucciones de personalización como las siguientes:
Instrucción de ejemplo:
"please show the answer format in an ordered list"
Respuesta de ejemplo:
The benefits of BigQuery are: 1. Increased business productivity 2. IT staff productivity 3. Reduced infrastructure costs 4. Loading and exporting data are free
Instrucción de ejemplo:
give a very detailed answer
Respuesta de ejemplo:
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.
Para obtener un resumen personalizado, sigue estos pasos:
Sigue las instrucciones anteriores que se indican en Cómo almacenar conversaciones y obtener chat. respuestas, excepto en el paso 2, ejecuta este que incluya el campo
summarySpec
que especifica la instrucción de personalización enmodelPromptSpec.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: Es la instrucción para la personalización, como una cadena.
Cómo aplicar SafeSearch a las respuestas de los chats
Se puede usar SafeSearch para filtrar resultados con contenido explícito, no seguro o que incumpla las políticas contenido de las respuestas resumidas. Para obtener más información sobre SafeSearch, consulta Configuración de seguridad para Vertex AI Search.
Para aplicar la búsqueda segura a una respuesta de chat, haz lo siguiente:
Sigue el procedimiento anterior para almacenar conversaciones y obtener respuestas de chat, excepto en el paso 2, en el que debes especificar
safe_search
en la consulta.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 }'
Ver y modificar conversaciones almacenadas
Puedes usar la línea de comandos para obtener, borrar, actualizar y enumerar conversaciones almacenadas.
Obtén una conversación del almacén de datos
Para obtener todos los detalles sobre una conversación específica de un almacén de datos, haz lo siguiente:
Ejecuta el siguiente comando de 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: El número o ID de tu proyecto de Google Cloud
DATA_STORE_ID:El ID del almacén de datos asociado con tu app.
CONVERSATION_ID: El ID de la conversación
Haz clic para ver un ejemplo de respuesta 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" }
Cómo borrar una conversación del almacén de datos
De forma predeterminada, las conversaciones anteriores a 60 días se borran automáticamente. Sin embargo, si quieres borrar una conversación en particular, por ejemplo, si incluía contenido sensible, usa esta llamada a la API para borrarlo.
Para borrar una conversación de un almacén de datos, sigue estos pasos:
Ejecuta el siguiente 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: El número o ID de tu proyecto de Google Cloud
DATA_STORE_ID: Es el ID del almacén de datos asociado con tu app.
CONVERSATION_ID: El ID de la conversación
La respuesta del comando
DELETE
es la siguiente:{}
Cómo actualizar una conversación
Existen varios motivos por los que podrías querer actualizar una conversación. Por ejemplo, realiza una de las siguientes acciones:
Cómo marcar una conversación como completada
Cómo combinar los mensajes de una conversación en otra
Cambia el
user_pseudo_id
Para actualizar el state
en una conversación, haz lo siguiente:
Ejecuta el siguiente 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: El número o ID de tu proyecto de Google Cloud
DATA_STORE_ID: Es el ID del almacén de datos asociado. con tu app.
CONVERSATION_ID: El ID de la conversación que deseas actualizar
NEW_STATE: Es el valor nuevo para el estado, por ejemplo,
COMPLETED
Haz clic para ver un ejemplo de respuesta 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" }
Para actualizar el user_pseudo_id
en una conversación, haz lo siguiente:
Ejecuta el siguiente comando de 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: El número o ID de tu proyecto de Google Cloud
DATA_STORE_ID: Es el ID del almacén de datos asociado con tu app.
CONVERSATION_ID: El ID de la conversación que deseas actualizar
NEW_USER_PSEUDO_ID: Es el valor nuevo del seudo-ID del usuario.
Haz clic para ver una respuesta de ejemplo 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" }
El comando anterior muestra cómo cambiar user_pseudo_id.
. Sin embargo, puedes
puede actualizar otros campos de la conversación reemplazando user_pseudo_id
con otros campos de la sección
recurso.
Mostrar todas las conversaciones
Para enumerar todas las conversaciones en un almacén de datos, haz lo siguiente:
Ejecuta el siguiente 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: El número o ID de tu proyecto de Google Cloud
DATA_STORE_ID: Es el ID del almacén de datos asociado. con tu app.
Haz clic para ver una respuesta de ejemplo 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 respuesta contiene una lista de conversaciones y el next_page_token
. Si no se muestra ningún next_page_token
, significa que no hay más conversaciones para mostrar.
El tamaño predeterminado de la página es 50.
Mostrar conversaciones por filtro
En lugar de enumerar todas las conversaciones de un almacén de datos, te recomendamos que enumeres todas las conversaciones abiertas o todas las conversaciones asociadas con un usuario en particular.
Por ejemplo, puedes presentarle al usuario sus búsquedas cerradas con una opción para volver a abrir una de ellas.
Para ello, enumeras las conversaciones que coinciden con un filtro determinado:
user_pseudo_id
o
state
(IN_PROGRESS
o COMPLETED
).
Muestra una lista de conversaciones de un usuario
Para mostrar una lista de las conversaciones asociadas con un usuario o visitante, haz lo siguiente:
Ejecuta el siguiente comando de 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: El número o ID de tu proyecto de Google Cloud
DATA_STORE_ID: Es el ID del almacén de datos asociado. con tu app.
USER_PSEUDO_ID: Es el seudo-ID del usuario cuyas conversaciones deseas enumerar.
La respuesta del comando
GET
se ve de la siguiente manera:Haz clic para ver una respuesta de ejemplo 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" } ] }
Cómo mostrar una lista de conversaciones de un usuario y un estado
Para mostrar una lista de conversaciones en un estado determinado (abierto o cerrado) y que están asociadas con un usuario o visitante, haz lo siguiente:
Ejecuta el siguiente 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: El número o ID de tu proyecto de Google Cloud
DATA_STORE_ID: Es el ID del almacén de datos asociado. con tu app.
USER_PSEUDO_ID: Es el seudo-ID del usuario cuyas conversaciones deseas enumerar.
STATE: Indica si la conversación está abierta o cerrada (
IN_PROGRESS
oCOMPLETED
).
La respuesta del comando
GET
se ve de la siguiente manera:Haz clic para ver un ejemplo de respuesta 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" } ] }
Para obtener información general sobre la sintaxis de filtrado consulta Filtrado de AIP-160.
Preguntas relacionadas
Las preguntas relacionadas son una vista previa con una función de lista de entidades permitidas que puede devolver preguntas relacionadas además de los resultados de la búsqueda.
Por ejemplo, cuando preguntas “¿Cuál es la mejor época del año para vacacionar en México?”, además de responder tu pregunta, la búsqueda sugiere otras preguntas que podrías hacer, como “¿Cuál es el mes más económico para vacacionar en México?” y “¿Cuáles son los meses turísticos en México?”.
Si quieres que tu app de búsqueda muestre preguntas relacionadas, comunícate con el equipo de tu cuenta de Google y cuéntales para qué proyectos y apps quieres habilitar las preguntas relacionadas. Si no usas la configuración de entrega predeterminada, debes proporciona también el nombre de la configuración de entrega.
Después de habilitar la función de preguntas relacionadas, las preguntas se muestran como
cadenas en ConverseConversationResponse
.
Más información
Para obtener más información sobre
summaryResultCount
,includeCitations
,ignoreAdversarialQuery
,ignoreNonSummarySeekingQuery
campos, consulta SummarySpec en en la documentación de la API de Vertex AI Agent Builder.Para ver otros ejemplos sobre cómo obtener resúmenes de búsqueda, consulta Obtener resúmenes.