Descripción general de los conjuntos de contexto

Un conjunto de información contextual es el conocimiento del dominio que potencia QueryData. Define cómo funciona tu lógica empresarial antes de que tu aplicación se publique, de modo que QueryData pueda responder preguntas en lenguaje natural con una exactitud cercana al 100% y una baja latencia en línea.

Si bien el contexto de dominio puede adoptar muchas formas, los conjuntos de contexto admiten tres tipos de contexto especializados:

  • Plantillas de consultas: Consultas en SQL aprobadas previamente para preguntas empresariales comunes.
  • Facetas de consulta: Son filtros modulares, como "starter family" o "ocean view", que se adjuntan de forma dinámica a las plantillas.
  • Búsquedas de valores: Son búsquedas de entidades que asignan frases de usuario a valores exactos de la base de datos y resuelven la ambigüedad.

Se admiten las siguientes bases de datos:

  • AlloyDB para PostgreSQL
  • Cloud SQL para MySQL
  • Cloud SQL para PostgreSQL
  • Spanner
  • Firestore compatible con MongoDB
  • Bigtable

Qué son los conjuntos de información contextual

Creas y optimizas conjuntos de contexto en el momento del diseño con el agente de ingeniería de contexto. El agente de ingeniería de contexto ejecuta una comparativa de referencia representativa a través de QueryData, puntúa los resultados y define mejor de forma iterativa (hill-climbs) tu conjunto de contexto. Luego, verifica la versión final con un conjunto de pruebas de exclusión no visto para evitar el sobreajuste y sube automáticamente el conjunto de contexto aGoogle Cloud.

Vincular tu base de datos con un conjunto de contexto seleccionado ofrece dos beneficios principales para la producción:

  • Precisión cercana al 100% que se generaliza: Los esquemas de bases de datos describen tablas y columnas, pero no pueden decirle a un modelo qué distancia se considera "cercana" o qué calificación hace que una escuela sea "buena". Los conjuntos de contexto fundamentan QueryData en las reglas empresariales verificadas de tu organización, mientras que los patrones parametrizados permiten que un conjunto de contexto compacto se generalice en variaciones de frases, combinaciones de filtros y valores de entidades.
  • Ejecución rápida en línea y baja latencia: La ingeniería de contexto traslada el razonamiento de esquemas costoso sin conexión al tiempo de diseño:
    • Ejecución con coincidencia de contexto con un conjunto de contexto: Ejecución rápida de un solo paso a través de la coincidencia de plantillas precompiladas y las búsquedas de valores indexados.
    • Síntesis de zero-shot para consultas imprevistas sin plantillas: Tarda de 2 a 3 veces más porque el modelo debe explorar los metadatos del esquema y sintetizar SQL en el entorno de ejecución.
    • Exploración abierta basada en agentes con herramientas de SQL sin procesar: Suele tardar más de 30 segundos debido a las consultas de prueba y error de varios turnos y a los bucles de corrección de errores.

Tipos de contexto en un conjunto de contextos

En el entorno de ejecución, QueryData combina los tres tipos de contexto en un solo paso. Por ejemplo, si un usuario pregunta lo siguiente:

"Búscame casas cerca de buenas escuelas en Del Mar para una familia que recién empieza, con vista al mar".

QueryData resuelve la solicitud en cuatro pasos coordinados:

  1. Una plantilla de consulta proporciona la estructura de consulta principal para "casas cerca de buenas escuelas en $1", aplicando reglas de negocio para la distancia (dentro de 3 kilómetros) y la clasificación de la escuela (5 o mejor).
  2. Las facetas de consulta insertan filtros modulares para "casa para familia pequeña" (3 a 4 dormitorios, 2 o más baños) y "vista al mar" (búsqueda de similitud de vectores).
  3. Una búsqueda de valor encuentra 'Del Mar' en la columna cities.city_name y verifica su tipo de concepto.
  4. Las explicaciones de intención se combinan en una explicación certificada que se devuelve junto con los resultados de la consulta: "Casas en Del Mar a menos de 3 kilómetros de escuelas con una calificación de 5 o más, con 3 a 4 dormitorios y vista al mar".

Plantillas de consulta

