Créez une structure d'IA conversationnelle agénétique et haute fidélité avec Select AI et Oracle APEX

Cette solution de chatbot basée sur l'IA tire parti d'une structure agénétique qui intègre des fonctionnalités de visualisation et de reporting des données tout en minimisant les hallucinations et en garantissant une grande précision.

Les requêtes en langage naturel (NL) sont traduites en instructions SQL exécutables pour l'accès à Oracle Database, avec un mécanisme humain en boucle pour valider le code SQL avant son exécution. La solution est hébergée sur OCI, avec une interface utilisateur Oracle APEX Application Development, des agents d'IA basés sur LangChain exécutés sur OCI Compute et une intégration avec les services OCI Generative AI et Oracle Autonomous AI Database. L'architecture permet une interaction transparente du langage naturel avec les données d'entreprise, combinant un front-end de traitement du langage naturel réactif avec des visualisations dynamiques et un back-end sécurisé et hautes performances pour l'exploration des données en temps réel.

Cette solution de chatbot d'IA offre :

  • Requête en langage naturel sur la base de données avec accès aux données basé sur les rôles
  • Visualisation et reporting dynamiques des données
  • Validation SQL humaine en boucle
  • Hallucinations proches de zéro

Architecture

La structure agénétique comprend des couches fonctionnelles distinctes qui gèrent l'interaction des utilisateurs, l'accès aux API, le traitement de l'IA et le stockage des données sur Oracle Cloud Infrastructure (OCI).

Le schéma suivant présente les couches fonctionnelles et le flux de processus :



select-ai-apex-architecture-oracle.zip

Workflow:

  1. L'utilisateur se connecte et soumet une requête en langage naturel via l'application frontale Oracle APEX Application Development.
  2. La demande est acheminée via Oracle Cloud Infrastructure API Gateway vers le moteur d'orchestration.
  3. La demande est acheminée de la passerelle d'API OCI vers OCI Compute contenant des agents d'IA, développés avec une structure telle que LangChain, exécutés sur des instances de conteneur OCI.
  4. L'agent exécute un workflow conçu pour garantir l'exactitude des requêtes et pour atténuer les inexactitudes (hallucinations).
  5. L'agent appelle la fonctionnalité Select AI d'Oracle Autonomous AI Database, qui tire parti d'OCI Generative AI pour traduire la requête en langage naturel et ses métadonnées en une instruction SQL exécutable.
  6. Les données source résident sur une instance distincte d'Autonomous Database, telle qu'Oracle Exadata Database Service. Oracle Autonomous AI Database fonctionne comme un sidecar intelligent, accédant à ces données à l'aide de liens de base de données sécurisés. Ce modèle architectural permet d'utiliser la fonctionnalité Select AI sur les données stockées dans des versions de base de données antérieures sans nécessiter de migration des données.
  7. Les résultats de la requête SQL finale sont renvoyés à l'utilisateur via le front-end de l'application. Chaque réponse est formatée en langage naturel pour imiter une expérience de type chat et est accompagnée de visualisations de données adaptées au résultat de requête spécifique.
  8. Le contrôle d'accès basé sur les rôles (RBAC) est appliqué au cours de ce processus. L'agent sélectionne un profil Select AI spécifique correspondant au rôle de l'utilisateur. Chaque profil est limité à un sous-ensemble spécifique du schéma de la base de données source, ce qui garantit que le code SQL généré accède uniquement aux données autorisées.

Cette architecture utilise les principaux composants OCI suivants :

  • Oracle Autonomous AI Database

    Fournit le coeur de la couche de données d'IA, notamment :

    • Intégration de données : accède à la source non Autonomous Database à l'aide de liens de base de données (sidecar).
    • Interaction du langage naturel : utilise la fonctionnalité Select AI intégrée pour la conversion du langage naturel en SQL.
    • Recherche de vecteur : utilise la fonctionnalité de recherche de vecteur d'IA de la base de données pour la boucle de retour de génération augmentée de récupération (RAG).
  • Oracle APEX Application Development

    Fournit une plate-forme low-code pour la création de l'interface utilisateur orientée données. étroitement intégré à Autonomous Database, il sert de front-end pour la saisie des requêtes et la visualisation des résultats.

  • OCI Compute avec exécution Python

    Héberge le moteur d'orchestration des workflows d'IA. Il reçoit les demandes de l'application Service APEX à l'aide de l'API REST, interroge la base de données et appelle OCI Generative AI. Ce composant fournit un environnement d'exécution persistant à faible latence.

  • OCI Generative AI

    Permet d'accéder aux grands modèles de langage (LLM) pour trois fonctions clés :

    • Du langage naturel au langage SQL : sert de moteur d'inférence pour la fonctionnalité Select AI.
    • Vectorisation des commentaires : génère des incorporations à partir de texte pour le stockage dans le magasin de vecteurs AI.
    • Services LLM back-end : peuvent être appelés directement par le back-end Python pour d'autres tâches génératives telles que la synthèse des résultats.
  • Passerelle d'API OCI

    Fournit une adresse gérée et sécurisée pour les services back-end, acheminant les demandes du front-end Service APEX vers le moteur d'orchestration sur les instances de conteneur OCI.

  • Oracle Exadata Database Service

    Base de données hautes performances contenant les données source à interroger.

  • Oracle Cloud Infrastructure Web Application Firewall (WAF)

    OCI WAF agit comme un bouclier de sécurité critique, inspectant toutes les demandes du front-end du service APEX pour protéger la passerelle d'API et les services back-end contre les attaques Web malveillantes.

  • OCI Identity and Access Management (IAM)

    Les stratégies IAM sont utilisées pour l'inspection, le contrôle d'accès et l'exécution sécurisée.

Flux de travail agénétique pour réduire les hallucinations

Le flux de travail suivant décrit une approche agénétique conçue pour atteindre des hallucinations proches de zéro dans le traitement des requêtes en langage naturel (NL) :



hallucination-réduction-workflow-oracle.zip

  • Entrée utilisateur : un utilisateur soumet une requête en langage naturel via le front-end Service APEX.
  • Point de reprise RAG : la requête est d'abord évaluée par rapport au magasin de vecteurs d'IA dans Oracle Autonomous AI Database à l'aide de la recherche de similarité sémantique. Si une requête pré-validée et étroitement mise en correspondance est trouvée, le code SQL correspondant est réutilisé pour assurer la cohérence et l'efficacité.
  • Génération du langage naturel vers le langage SQL : si aucune correspondance n'est identifiée, le moteur d'orchestration déclenche la fonctionnalité Sélectionner une IA dans Autonomous Database. Ce composant s'appuie sur OCI Generative AI pour convertir l'entrée de l'utilisateur en une requête SQL exécutable.
  • Validation de requête : le code SQL généré est présenté à l'utilisateur pour vérification et approbation, en introduisant une protection humaine en boucle avant l'exécution.
  • Exécution et extraction de données : après validation, la requête SQL est exécutée sur Oracle Exadata Database Service. Les données obtenues sont affichées dans le front-end du service APEX.
  • Boucle de retour : la requête en langage naturel validée et le code SQL correspondant sont intégrés en tant que vecteurs à l'aide d'OCI Generative AI et sont stockés dans la banque de vecteurs d'IA. Cela améliore la résolution future des requêtes basées sur la RAG en développant le référentiel des paires de requêtes sécurisées.

Ce flux de travail itératif permet au système d'apprendre en permanence des commentaires des utilisateurs, réduisant progressivement la probabilité d'hallucinations au fil du temps.

Modèle Sidecar pour l'accès aux données héritées

Oracle Autonomous AI Database agit comme un sidecar d'IA avec des bases de données héritées, gérant le langage naturel vers la traduction SQL et la recherche vectorielle, tout en fédérant les requêtes vers Exadata Database Service à l'aide de liens de base de données sécurisés.

Cette approche élimine la nécessité de migrer les données héritées, ce qui permet aux entreprises de moderniser l'accès aux requêtes sans perturber les systèmes existants.

Exploitation du service APEX intégré Oracle JET pour la visualisation dynamique

Pour prendre en charge les visualisations dynamiques basées sur les données, cette architecture utilise l'intégration directe avec les composants de graphique déclaratifs d'Oracle JET plutôt que du service APEX. Cela permet un rendu d'exécution requis basé sur les données générées par l'IA.

L'architecture de modèle-vue-vue-modèle (MVVM) d'Oracle JET, qui tire parti de Knockout.js, permet la gestion modulaire des dépendances, la liaison de données asynchrone et la composition de l'interface utilisateur d'exécution. Cela permet au front-end de répondre dynamiquement aux sorties JSON structurées générées par les requêtes SQL basées sur l'IA.

En séparant le rendu de graphique de la couche déclarative du service APEX, nous obtenons un contrôle architectural sur le pipeline de visualisation. Les types de graphique et les modèles de données sont sélectionnés et introduits lors de l'exécution, ce qui permet une expérience utilisateur réactive et extensible alignée sur les workflows d'analyse modernes.

Présentation du pipeline de rendu :

  • Génération de modèle : les résultats SQL générés par l'IA sont transformés en JSON structuré à l'aide d'agents d'IA.
  • Charge utile JSON : stockée dans les éléments de page du service APEX pour l'accès front-end.
  • Composition de la vue : les recommandations de type de graphique, telles que les graphiques à barres, à courbes et à secteurs, sont extraites par l'IA et stockées dans un élément de groupe radio Service APEX, ce qui permet aux utilisateurs de basculer entre différents types de graphique.
  • Exécution de graphique d'exécution : la fonction JavaScript lie le modèle JSON au composant de graphique Oracle JET au sein d'une région statique affichant la visualisation en temps réel.

Recommandations

Utilisez les recommandations suivantes comme point de départ pour créer une structure d'IA conversationnelle. Vos exigences peuvent différer de l'architecture décrite ici.
  • Humain en boucle

    Établissez des directives et des interfaces claires pour cette interaction. Concevoir des interfaces de révision intuitives et définir des critères d'escalade clairs pour garantir une supervision humaine à la fois efficace et efficiente. Cela favorise la confiance dans le système et permet une amélioration continue grâce à des boucles de rétroaction.

  • Informations en retour

    Implémenter des analyses complètes sur les journaux de retour générés par le système. Cela donnera un aperçu de la façon dont le système apprend et évolue. Le suivi des indicateurs clés de performance (KPI) tels que la précision des requêtes, la satisfaction des utilisateurs et les temps de réponse aidera à identifier les domaines à améliorer et à garantir une expérience utilisateur de haute qualité.

Points à prendre en compte

Tenez compte des points suivants lorsque vous déployez cette architecture de référence sur Oracle Cloud Infrastructure (OCI) :

  • IA générative
    • Pour des performances prévisibles, en particulier dans les environnements de production, déployez des clusters d'IA dédiés pour l'inférence de modèle. Ces clusters ne sont pas partagés avec d'autres locataires, ce qui garantit des temps de réponse cohérents. Pour les tâches moins critiques telles que la génération d'intégration, le mode à la demande peut être une option plus rentable.
    • Pour les intégrations, vous pouvez importer des modèles préentraînés dans Oracle Autonomous AI Database ou générer des intégrations en externe à l'aide d'OCI Generative AI. Oracle Autonomous AI Database inclut un moteur d'exécution ONNX (Open Neural Network Exchange) intégré, permettant l'intégration de modèles à exécuter directement dans la base de données.
  • Haute disponibilité
    • Agents d'IA : pour garantir une haute disponibilité, les agents d'IA basés sur LangChain doivent être déployés sur plusieurs instances de calcul dans différents domaines de pannes ou domaines de disponibilité. Nous vous recommandons d'utiliser les pools d'instances OCI pour l'évolutivité et la facilité de gestion. Un équilibreur de charge OCI répartit le trafic entre ces instances et effectue des vérifications de l'état.
    • Services gérés : d'autres composants de l'architecture, tels qu'Autonomous Database, le service APEX, OCI Generative AI et OCI API Gateway, sont des services entièrement gérés avec une tolérance aux pannes intégrée et une haute disponibilité, ne nécessitant aucune configuration supplémentaire pour la redondance.
    • Récupération après sinistre : pour une protection contre les pannes à l'échelle du site, activez Oracle Autonomous Data Guard pour répliquer la base de données vers une autre région OCI.
  • Sécurité et Conformité
    • Approche de sécurité par couches : Implémenter une stratégie de sécurité multicouche. Cela doit inclure des mesures de sécurité réseau telles que l'utilisation d'un Oracle Cloud Infrastructure Web Application Firewall et le respect du principe du moindre privilège pour toutes les interactions de service.
    • Contrôle d'accès de niveau fin : outre le contrôle d'accès basé sur les rôles (RBAC) implémenté via des profils d'IA, envisagez d'utiliser des stratégies de base de données privée virtuelle (VPD) pour un contrôle plus granulaire de l'accès aux données.

Accusés de réception

  • Auteurs : Mirjana Rakuljic, Shahvaiz Janjua, Sydney Nurse
  • Contributeurs : Robert Lies