Búsqueda SQL (NL2SQL)

Utiliza SQL Search (NL2SQL) para convertir solicitudes en lenguaje natural en SQL validado para datos empresariales en OCI Generative AI.

NL2SQL ayuda a los agentes de IA empresarial a trabajar con datos empresariales federados sin mover ni copiar los datos subyacentes. Utiliza una capa de enriquecimiento semántico para asignar términos de negocio a campos, tablas y uniones de base de datos y, a continuación, genera SQL a partir de la entrada de lenguaje natural.

NL2SQL genera solo SQL. No ejecuta la consulta.

Antes de empezar

Antes de utilizar NL2SQL, cree una base de datos y configure las conexiones de base de datos necesarias.

Como mínimo, necesita:

  • Oracle Autonomous Database de origen
  • Una conexión de enriquecimiento de servicio de Database Tools
  • Una conexión de consulta de servicio de Database Tools

Creación de una tienda semántica

Para utilizar NL2SQL, cree un recurso de almacén semántico de OCI.

Un almacén semántico está respaldado por un almacén de vectores con datos estructurados e incluye dos conexiones de DBTools:

  • Conexión de enriquecimiento
  • Conexión de consulta

En la consola

En la consola, cree un almacén de vectores y seleccione Datos estructurados. Al seleccionar Datos estructurados, aparecen las opciones de configuración del almacén semántico, incluidos los valores de enriquecimiento y los detalles de conexión a la base de datos.

Mediante el uso de OCI Generative AI API

En la API de IA generativa de OCI, cree un almacén semántico mediante la operación CreateSemanticStore.

URL Base Ruta de punto final Autenticación
https://generativeai.${region}.oci.oraclecloud.com/20231130 /semanticStores Solo sesión de IAM

La API de CreateSemanticStore forma parte de la API del servicio OCI Generative AI y utiliza la autenticación basada en OCI IAM.

Conexiones de DBTools

NL2SQL utiliza dos conexiones de base de datos con fines diferentes.

Conexión de enriquecimiento

La conexión de enriquecimiento es la conexión con privilegios superiores que se utiliza durante el enriquecimiento. Necesita privilegios para:

  • Ejecutar consultas
  • Realizar operaciones DDL
  • Acceder a valores de ejemplo de la base de datos

OCI Generative AI utiliza esta conexión para leer la información del esquema y crear los metadatos necesarios para la generación SQL.

Conexión de consulta

La conexión de consulta es la conexión con menos privilegios que se utiliza para ejecutar consultas en nombre del usuario que realiza la consulta.

Esta separación ayuda a mantener las responsabilidades de generación y ejecución distintas y apoya un control de acceso más seguro.

Enriquecimiento

El proceso de enriquecimiento lee los metadatos del esquema, como tablas y columnas, de la base de datos conectada. OCI Generative AI utiliza estos metadatos para generar un SQL mejor.

Puede seleccionar cuando se ejecute el enriquecimiento:

  • Al crear: el enriquecimiento se inicia automáticamente después de crear el almacén semántico
  • Manual: el enriquecimiento se ejecuta más tarde mediante una llamada de API independiente

Para disparar el enriquecimiento manualmente, llame a la API GenerateEnrichmentJob.

Generar SQL a partir de lenguaje natural

Una vez completado el enriquecimiento, llame a la API GenerateSqlFromNl para convertir la entrada de lenguaje natural en SQL.

Esta API:

  • Acepta la entrada de lenguaje natural
  • Utiliza los metadatos semánticos enriquecidos
  • Devuelve SQL generado

Esta API no ejecuta el SQL en la base de datos.

Ejecución de Consulta

El servidor MCP de DBTools organiza el flujo de ejecución completo:

  1. Llama al servicio NL2SQL para generar SQL.
  2. Autoriza la solicitud.
  3. Ejecuta la consulta en la base de datos origen.
  4. Aplica las barandillas adecuadas.
  5. Utiliza la identidad del usuario final para la ejecución.

Esto permite a los agentes trabajar con datos empresariales mientras mantienen la ejecución en el sistema de origen con los permisos existentes.

Uso de NL2SQL en un Flujo de Trabajo Agentic

NL2SQL puede ser parte de un flujo de trabajo más amplio.

Un cliente puede:

  1. Enviar una solicitud a la API de respuestas para iniciar la planificación del agente y solicitar la validación
  2. Llame a GenerateSqlFromNl para convertir la solicitud en lenguaje natural en SQL.
  3. Utilice el servidor MCP de DBTools para ejecutar la consulta, si es necesario
  4. Vuelva a transferir el SQL generado o los resultados de la consulta a la API de respuestas para el siguiente paso del flujo de trabajo

Esto le permite combinar el acceso a datos estructurados con un razonamiento y una orquestación de agentes más amplios.

Cómo se adapta NL2SQL a los agentes

NL2SQL es una capacidad de datos empresariales en OCI Generative AI. Es útil cuando su agente necesita trabajar con datos empresariales estructurados mediante la traducción de solicitudes en lenguaje de negocio a SQL.

A diferencia de la búsqueda de archivos, el intérprete de código, las llamadas de función y las llamadas MCP, NL2SQL no está configurado como una entrada tools de API de respuestas. Utiliza su propio flujo de API y recursos de soporte, centrados en:

  • Almacén semántico
  • Conexiones de DBTools
  • Enriquecimiento
  • Generar desde SQL

API NL2SQL

Puede utilizar la siguiente API para la herramienta NL2SQL:

Almacenes semánticos
  • CreateSemanticStore
  • ListSemanticStores
  • GetSemanticStore
  • UpdateSemanticStore
  • ChangeSemanticStoreCompartment
  • DeleteSemanticStore
Trabajos de enriquecimiento
  • ListEnrichmentJobs
  • GetEnrichmentJob
  • GenerateEnrichmentJob
  • CancelEnrichmentJob
  • GenerateSqlFromNl
Generar SQL
GenerateSqlFromNl