Las plantillas de consultas 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 certificada de cómo se interpretó una pregunta.

Por ejemplo, si un usuario le pregunta a una aplicación de bienes raíces: "Encuéntrame casas cerca de buenas escuelas en Del Mar", el esquema de la base de datos por sí solo no define qué distancia se considera "cerca", qué calificación hace que una escuela sea "buena" o cómo clasificar las propiedades coincidentes. Una plantilla de consulta captura esa interpretación empresarial exacta, como las propiedades que se encuentran a menos de 3 kilómetros de una escuela con una clasificación de 5 o más, ordenadas por una puntuación ponderada de clasificación y proximidad, y la generaliza para cualquier ciudad.

Los componentes principales de una plantilla de consulta son los siguientes:

  • Ejemplo de pregunta en lenguaje natural: Es una pregunta representativa que se hace en inglés simple, como "Encuentra casas cerca de buenas escuelas en Del Mar".
  • Consulta en SQL de ejemplo: Es la consulta en SQL verificada que responde la pregunta según tus reglas empresariales.
  • Patrón de pregunta generalizado: Es un patrón generado de forma automática con valores específicos reemplazados por descripciones genéricas, como "Encuentra casas cerca de buenas escuelas en una ciudad determinada", que se usa para hacer coincidir las preguntas entrantes con las variaciones de frases.
  • Explicación de la intención: Es una explicación certificada y en lenguaje sencillo de las reglas empresariales que aplica la consulta, como "Buscar casas en $1 a menos de 3 kilómetros de una escuela con una clasificación de al menos 5".
  • Consulta en SQL parametrizada: Es la consulta en SQL ejecutable que corresponde a la explicación de la intención, con parámetros como $1.

Facetas de consulta

Las facetas de consulta son un conjunto seleccionado de condiciones de lenguaje natural representativas con predicados de SQL correspondientes. Las facetas administran el filtrado y las condiciones, lo que permite que las plantillas de consulta realicen búsquedas por facetas sin necesidad de una plantilla independiente para cada combinación de filtros.

Por ejemplo, un usuario puede extender la consulta "Encuentra casas cerca de buenas escuelas en Del Mar" con condiciones adicionales:

  • "...para una familia que recién empieza", que se asigna a un filtro de SQL estructurado, como properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0.
  • "...con vista al mar", que usa la búsqueda de similitud de vectores en columnas no estructuradas, como listing_description, listing_image_embeddings y customer_reviews.

Los componentes principales de una faceta de consulta son los siguientes:

  • Fragmento de SQL: Es la condición de filtro de SQL reutilizable, como properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0.
  • Patrón de condición generalizado: Es el patrón de lenguaje natural con el que coincide la faceta, como "Adecuado para una familia que recién comienza".
  • Explicación de la intención: Es una explicación certificada de la condición del filtro, que se devuelve como parte de la justificación general de la respuesta.
  • Fragmento de SQL parametrizado: Es el fragmento de SQL ejecutable que corresponde a la explicación de la intención.

Búsquedas de valor

Las búsquedas de valores son consultas definidas por el desarrollador que usan funciones de coincidencia, como la coincidencia exacta, la similitud de trigramas difusos o la búsqueda de vectores semánticos, para encontrar valores y su contexto dentro de una base de datos. QueryData usa la vinculación de valores en estos resultados para identificar qué tablas y columnas contienen un valor coincidente, comprender el tipo de concepto del valor, corregir errores ortográficos y detectar ambigüedades antes de ejecutar SQL.

Por ejemplo, si un usuario le pide a una aplicación de bienes raíces las "propiedades vendidas de Westwod en el último mes", un modelo solo de esquema podría filtrar por `WHERE name = 'Westwod'` y no devolver resultados. Las consultas de búsqueda de valores usan la coincidencia aproximada para resolver el error ortográfico "Westwod" en el valor de la base de datos 'Westwood'. Además, si 'Westwood' existe en varios tipos de conceptos de la base de datos, como City, Municipality y Brokerage, la vinculación de valores detecta la ambigüedad para que QueryData pueda pedirle al usuario que aclare a qué concepto se refiere en lugar de adivinarlo.

Los componentes principales de una consulta de búsqueda de valores son los siguientes: