Cree un marco de IA conversacional ágil y de alta fidelidad con Select AI y Oracle APEX

Esta solución de chatbot basada en IA aprovecha un marco ágil que incorpora capacidades de visualización e informes de datos, al tiempo que minimiza las alucinaciones y garantiza una alta precisión.

Las consultas de lenguaje natural (NL) se traducen en sentencias SQL ejecutables para el acceso a Oracle Database, con un mecanismo humano en el bucle para validar SQL antes de la ejecución. La solución se aloja en OCI, con una interfaz de usuario de Oracle APEX Application Development, agentes de IA basados en LangChain que se ejecutan en OCI Compute e integración con los servicios de OCI Generative AI y Oracle Autonomous AI Database. La arquitectura permite una interacción perfecta del lenguaje natural con los datos empresariales, combinando un front-end de procesamiento de lenguaje natural con capacidad de respuesta con visualizaciones dinámicas y un back-end seguro y de alto rendimiento para la exploración de datos en tiempo real.

Esta solución de chatbot de IA ofrece:

  • Consulta en lenguaje natural en la base de datos con acceso a los datos basado en roles
  • Visualización e informes de datos dinámicos
  • Validación SQL de ciclo humano
  • Casi cero alucinaciones

Arquitectura

El marco agentic incluye capas funcionales distintas que gestionan la interacción del usuario, el acceso a la API, el procesamiento de IA y el almacenamiento de datos en Oracle Cloud Infrastructure (OCI).

En el siguiente diagrama se muestran las capas funcionales y el flujo de proceso:



select-ai-apex-architecture-oracle.zip

Flujo de trabajo:

  1. El usuario se conecta y envía una consulta en lenguaje natural a través de la aplicación front-end de Oracle APEX Application Development.
  2. La solicitud se envía a través de Oracle Cloud Infrastructure API Gateway al motor de orquestación.
  3. La solicitud se enruta de OCI API Gateway a OCI Compute que contiene agentes de IA, desarrollados con un marco como LangChain, que se ejecutan en OCI Container Instances.
  4. El agente ejecuta un flujo de trabajo diseñado para garantizar la precisión de las consultas y mitigar las imprecisiones (alucinaciones).
  5. El agente llama a la función Seleccionar IA de Oracle Autonomous AI Database, que aprovecha OCI Generative AI para traducir la consulta en lenguaje natural y sus metadatos en una sentencia SQL ejecutable.
  6. Los datos de origen residen en una instancia independiente que no es de Autonomous Database, como Oracle Exadata Database Service. Oracle Autonomous AI Database funciona como sidecar inteligente, accediendo a estos datos mediante enlaces de base de datos seguros. Este patrón arquitectónico permite el uso de la capacidad Select AI en datos almacenados en versiones anteriores de la base de datos sin necesidad de migración de datos.
  7. Los resultados de la consulta SQL final se devuelven al usuario mediante el front-end de la aplicación. Cada respuesta se formatea en lenguaje natural para emular una experiencia similar a un chat y se acompaña de visualizaciones de datos adaptadas al resultado de consulta específico.
  8. El control de acceso basado en roles (RBAC) se aplica durante este proceso. El agente selecciona un perfil específico, Select AI, que corresponde al rol del usuario. Cada perfil está restringido a un subjuego específico del esquema de la base de datos origen, lo que garantiza que el SQL generado solo acceda a datos autorizados.

Esta arquitectura utiliza los siguientes componentes principales de OCI:

  • Oracle Autonomous AI Database

    Proporciona el núcleo de la capa de datos de IA, que incluye:

    • Integración de datos: accede al origen que no es de Autonomous Database mediante enlaces de base de datos (sidecar).
    • Interacción de lenguaje natural: utiliza la función incorporada Select AI para la conversión de lenguaje natural a SQL.
    • Búsqueda vectorial: emplea la capacidad de búsqueda vectorial de IA de la base de datos para el bucle de retroalimentación de generación aumentada de recuperación (RAG).
  • Desarrollo de aplicaciones de Oracle APEX

    Proporciona una plataforma con poco código para crear la interfaz de usuario basada en datos. Estrechamente integrado con Autonomous Database, sirve como front-end para la entrada de consultas y la visualización de resultados.

  • OCI Compute con tiempo de ejecución de Python

    Aloja el motor de orquestación para los flujos de trabajo de IA. Recibe solicitudes de la aplicación del servicio APEX mediante la API de REST, consulta la base de datos y llama a OCI Generative AI. Este componente proporciona un entorno de tiempo de ejecución persistente y de baja latencia.

  • OCI Generative AI

    Proporciona acceso a modelos de lenguaje grandes (LLM) para tres funciones clave:

    • Natural Language to SQL: sirve como motor de inferencia para la función Select AI.
    • Vectorización de comentarios: genera incrustaciones a partir de texto para almacenamiento en AI Vector Store.
    • Servicios de backend de LLM: el backend de Python puede llamar directamente a otras tareas generativas, como el resumen de resultados.
  • Gateway de API de OCI

    Proporciona un punto final gestionado y seguro para servicios de backend, enrutando solicitudes desde el front-end del servicio APEX al motor de orquestación en OCI Container Instances.

  • Oracle Exadata Database Service

    Base de datos de alto rendimiento que contiene los datos de origen que se van a consultar.

  • Oracle Cloud Infrastructure Web Application Firewall (WAF)

    OCI WAF actúa como un escudo de seguridad crítico, inspeccionando todas las solicitudes desde el front-end del servicio APEX para proteger el gateway de API y los servicios de backend de ataques web maliciosos.

  • Gestión de identidad y acceso de OCI (IAM)

    Las políticas de IAM se utilizan para la inspección, el control de acceso y la ejecución segura.

Flujo de trabajo de Agentic para minimizar alucinaciones

El siguiente flujo de trabajo describe un enfoque ágil diseñado para lograr alucinaciones casi cero en el procesamiento de consultas en lenguaje natural (NL):



alucinación-reducción-flujo de trabajo-oracle.zip

  • Entrada de usuario: un usuario envía una consulta en lenguaje natural mediante el front-end del servicio APEX.
  • Punto de control RAG: la consulta se evalúa primero con respecto al almacén de vectores de IA en Oracle Autonomous AI Database mediante la búsqueda de similitud semántica. Si se encuentra una consulta validada previamente que coincide estrechamente, su SQL correspondiente se reutiliza para garantizar la coherencia y la eficacia.
  • Lenguaje natural a generación SQL: si no se identifica ninguna coincidencia, el motor de orquestación dispara la función Seleccionar IA en Autonomous Database. Este componente utiliza OCI Generative AI para convertir la entrada del usuario en una consulta SQL ejecutable.
  • Validación de consultas: el SQL generado se presenta al usuario para su revisión y aprobación, introduciendo una protección humana en el bucle antes de la ejecución.
  • Ejecución y recuperación de datos: después de la validación, la consulta SQL se ejecuta en Oracle Exadata Database Service. Los datos resultantes se presentan en el frontend del servicio APEX.
  • Bucle de comentarios: la consulta de lenguaje natural validada y su SQL correspondiente se embeben como vectores mediante OCI Generative AI y se almacenan en AI Vector Store. Esto mejora la futura resolución de consultas basada en RAG ampliando el repositorio de pares de consultas de confianza.

Este flujo de trabajo iterativo permite al sistema aprender continuamente de los comentarios de los usuarios, reduciendo progresivamente la probabilidad de alucinaciones a lo largo del tiempo.

Patrón de sidecar para acceso a datos heredados

Oracle Autonomous AI Database actúa como sidecar de IA con bases de datos heredadas, manejando el lenguaje natural para la traducción SQL y la búsqueda vectorial, al tiempo que federa las consultas a Exadata Database Service mediante enlaces de base de datos seguros.

Este enfoque elimina la necesidad de migrar datos heredados, lo que permite a las empresas modernizar el acceso a las consultas sin interrumpir los sistemas existentes.

Aprovechamiento del servicio APEX integrado de Oracle JET para la visualización dinámica

Para soportar visualizaciones dinámicas basadas en datos, esta arquitectura utiliza la integración directa con Oracle JET en lugar de los componentes declarativos del gráfico del servicio APEX. Esto permite la representación en tiempo de ejecución necesaria basada en datos generados por IA.

La arquitectura de modelo de vista de modelo (MVVM) de Oracle JET, que utiliza Knockout.js, permite la gestión de dependencias modulares, el enlace de datos asíncrono y la composición de la interfaz de usuario en tiempo de ejecución. Esto permite al front-end responder dinámicamente a las salidas JSON estructuradas generadas por consultas SQL basadas en IA.

