En esta página, se presenta la búsqueda con seguimiento para Vertex AI Search y se muestra cómo implementarla con llamadas a la API.
Si deseas agregar la búsqueda con seguimiento al widget de búsqueda, consulta Cómo configurar los resultados para el widget de búsqueda.
La Búsqueda con seguimiento se aplica a las apps de búsqueda con datos no estructurados y sitios web.
Acerca de la Búsqueda con seguimiento
La Búsqueda con seguimiento se basa en modelos de IA generativa. La búsqueda con seguimiento es diferente de la búsqueda normal de datos no estructurados porque tiene en cuenta las búsquedas anteriores en la misma sesión.
La Búsqueda con seguimientos admite lo siguiente:
Procesamiento de consultas en lenguaje natural: Procesa y comprende la entrada de lenguaje humano, identifica la intención detrás de una consulta y devuelve resultados pertinentes.
Comprensión del contexto: Comprende el contexto de las interacciones anteriores y proporciona respuestas basadas en el contexto.
Interacción múltiple: Permite que los usuarios hagan preguntas de seguimiento y reciban respuestas pertinentes.
Ejemplo de búsqueda con seguimientos
A continuación, se muestra 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 ir de vacaciones a México?
Búsqueda con seguimiento: La mejor época para ir de vacaciones a México es durante la temporada seca, que va de noviembre a abril.
Tú: ¿Cuál es el tipo de cambio?
Búsqueda con seguimiento: 1 USD equivale a aproximadamente 17.65 pesos mexicanos.
Tú: ¿Cuál es la temperatura promedio en diciembre?
Búsqueda con preguntas de seguimiento: La temperatura promedio varía entre 21 y 26 °C (70 y 78 °F). El promedio de Cancún es de aproximadamente 25 °C.
Con la búsqueda normal, tu pregunta "¿Cuál es el tipo de cambio?" no tendría respuesta porque la búsqueda normal no sabría que querías el tipo de cambio mexicano. Del mismo modo, una búsqueda normal no mantendría el contexto para brindarte las temperaturas de México.
Acerca de las conversaciones
En la búsqueda con seguimiento, una conversación se compone de las preguntas de texto que proporciona un usuario y las respuestas que proporciona Vertex AI Search.
A veces, estos pares de preguntas y respuestas se denominan mensajes. En el 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 en el que se guardan los datos no estructurados. En el almacén de datos, una conversación se representa con el recurso Conversation. Además de contener los mensajes de la consulta y la respuesta, el recurso de conversación tiene lo siguiente:
Un nombre único (el ID de conversación)
Un estado (en curso o completado).
Es un seudo-ID del usuario, que es un ID de visitante que rastrea al usuario. Se puede asignar de forma programática.
Una hora de inicio y una hora de finalización
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos. Los requisitos varían 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 estén activadas las siguientes opciones:
Almacenar conversaciones y obtener 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 seguimiento.
REST
Para usar la línea de comandos para crear una conversación y generar respuestas a partir de la entrada del usuario, sigue estos pasos:
Especifica el almacén de datos en el que deseas almacenar 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: Es el número o ID de tu Google Cloud proyecto.
DATA_STORE_ID: Es el ID del almacén de datos asociado a tu app.
USER_PSEUDO_ID: Es un identificador único para hacer un seguimiento de un visitante de la 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 de tu Google Cloud proyecto.
DATA_STORE_ID: Es el ID del almacén de datos asociado a tu app.
CONVERSATION_ID: Es un ID único para la conversación, por ejemplo,
123456
. En el caso de una conversación de búsqueda con seguimiento, usa el mismo ID de conversación en cada turno.FREE_TEXT: Cadena de texto libre que contiene la pregunta del usuario, 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 tu filtro varía según si tienes 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 de seguimiento.
Haz clic para ver un ejemplo de respuesta 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." } ] } } } ] }
Repite el paso 2 para cada pregunta nueva de la conversación.
Python
Para obtener más información, consulta la documentación de referencia de la API de AI Applications Python.
Para autenticarte en AI Applications, 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.
Cómo filtrar la búsqueda con seguimientos
Cuando realices una consulta con la función de búsqueda con seguimiento, puedes incluir el campo filter
para restringir el conjunto de documentos a partir del cual se deriva una respuesta. El filtro se construye con expresiones de filtro. Las expresiones de filtro que usas varían según si tienes datos del sitio web o datos no estructurados con metadatos.
Expresiones de filtro para los datos del sitio web
Si tienes un almacén de datos con datos de sitios web, puedes filtrar tu búsqueda con preguntas de seguimiento usando las expresiones de filtro en Expresiones de filtro con indexación avanzada de sitios web. Después de crear tu expresión de filtro, úsala para el valor del campo filter
en el paso 2 de Almacena conversaciones y obtén respuestas.
Expresiones de filtro para datos no estructurados con metadatos
Si tienes un almacén de datos con datos no estructurados y metadatos, puedes filtrar tu búsqueda con una consulta de seguimiento para que muestre documentos según los campos de metadatos que contienen. Consulta Cómo filtrar la búsqueda de datos estructurados o no estructurados para comprender cómo usar los metadatos para filtrar la búsqueda ordinaria (sin preguntas de seguimiento). Puedes usar estos mismos principios para usar metadatos y filtrar la búsqueda con preguntas de seguimiento. Después de construir tu expresión de filtro, úsala para el valor del campo filter
en el paso 2 de Almacena conversaciones y obtén respuestas.
Configura el resumen
El mensaje de respuesta de la búsqueda con preguntas de seguimiento es un resumen generado que se devuelve en summaryText
. Existen varias formas de configurar el resumen generado. Estos se describen en las siguientes secciones:
- Cómo obtener citas con los resultados de la búsqueda
- Ignorar las búsquedas adversarias
- Ignorar las búsquedas que no buscan resúmenes
- Cómo establecer 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
Obtén citas con los resultados de la búsqueda
Las citas, cuando se especifican, son números que se colocan intercalados en un resumen de búsqueda. Estos números indican de qué resultados de la búsqueda se tomaron oraciones específicas del resumen.
Para obtener citas, sigue estos pasos:
Sigue el procedimiento anterior Almacena conversaciones y obtén respuestas de chat, 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 ver parte de la respuesta de un comando de ejemplo.
{ "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 citas se incluyen en el texto de resumen. Los números de cita hacen referencia a los resultados de la búsqueda que se devolvieron y están indexados a partir del 1. Por ejemplo, [1]
significa que la oración se atribuye al primer resultado de la búsqueda. [2, 3]
significa que la oración se atribuye al segundo y al tercer resultado de la búsqueda.
Ignorar las consultas adversarias
Las preguntas adversarias incluyen comentarios negativos o se diseñaron para generar resultados inseguros que incumplen las políticas. Puedes especificar que no se muestren resúmenes de búsqueda para las consultas adversarias. Cuando se ignora una búsqueda adversarial, la propiedad summaryText
contiene texto estándar que indica que no se devolvió ningún resumen de la búsqueda. Los documentos de búsqueda se devuelven para las búsquedas adversariales, aunque no se devuelvan los resúmenes de búsqueda.
Para especificar que no se deben mostrar resúmenes de búsqueda para las consultas adversariales, haz lo siguiente:
Sigue el procedimiento anterior Almacena conversaciones y obtén respuestas de chat, 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 búsqueda adversaria.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "ADVERSARIAL_QUERY_IGNORED" ] …
Ignorar las búsquedas que no buscan resúmenes
Las búsquedas que no buscan resúmenes devuelven resultados que no son adecuados para la generación de resúmenes. Por ejemplo, "¿Por qué el cielo es azul?" y "¿Quién es el mejor futbolista del mundo?" son preguntas que buscan un resumen, pero "Aeropuerto de SFO" y "Copa Mundial 2026" no lo son. Es muy probable que sean búsquedas de navegación. Puedes especificar que no se devuelvan resúmenes de búsqueda para las búsquedas que no los soliciten. Los documentos de búsqueda se muestran para las búsquedas que no son de resumen, aunque no se muestren los resúmenes de búsqueda.
Para especificar que no se deben devolver resúmenes de búsqueda para las búsquedas que no solicitan resúmenes, haz lo siguiente:
Sigue el procedimiento anterior Almacena conversaciones y obtén respuestas de chat, 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 búsqueda adversaria.
"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 para el resumen, haz lo siguiente:
Sigue el procedimiento anterior de Almacena conversaciones y obtén respuestas de chat, 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 a partir de los que se generará el resumen de la búsqueda. Si la cantidad de resultados que se muestran es menor que
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 la respuesta (por ejemplo, "simple"), el idioma de la respuesta, el enfoque de la respuesta y el formato (por ejemplo, tablas, viñetas y XML).
Por ejemplo, para la búsqueda "¿Cuáles son los beneficios de BigQuery?", puedes ingresar instrucciones de personalización como las siguientes:
Ejemplo de instrucción:
"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
Ejemplo de instrucción:
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 el procedimiento anterior Almacena conversaciones y obtén respuestas de chat, excepto en el paso 2, ejecuta este comando que incluye 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 de personalización, como una cadena.
Aplicar SafeSearch a las respuestas del chat
SafeSearch se puede usar para filtrar el contenido explícito, no seguro y que incumple las políticas 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 búsqueda.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 }'
Cómo ver y modificar las conversaciones almacenadas
Puedes usar la línea de comandos para obtener, borrar, actualizar y enumerar las 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: Es el número o ID de tu Google Cloud proyecto.
DATA_STORE_ID:Es el ID del almacén de datos asociado a tu app.
CONVERSATION_ID: 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" }
Borra una conversación del almacén de datos
De forma predeterminada, las conversaciones de hace más de 60 días se borran automáticamente. Sin embargo, si quieres borrar una conversación en particular, por ejemplo, si accidentalmente contenía contenido sensible, usa esta llamada a la API para borrarla.
Para borrar una conversación de un almacén de datos, sigue estos pasos:
Ejecuta el siguiente comando de 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: Es el número o ID de tu Google Cloud proyecto.
DATA_STORE_ID: Es el ID del almacén de datos asociado a tu app.
CONVERSATION_ID: ID de la conversación
La respuesta del comando
DELETE
es la siguiente:{}
Actualiza una conversación
Existen varios motivos por los que podrías querer actualizar una conversación. Por ejemplo, para realizar 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, sigue estos pasos:
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=state" \ -d '{ "state": "NEW_STATE" }'
PROJECT_ID: Es el número o ID de tu Google Cloud proyecto.
DATA_STORE_ID: Es el ID del almacén de datos asociado a tu app.
CONVERSATION_ID: Es el ID de la conversación que deseas actualizar.
NEW_STATE: Es el nuevo valor del 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, sigue estos pasos:
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: Es el número o ID de tu Google Cloud proyecto.
DATA_STORE_ID: Es el ID del almacén de datos asociado a tu app.
CONVERSATION_ID: ID de la conversación que deseas actualizar
NEW_USER_PSEUDO_ID: Es el valor nuevo del ID pseudo del usuario.
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": "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 te muestra cómo cambiar el user_pseudo_id.
. Sin embargo, puedes actualizar otros campos de la conversación reemplazando user_pseudo_id
por otros campos del recurso Conversation.
Enumera todas las conversaciones
Para enumerar todas las conversaciones en 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"
PROJECT_ID: Es el número o ID de tu Google Cloud proyecto.
DATA_STORE_ID: Es el ID del almacén de datos asociado a tu app.
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" }, { "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 devuelve ningún next_page_token
, significa que no hay más conversaciones para mostrar.
El tamaño de página predeterminado es 50.
Enumera las conversaciones por filtro
En lugar de enumerar todas las conversaciones en un almacén de datos, es posible que desees enumerar todas las conversaciones abiertas o todas las conversaciones asociadas con un usuario en particular.
Por ejemplo, podrías mostrarle al usuario sus búsquedas cerradas con una opción para volver a abrir una de ellas.
Para ello, debes enumerar las conversaciones que coincidan con un filtro determinado:
user_pseudo_id
o
state
(IN_PROGRESS
o COMPLETED
).
Enumera las conversaciones de un usuario
Para enumerar 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: Es el número o ID de tu Google Cloud proyecto.
DATA_STORE_ID: Es el ID del almacén de datos asociado a tu app.
USER_PSEUDO_ID: Es el ID pseudo del usuario cuyas conversaciones deseas enumerar.
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" } ] }
Enumera las conversaciones de un usuario y un estado
Para enumerar las conversaciones en un estado particular (abiertas o cerradas) y que están 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%20AND%20state=STATE"
PROJECT_ID: Es el número o ID de tu Google Cloud proyecto.
DATA_STORE_ID: Es el ID del almacén de datos asociado a tu app.
USER_PSEUDO_ID: Es el ID pseudo 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 AIP-160 Filtering.
Preguntas relacionadas
Las preguntas relacionadas son una función de vista previa con 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 ir de vacaciones a 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 barato para ir de vacaciones a 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 tu equipo de cuentas de Google y dile para qué proyectos y apps quieres habilitar las preguntas relacionadas. Si no usas la configuración de entrega predeterminada, también debes proporcionar el nombre de la configuración de entrega.
Después de habilitar la función de preguntas relacionadas, las preguntas se devuelven como cadenas en ConverseConversationResponse
.
Más información
Para obtener más información sobre los campos
summaryResultCount
,includeCitations
,ignoreAdversarialQuery
yignoreNonSummarySeekingQuery
, consulta SummarySpec en la documentación de la API de AI Applications.Para obtener más ejemplos de cómo obtener resúmenes de búsqueda, consulta Obtén resúmenes.