Los agentes de datos te permiten interactuar con los datos de tu base de datos a través del lenguaje conversacional. Puedes crear agentes de datos definiendo el contexto para un conjunto de tablas en tu base de datos, lo que permite que los agentes de datos traduzcan preguntas en lenguaje natural en consultas precisas para tus casos de uso objetivo.
El contexto es información específica de la base de datos que permite que el LLM genere consultas con alta precisión. El contexto incluye plantillas y facetas (fragmentos) que ayudan al agente a comprender el esquema de tu base de datos y la lógica empresarial de tus aplicaciones.
Se admiten las siguientes bases de datos:
- AlloyDB para PostgreSQL
- Cloud SQL para MySQL
- Cloud SQL para PostgreSQL
- Spanner
Cuándo usar agentes de datos
Puedes usar los agentes de datos para crear aplicaciones de datos conversacionales ideales para casos de uso como los 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 preguntas en lenguaje natural, como "Muéstrame calzado para correr de menos de USD 100".
- Sistemas de reservas: Permiten a los usuarios verificar la disponibilidad y reservar citas, vuelos o servicios de restaurantes a través de interfaces de chat.
- 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 funcionan los agentes de datos
Para crear aplicaciones basadas en agentes eficaces, el agente debe comprender la organización de tus datos y la lógica empresarial. Proporcionas esta información en forma de contexto del agente.
El contexto del agente se define en archivos que contienen objetos JSON para plantillas y facetas. Crearás estos archivos de contexto con la ayuda de la CLI de Gemini. Luego, subirás el archivo de contexto a un agente de datos que crearás en la consola de Google Cloud. Este proceso permite que el agente aprenda el esquema específico de la base de datos y la lógica empresarial de la aplicación.
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"
}
}
],
"fragments": [
{
"fragment": "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_fragment": "T.\"A11\" BETWEEN $1 AND $2"
}
}
]
}
Cuando un usuario final hace una pregunta en lenguaje natural, el agente prioriza la coincidencia de la pregunta con las plantillas y las facetas que auditó el desarrollador que selecciona el contexto. Una vez que el agente identifica una coincidencia, usa la plantilla de búsqueda y las facetas seleccionadas para sintetizar una búsqueda en la base de datos. Luego, el agente ejecuta esa consulta en la base de datos para devolver resultados precisos.
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.
Contexto del agente
El contexto del agente consiste en un conjunto seleccionado de plantillas y facetas en formato JSON que guían al agente para traducir preguntas en lenguaje natural en consultas para una base de datos específica. Definir el contexto garantiza una generación de SQL de alta precisión para los patrones de consultas comunes.
Asegúrate de que el contexto del agente sea preciso y completo en su cobertura de las consultas esperadas de la aplicación para maximizar la precisión.
Plantillas de consulta
Las plantillas de preguntas son un conjunto seleccionado de preguntas representativas en lenguaje natural con las consultas en SQL correspondientes. También incluyen explicaciones para proporcionar una justificación declarativa de la generación de lenguaje natural a SQL.
Un objeto de plantilla de consulta tiene un aspecto 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"
}
}
]
},
...
Los componentes principales del objeto JSON de la plantilla de consulta son los siguientes:
nl_query: Es un ejemplo de una consulta en lenguaje natural que controla el agente de datos.sql: Es la consulta en SQL para la consulta en lenguaje natural.intent: Es el objetivo o propósito de la búsqueda en lenguaje natural. Si no se establece, este valor se establece de forma predeterminada en la búsqueda en lenguaje natural.manifest: Es una forma generalizada y generada automáticamente del intent.parameterized_intent: Es una forma de la intención generada automáticamente y basada en plantillas, con valores de entidades reemplazados por parámetros.parameterized_sql: Es una forma de plantilla generada automáticamente de la consulta en SQL que corresponde a la intención parametrizada.
Facetas de búsqueda
Las facetas de búsqueda son un conjunto seleccionado de condiciones representativas en lenguaje natural con predicados SQL correspondientes. Las facetas administran los filtros y las condiciones, lo que permite que las plantillas de consultas realicen búsquedas por facetas.
Un objeto de faceta de búsqueda (fragmento) se ve de la siguiente manera:
{
...
"fragments": [
{
"fragment": "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_fragment": "T.\"A11\" BETWEEN $1 AND $2"
}
}
]
}
Los componentes principales del objeto JSON del fragmento son los siguientes:
fragment: Es un predicado de SQL.intent: Es una explicación del predicado de SQL.manifest: Es una forma generalizada y generada automáticamente del intent.parameterized_intent: Es una forma de la intención generada automáticamente y basada en plantillas, con valores de entidades reemplazados por parámetros.parameterized_fragment: Es una forma de plantilla generada automáticamente del fragmento que corresponde al intent parametrizado.
Limitaciones
Los agentes de datos tienen las siguientes limitaciones:
- El contexto del agente para bases de datos solo admite plantillas y facetas.
- El contexto del agente para las bases de datos solo lo usa el extremo
QueryDataen la API de Conversational Analytics.
¿Qué sigue?
- Obtén más información para crear o borrar un agente de datos en AlloyDB Studio.