Al separar la representación de gráficos de la capa declarativa del servicio APEX, obtenemos control arquitectónico sobre el pipeline de visualización. Los tipos de gráficos y los modelos de datos se seleccionan e introducen en tiempo de ejecución, lo que permite una experiencia de usuario ampliable y con capacidad de respuesta alineada con flujos de trabajo de análisis modernos.

Visión General del Pipeline de Presentación:

  • Generación de modelos: los resultados de SQL generados por IA se transforman en JSON estructurado mediante agentes de IA.
  • Cargas útiles de JSON: se almacenan en elementos de la página del servicio APEX para el acceso al front-end.
  • Composición de vista: las recomendaciones de tipo de gráfico, por ejemplo, gráficos de barras, líneas y circulares, se recuperan mediante AI y se almacenan en un elemento de grupo de radio del servicio APEX, lo que permite a los usuarios cambiar entre diferentes tipos de gráfico.
  • Ejecución de gráfico en tiempo de ejecución: la función JavaScript enlaza el modelo JSON al componente de gráfico de Oracle JET dentro de una región estática que representa la visualización en tiempo real.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida para crear un marco de IA conversacional. Los requisitos pueden diferir de la arquitectura que se describe aquí.
  • Humano en el bucle

    Establecer directrices e interfaces claras para esta interacción. Diseñe interfaces de revisión intuitivas y defina criterios de escalada claros para garantizar que la supervisión humana sea eficiente y eficaz. Esto fomenta la confianza en el sistema y permite la mejora continua a través de bucles de retroalimentación.

  • Comentarios

    Implementar análisis completos sobre los registros de comentarios generados por el sistema. Esto proporcionará información sobre cómo el sistema está aprendiendo y evolucionando. La supervisión de indicadores clave de rendimiento (KPI), como la precisión de las consultas, la satisfacción del usuario y los tiempos de respuesta, ayudará a identificar áreas de mejora y a garantizar una experiencia de usuario de alta calidad.

Consideraciones

Tenga en cuenta los siguientes puntos al desplegar esta arquitectura de referencia en Oracle Cloud Infrastructure (OCI):

  • IA generativa
    • Para un rendimiento predecible, especialmente en entornos de producción, despliegue clusters de IA dedicados para la inferencia de modelos. Estos clusters no se comparten con otros inquilinos, lo que garantiza tiempos de respuesta consistentes. Para tareas menos críticas como la generación de incrustaciones, el modo bajo demanda puede ser una opción más rentable.
    • Para incrustaciones, puedes importar modelos preentrenados en Oracle Autonomous AI Database o generar incrustaciones externamente mediante OCI Generative AI. Oracle Autonomous AI Database incluye un motor de tiempo de ejecución Open Neural Network Exchange (ONNX) incorporado, que permite incrustar modelos para que se ejecuten directamente dentro de la base de datos.
  • Alta Disponibilidad
    • Agentes de IA: para garantizar una alta disponibilidad, los agentes de IA basados en LangChain se deben desplegar en varias instancias informáticas de diferentes dominios de errores o dominios de disponibilidad. Recomendamos utilizar pools de instancias de OCI para facilitar la escalabilidad y la gestión. Un equilibrador de carga de OCI distribuye el tráfico entre estas instancias y realiza comprobaciones del sistema.
    • Servicios gestionados: otros componentes de la arquitectura, como Autonomous Database, APEX Service, OCI Generative AI y OCI API Gateway, son servicios totalmente gestionados con tolerancia a fallos incorporada y alta disponibilidad, que no requieren configuración adicional para la redundancia.
    • Recuperación ante desastres: para protegerse frente a interrupciones en todo el sitio, permita que Oracle Autonomous Data Guard replique la base de datos en otra región de OCI.
  • Seguridad y cumplimiento
    • Enfoque de Seguridad en Capas: Implementar una estrategia de seguridad de varias capas. Esto debe incluir medidas de seguridad de red, como el uso de un Oracle Cloud Infrastructure Web Application Firewall y el cumplimiento del principio de privilegio mínimo para todas las interacciones de servicio.
    • Control de acceso detallado: además del control de acceso basado en roles (RBAC) implementado a través de perfiles de IA, considere el uso de políticas de bases de datos privadas virtuales (VPD) para un control más granular sobre el acceso a los datos.

Acuses de recibo

  • Autores: Mirjana Rakuljic, Shahvaiz Janjua, Sydney Nurse
  • Contributors: Robert Lies