En este documento, se describe cómo probar QueryData y actualizar el archivo de conjunto de contexto. Puedes probar la capacidad de QueryData para generar consultas en SQL a partir de preguntas en lenguaje natural. Si una búsqueda generada no es precisa, puedes actualizar el archivo de conjunto de contexto.
Para obtener más información sobre los conjuntos de contexto, consulta Descripción general de los conjuntos de contexto.Antes de comenzar
Asegúrate de que ya se haya creado un conjunto de contexto y de que el archivo del conjunto de contexto se haya subido al agente de QueryData. Para obtener más información, consulta Administra conjuntos de contexto en AlloyDB Studio.
Prueba de QueryData
Para probar un objeto QueryData, sigue estos pasos:
En la consola de Google Cloud , ve a la página de AlloyDB.
Selecciona un clúster de la lista.
En el menú de navegación, haz clic en AlloyDB Studio.
Accede a Studio con la autenticación de Identity and Access Management.
En el panel Explorador, haz clic en Ver acciones junto al conjunto de contexto que estás usando.
Haz clic en Test context set.
En el editor de consultas, haz clic en Generar SQL para abrir el panel Ayúdame a escribir código.
Ingresa una pregunta en lenguaje natural en el editor para generar una consulta en SQL y haz clic en Generar.
Revisa la consulta en SQL para verificar su precisión.
Descarga y actualiza un conjunto de contexto
Si no te satisface la consulta en SQL generada para una pregunta en lenguaje natural, descarga el archivo del conjunto de contexto 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 contexto, 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 contextos con Gemini CLI para actualizar el contexto con pares de preguntas adicionales.
- En el panel Explorador, haz clic en Ver acciones junto al conjunto de contexto que estás usando.
- Haz clic en Editar conjunto de contexto.
- Haz clic en Examinar en la sección Subir archivo de conjunto de contexto y selecciona el archivo de conjunto de contexto actualizado.
- Haz clic en Guardar para actualizar el conjunto de contexto.
Cuando estés conforme con la precisión de tus respuestas, puedes usar el extremo QueryData para conectar tu aplicación al conjunto de contexto.
Cómo encontrar el ID del conjunto de contexto
Para conectar una aplicación de datos al agente de QueryData, necesitas el ID del conjunto de contexto.
En la consola de Google Cloud , ve a la página de AlloyDB.
Selecciona un clúster de la lista.
En el menú de navegación, haz clic en AlloyDB Studio.
Accede a Studio con la autenticación de Identity and Access Management.
En el panel Explorador, haz clic en Ver acciones junto al conjunto de contexto que estás usando.
Haz clic en Editar conjunto de contexto.
Anota el ID del contexto en ID del conjunto de contexto. El formato del ID del conjunto de contexto es similar a
projects/data-agents-project/locations/us-east1/contextSets/bdf_pg_all_templates.
Conecta QueryData a la aplicación
Establece el ID del conjunto de contexto en la llamada de método QueryData para proporcionar contexto creado para las fuentes de datos de bases de datos, como AlloyDB, Spanner, Cloud SQL y Cloud SQL para PostgreSQL. Para obtener más información, consulta Cómo definir el contexto del agente de datos para las fuentes de datos de bases de datos.
Después de probar el conjunto de contexto, 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 QueryData que usa la fuente de datos de la base de datos alloydb. El campo agent_context_reference.context_set_id se usa para vincularse al contexto previamente creado y 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? A3 contains the data of region.", "context": { "datasource_references": [ { "alloydb": { "database_reference": { "project_id": "context-set-project", "region": "us-central1", "cluster_id": "sqlgen-magic", "instance_id": "context-set-primary", "database_id": "financial" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-east1/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.alloydb: Se requiere cuando se consulta la base de datos. Este campo cambia según la base de datos que consultes.database_reference: Especifica información relacionada con tu instancia de base de datos.cluster_id: Es el ID del clúster de la instancia de la base de datos.project_id: Es el ID del proyecto de la instancia de la base de datos.region: Es la región de la instancia de AlloyDB.instance_id: Es el ID de la instancia de AlloyDB.database_id: Es el ID de la base de datos.
agent_context_reference: Vínculos al contexto creado en la base de datos.context_set_id: Es el ID completo del conjunto de contexto almacenado en la base de datos. Por ejemplo,projects/context-set-project/locations/us-east1/contextSets/bdf_gsql_gemini_all_templates
generationOptions: Configura el tipo de salida que se generará.generate_query_result: Se establece en verdadero para generar y devolver los resultados de la búsqueda.generate_natural_language_answer: Opcional Si se establece como verdadero, se genera una respuesta en lenguaje natural.generate_explanation: Opcional Si se establece en verdadero, genera una explicación de la consulta en SQL.generate_disambiguation_question: Opcional Si se establece como verdadero, genera preguntas de desambiguación si la búsqueda es ambigua.
Ejemplo de respuesta de QueryData
Este es un ejemplo de una respuesta correcta de una llamada QueryData:
{
"generated_query": "-- Count the number of accounts in Prague that are eligible for loans\nSELECT\n COUNT(DISTINCT \"loans\".\"account_id\")\nFROM \"loans\"\nJOIN \"district\" -- Join based on district ID\n ON \"loans\".\"district_id\" = \"district\".\"district_id\"\nWHERE\n \"district\".\"A3\" = 'Prague'; -- Filter for the Prague region",
"intent_explanation": "The question asks for the number of accounts eligible for loans in the Prague region. I need to join the `district` table with the `loans` table to filter by region and count the distinct accounts. The `A3` column in the `district` table contains the region information, and I'll filter for 'Prague'. The `loans` table contains information about loans, including the `account_id` and `district_id`. I will join these two tables on their respective district IDs.",
"query_result": {
"columns": [
{
"name": "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 contexto.
- Aprende a crear contextos con Gemini CLI
- Obtén más información para administrar conjuntos de contexto en AlloyDB Studio