En este documento, se describe cómo probar QueryData y actualizar el archivo del conjunto de contextos. Puedes probar la capacidad de QueryData para generar consultas de lenguaje de consulta de MongoDB (MQL) compatibles a partir de preguntas en lenguaje natural. Si una consulta generada no es precisa, puedes actualizar el archivo del conjunto de contextos.
Para obtener información sobre los conjuntos de contextos, consulta Descripción general de los conjuntos de contextos.Antes de comenzar
Asegúrate de que ya se haya creado un conjunto de contextos y que el archivo del conjunto de contextos se haya subido al agente de QueryData. Para obtener más información, consulta Administra conjuntos de contextos en Firestore Studio.
Para descargar, actualizar y subir archivos de conjuntos de contextos, asegúrate de que el usuario de IAM tenga el rol Editor de Dataplex Catalog (roles/dataplex.catalogEditor) o Administrador de Dataplex Catalog (roles/dataplex.catalogAdmin) en el proyecto. Para obtener más información, consulta Permisos de conjuntos de contextos.
Prueba QueryData
Para probar un QueryData, sigue estos pasos:
En la Google Cloud consola, ve a la página de Firestore.
Selecciona una base de datos a la que agregaste un conjunto de contextos. Solo se admite Firestore con compatibilidad con MongoDB.
En el menú de navegación, haz clic en Firestore Studio.
En el panel Explorador, haz clic en Ver acciones junto al conjunto de contextos que usas.
Haz clic en Probar conjunto de contextos.
En el editor de consultas, haz clic en Generar consulta para abrir el panel Ayúdame a programar.
Ingresa una pregunta en lenguaje natural en el editor para generar una consulta de MQL y haz clic en Generar.
Revisa la consulta de MQL para verificar su precisión.
Descarga y actualiza un conjunto de contextos
Si no estás satisfecho con la consulta de MQL generada para una pregunta en lenguaje natural, descarga el archivo del conjunto de contextos existente. Luego, puedes revisar y actualizar la plantilla de consulta, y volver a subir el archivo de contexto actualizado al agente.
Para descargar y actualizar un conjunto de contextos, sigue estos pasos:
- En el panel Explorador, haz clic en Ver acciones.
- Haz clic en Descargar archivo de contexto.
- Sigue los pasos que se indican en Crea conjuntos de contextos con el agente de ingeniería de contexto para actualizar el contexto con pares de consultas adicionales.
- En el panel Explorador, haz clic en Ver acciones junto al conjunto de contextos que usas.
- Haz clic en Editar conjunto de contextos.
- Haz clic en Explorar en la sección Subir archivo del conjunto de contextos y selecciona el archivo del conjunto de contextos actualizado.
- Haz clic en Guardar para actualizar el conjunto de contextos.
Después de que estés satisfecho con la precisión de tus respuestas, puedes usar el extremo QueryData para conectar tu aplicación al conjunto de contextos.
Busca el ID del conjunto de contextos
Para conectar una aplicación de datos al agente de QueryData, necesitas el ID del conjunto de contextos.
En la Google Cloud consola, ve a la página de Firestore.
Selecciona una base de datos a la que agregaste un conjunto de contextos.
En el menú de navegación, haz clic en Firestore Studio.
En el panel Explorador, haz clic en Ver acciones junto al conjunto de contextos que usas.
Haz clic en Editar conjunto de contextos.
Toma nota del ID de contexto en ID del conjunto de contextos. El formato del ID del conjunto de contextos es similar a
projects/data-agents-project/locations/us-central1/contextSets/bdf_pg_all_templates.
Conecta QueryData a la aplicación
Configura el ID del conjunto de contextos en la llamada de método QueryData para proporcionar contexto creado para fuentes de datos de bases de datos, como AlloyDB, Spanner, Cloud SQL, Cloud SQL para PostgreSQL y Firestore. Para obtener más información, consulta Define el contexto del agente de datos para fuentes de datos de bases de datos.
Después de probar el conjunto de contextos, puedes hacer referencia a la fuente de datos de la base de datos en tu llamada a QueryData.
Ejemplo de solicitud de QueryData con contexto creado
En el siguiente ejemplo, se muestra una solicitud de QueryData con la fuente de datos firestore_reference (Firestore con compatibilidad con MongoDB). El campo agent_context_reference.context_set_id se usa para vincular al contexto creado previamente almacenado en la base de datos.
{ "parent": "projects/context-set-project/locations/us-central1", "prompt": "How many accounts in the Prague region are eligible for loans?", "context": { "datasource_references": [ { "firestore_reference": { "database_reference": { "project_id": "context-set-project", "region": "us-central1", "database_id": "financial" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-central1/contextSets/bdf_pg_all_templates" } } } ] }, "generation_options": { "generate_query_result": true, "generate_natural_language_answer": true, "generate_disambiguation_question": true, "generate_explanation": true } }
El cuerpo de la solicitud contiene los siguientes campos:
prompt: Es la pregunta en lenguaje natural del usuario final.context: Contiene información sobre las fuentes de datos.datasource_references: Especifica el tipo de fuente de datos.firestore_reference: Es obligatorio cuando se consulta la base de datos. Este campo cambia según la base de datos que consultas.database_reference: Especifica información relacionada con tu instancia de base de datos.project_id: Es el ID del proyecto de la base de datos.region: Es la región de la base de datos.database_id: Es el ID de la base de datos.
agent_context_reference: Se vincula al contexto creado en la base de datos.context_set_id: Es el ID completo del conjunto de contextos del contexto almacenado en la base de datos. Por ejemplo,projects/context-set-project/locations/us-central1/contextSets/bdf_gsql_gemini_all_templates.
generationOptions: Configura el tipo de resultado que se generará.generate_query_result: Se establece como verdadero para generar y mostrar los resultados de la consulta.generate_natural_language_answer: Es opcional. Si se establece como verdadero, genera una respuesta en lenguaje natural.generate_explanation: Es opcional. Si se establece como verdadero, genera una explicación de la consulta de MQL.generate_disambiguation_question: Es opcional. Si se establece como verdadero, genera preguntas de desambiguación si la consulta es ambigua.
Ejemplo de respuesta de QueryData
Este es un ejemplo de una respuesta correcta de una llamada a QueryData:
{
"generated_query": "// Count the number of accounts in Prague that are eligible for loans\ndb.loans.aggregate([\n // 1. Filter loans in the Prague region\n { \n $match: { \"district.name\": \"Prague\" } \n },\n // 2. Group by account_id to get distinct values, and count them\n { \n $group: { \n _id: null, \n uniqueAccounts: { $addToSet: \"$account_id\" } \n } \n },\n // 3. Project the size of the unique accounts array\n { \n $project: { \n _id: 0,\n distinct_account_count: { $size: \"$uniqueAccounts\" } \n } \n }\n]);",
"intent_explanation": "The question asks for the number of accounts eligible for loans in the Prague region. I need to filter the documents in the loans collection to only give me those in the Prague region. Then I need to group the loans by account ID to get distinct values and count them. Finally, I need to project the size of the array of unique accounts.",
"query_result": {
"columns": [
{
"name": "distinct_account_count"
}
],
"rows": [
{
"values": [
{
"value": "2"
}
]
}
],
"total_row_count": 1
},
"natural_language_answer": "There are 2 accounts in Prague that are eligible for loans."
}
¿Qué sigue?
- Obtén más información sobre los conjuntos de contextos.
- Aprende a crear conjuntos de contextos con el agente de ingeniería de contexto.
- Aprende a administrar conjuntos de contextos en Firestore Studio.