QueryData te permite interactuar con los datos de tu base de datos con lenguaje conversacional y crear agentes de datos. QueryData escribe consultas para tu base de datos con conjuntos de contexto, que son colecciones de código que contienen información única sobre tu base de datos. Este contexto permite que QueryData traduzca preguntas en lenguaje natural en consultas precisas para tus casos de uso objetivo.
Cuándo usar QueryData
QueryData es ideal para aplicaciones como las siguientes:
- Automatización del servicio al cliente: Administra consultas de gran volumen, como "¿Dónde está mi pedido?" o "¿Cuál es mi saldo actual?".
- Asistentes de compras de comercio electrónico: Ayuda a los usuarios a navegar por grandes catálogos de productos con consultas en lenguaje natural, como "Muéstrame calzado para correr de menos de USD 100".
- Herramientas de operaciones de campo: Permite que los empleados móviles consulten los niveles de inventario , la disponibilidad de piezas o los detalles de los tickets de servicio en tiempo real.
Cómo funciona QueryData
Para compilar aplicaciones de agentes eficaces, QueryData debe comprender la organización de tus datos y la lógica empresarial. Proporcionas esta información en forma de conjunto de contexto.
Defines el contexto en archivos que contienen objetos JSON para cada tipo de contexto. Creas estos archivos de contexto con la ayuda de la CLI de Gemini. Luego, subes el archivo de contexto a un conjunto de contexto que creas en la Google Cloud consola. Este proceso permite que QueryData aprenda el esquema específico de la base de datos y la lógica empresarial de la aplicación.
El archivo de contexto es similar al siguiente:
El archivo de contexto del agente es similar al siguiente:
{
"templates": [
{
"nl_query": "Count prague loan accounts",
"sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = 'Prague'",
"intent": "How many accounts associated with loans are located in the Prague region?",
"manifest": "How many accounts associated with loans are located in a given city?",
"parameterized": {
"parameterized_intent": "How many accounts associated with loans are located in $1",
"parameterized_sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = $1"
}
}
],
"facets": [
{
"sql_snippet": "T.\"A11\" BETWEEN 6000 AND 10000",
"intent": "Average salary between 6000 and 10000",
"manifest": "Average salary between a given number and a given number",
"parameterized": {
"parameterized_intent": "Average salary between $1 and $2",
"parameterized_sql_snippet": "T.\"A11\" BETWEEN $1 AND $2"
}
}
]
}
Cuando un usuario final hace una pregunta en lenguaje natural, QueryData prioriza la coincidencia de la pregunta con las plantillas y las facetas que auditó el desarrollador que selecciona el contexto. Una vez que QueryData identifica una coincidencia, usa la plantilla de consulta y las facetas seleccionadas para sintetizar una consulta de base de datos. Luego, la lógica del conjunto de contexto ejecuta esa consulta en la base de datos para mostrar resultados precisos.
Un paso recomendado es definir búsquedas de valores dentro de tu contexto. Las búsquedas de valores permiten que el agente asigne frases de valores a valores específicos almacenados en las columnas de tu base de datos. Esto fundamenta el LLM en tus datos reales, lo que ayuda a resolver ambigüedades, como si un término se refiere a un nombre de District o a una City.
Si el agente no encuentra una plantilla coincidente, usa búsquedas de valores para asignar frases en lenguaje natural a valores específicos almacenados en las columnas de tu base de datos. Esto fundamenta el LLM en tus datos reales, lo que ayuda a resolver ambigüedades, como si un término se refiere a un District, Name o una City.
El extremo QueryData en la API
de Conversational Analytics es
una herramienta de agente que permite la integración programática con tus aplicaciones para
habilitar la generación de consulta en SQL a partir de preguntas en lenguaje natural. En una aplicación conversacional, el extremo QueryData se debe usar dentro del framework que administra el historial y el contexto de la conversación.Para aplicar la resolución de entidades y mantener una seguridad estricta a nivel de la fila, puedes usar vistas seguras parametrizadas (PSV). Para obtener más información, consulta Protege y controla el acceso a los datos de la aplicación con vistas seguras parametrizadas.
¿Qué sigue?
- Obtén información para probar QueryData en Cloud SQL Studio.