QueryData te permite interactuar con los datos de tu base de datos usando 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 de la atención al cliente: Maneja consultas de gran volumen, como "¿Dónde está mi pedido?" o "¿Cuál es mi saldo actual?".
- Asistentes de compra de comercio electrónico: Ayudan a los usuarios a navegar por grandes catálogos de productos con búsquedas en lenguaje natural, como "Muéstrame calzado para correr por menos de USD 100".
- Herramientas de operaciones en terreno: Permiten 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 crear aplicaciones basadas en 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. Estos archivos de contexto se crean con la ayuda de la CLI de Gemini. Luego, subirás el archivo de contexto a un conjunto de contexto que crearás en la consola de Cloud de Confiance by S3NS. 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:
{
"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"
}
}
],
"value_searches": [
{
"query": "SELECT $value as value, 'accounts.account_type' as columns, 'Account Type' as concept_type, 0 as distance, '{}'::text as context FROM \"accounts\" T WHERE T.\"account_type\" = $value",
"concept_type": "Account Type",
"description": "Exact match for account types"
}
]
}
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 búsqueda en la base de datos para devolver 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 lo ayuda a resolver ambigüedades, como si un término se refiere a un nombre de District o a un 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 lo ayuda a resolver ambigüedades, como si un término se refiere a un District, un Name o un City.
El extremo QueryData de la API de Conversational Analytics es una herramienta basada en agentes 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.