Créez un cadre d'IA conversationnelle agentique et hautement fidèle avec une sélection d'intelligence artificielle et Oracle APEX

Cette solution d'agent conversationnel guidée par l'IA exploite un cadre agentique qui intègre des capacités de visualisation des données et de production de rapports, tout en minimisant les hallucinations et en assurant une haute précision.

Les interrogations en langage naturel (NL) sont traduites en énoncés SQL exécutables pour l'accès à Oracle Database, avec un mécanisme en boucle permettant de valider SQL avant l'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 s'exécutant sur le service OCI Compute et une intégration aux 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 élément frontal réactif de traitement du langage naturel avec des visualisations dynamiques et un élément dorsal sécurisé et haute performance pour l'exploration de données en temps réel.

Cette solution d'agent conversationnel d'IA offre ce qui suit :

  • Interrogation en langage naturel sur la base de données avec accès aux données en fonction des rôles
  • Visualisation et production de rapports dynamiques des données
  • Validation SQL en boucle
  • Hallucinations proches de zéro

Architecture

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

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



sélection-ai-apex-architecture-oracle.zip

Flux de travail :

  1. L'utilisateur se connecte et soumet une interrogation en langage naturel au moyen de l'application frontale Oracle APEX Application Development.
  2. La demande est acheminée au moyen du service Passerelle d'API pour Oracle Cloud Infrastructure API Gateway vers le moteur d'orchestration.
  3. La demande est acheminée du service Passerelle d'API OCI vers le service Calcul OCI qui contient des agents d'intelligence artificielle, développés avec un cadre tel que LangChain, s'exécutant sur des instances de conteneur OCI.
  4. L'agent exécute un flux de travail conçu pour garantir l'exactitude des interrogations et atténuer les inexactitudes (hallucinations).
  5. L'agent appelle la fonction Sélectionner l'IA d'Oracle Autonomous AI Database, qui tire parti de l'IA générative OCI pour traduire l'interrogation en langage naturel et ses métadonnées en un énoncé SQL exécutable.
  6. Les données sources résident sur une base de données distincte non Autonomous Database, par exemple Oracle Exadata Database Service. Oracle Autonomous AI Database fonctionne comme un side-car 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 fonction Sélectionner une intelligence artificielle pour les données stockées dans des versions antérieures de base de données sans nécessiter de migration de données.
  7. Les résultats de l'interrogation SQL finale sont renvoyés à l'utilisateur via l'application front end. Chaque réponse est formatée en langage naturel pour émuler une expérience de clavardage. Elle est accompagnée de visualisations de données adaptées au résultat de l'interrogation 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 d'intelligence artificielle 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 composants OCI principaux suivants :

  • Oracle Autonomous AI Database

    Fournit le cœur de la couche de données de l'IA, notamment :

    • Data Integration : Permet d'accéder à la source non Autonomous Database à l'aide de liens de base de données (sidecar).
    • Interaction en langage naturel : utilise la fonction de sélection d'intelligence artificielle intégrée pour la conversion du langage naturel en langage SQL.
    • Recherche de vecteurs : Emploie la fonction de recherche de vecteurs d'IA de la base de données pour la boucle de rétroaction de génération augmentée de récupération (RAG).
  • Développement d'applications Oracle APEX

    Fournit une plateforme à faible code pour créer une interface utilisateur axée sur les données. Intégré étroitement à Autonomous Database, il sert d'élément frontal pour l'entrée d'interrogation et la visualisation des résultats.

  • Service de calcul pour OCI avec exécution Python

    Héberge le moteur d'orchestration des flux de travail d'IA. Il reçoit les demandes de l'application du service APEX à l'aide de l'API REST, interroge la base de données et appelle le service d'intelligence artificielle générative pour OCI. Ce composant fournit un environnement d'exécution persistant et à faible latence.

  • Service d'intelligence artificielle générative pour OCI

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

    • Langage naturel vers SQL : sert de moteur d'inférence pour la fonction Sélectionner l'IA.
    • Feedback Vectorization : Génère des plongements à partir du texte pour le stockage dans le magasin de vecteurs AI.
    • Services LLM dorsaux : Peut être appelé directement par l'élément dorsal Python pour d'autres tâches génératives telles que la récapitulation des résultats.
  • Passerelle d'API OCI

    Fournit un point d'extrémité géré et sécurisé pour les services dorsaux, en acheminant les demandes de l'extrémité avant du service APEX vers le moteur d'orchestration sur les instances de conteneur OCI.

  • Service Oracle Exadata Database

    Base de données haute performance contenant les données sources à interroger.

  • Service de pare-feu d'application Web pour Oracle Cloud Infrastructure Web Application Firewall (WAF)

    Le service WAF pour OCI agit comme une protection de sécurité critique. Il inspecte toutes les demandes provenant de l'extrémité frontale du service APEX pour protéger la passerelle d'API et les services dorsaux contre les attaques Web malveillantes.

  • OCI Identity and Access Management (IAM)

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

Flux de travail agéntique pour réduire les hallucinations

Le flux de travail suivant décrit une approche agéntique conçue pour atteindre des hallucinations quasi nulles dans le traitement des requêtes en langage naturel (NL) :



hallucination-réduction-flux de travail-oracle.zip

  • Entrée de l'utilisateur : Un utilisateur soumet une interrogation en langage naturel au moyen de l'élément frontal du service APEX.
  • Point de vérification RAG : L'interrogation est d'abord évaluée par rapport au magasin de vecteurs IA dans Oracle Autonomous AI Database à l'aide de la recherche de similarité sémantique. Si une interrogation prévalidée et étroitement correspondante 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 SQL : Si aucune correspondance n'est identifiée, le moteur d'orchestration déclenche la fonction Sélectionner l'intelligence artificielle dans Autonomous Database. Ce composant utilise le service d'intelligence artificielle générative pour OCI pour traduire l'entrée de l'utilisateur en une interrogation SQL exécutable.
  • Validation d'interrogation : Le SQL généré est présenté à l'utilisateur pour révision et approbation, ce qui introduit une protection en boucle humaine avant l'exécution.
  • Exécution et extraction de données : Après validation, l'interrogation SQL est exécutée sur Oracle Exadata Database Service. Les données résultantes sont affichées dans l'élément frontal du service APEX.
  • Boucle de rétroaction : L'interrogation de langage naturel validée et le SQL correspondant sont intégrés en tant que vecteurs à l'aide de l'IA générative d'OCI et sont stockés dans le magasin de vecteurs d'IA. Cela améliore la résolution future des interrogations basées sur la RAG en développant le référentiel de paires d'interrogations sécurisées.

Ce flux de travail itératif permet au système d'apprendre continuellement à partir 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 existantes

Oracle Autonomous AI Database agit comme un side-car d'IA avec les bases de données existantes, gérant le langage naturel vers la traduction SQL et la recherche vectorielle, tout en fédérant les interrogations vers le service Exadata Database à l'aide de liens de base de données sécurisés.

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

Tirer parti d'APEX Service intégré à Oracle JET pour la visualisation dynamique

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

L'architecture de modèle-vue-modèle (MVVM) d'Oracle JET, qui exploite 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 frontal de répondre de manière dynamique aux sorties JSON structurées générées par des interrogations 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 au moment de l'exécution, ce qui permet une expérience utilisateur réactive et extensible alignée sur les flux de travail d'analyse modernes.

Aperçu du pipeline de rendu :

  • Génération de modèle : Les résultats SQL générés par l'intelligence artificielle sont transformés en JSON structuré à l'aide d'agents d'IA.
  • Données utiles JSON : Stockées dans les éléments de page du service APEX pour l'accès frontal.
  • Voir la composition : Les recommandations de type graphique, par exemple les graphiques à barres, les graphiques linéaires et les graphiques à secteurs, sont extraites par l'intelligence artificielle et stockées dans un élément de groupe radio du service APEX, ce qui permet aux utilisateurs de passer d'un type de graphique à un autre.
  • Exécution de graphique à l'exécution : La fonction JavaScript lie le modèle JSON au composant de graphique Oracle JET dans une région statique, ce qui rend la visualisation en temps réel.

Recommandations

Utilisez les recommandations suivantes comme point de départ pour créer un cadre d'IA conversationnelle. Vos besoins peuvent différer de l'architecture décrite ici.
  • Human-in-the-loop

    Établissez des directives et des interfaces claires pour cette interaction. Concevoir des interfaces d'examen intuitives et définir des critères d'escalade clairs pour s'assurer que la surveillance humaine est à 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.

  • Rétroaction

    Mettre en œuvre des analyses complètes sur les journaux de rétroaction 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 d'indicateurs clés de rendement (ICR) tels que l'exactitude des requêtes, la satisfaction des utilisateurs et les temps de réponse aidera à identifier les domaines à améliorer et à assurer une expérience utilisateur de haute qualité.

Points à considérer

Tenez compte des points suivants lors du déploiement de cette architecture de référence sur Oracle Cloud Infrastructure (OCI) :

  • Intelligence artificielle générative
    • Pour une performance prévisible, en particulier dans les environnements de production, déployez des grappes d'IA dédiées pour l'inférence de modèle. Ces grappes ne sont pas partagées 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 sur 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 à l'externe à l'aide de l'IA générative d'OCI. Oracle Autonomous AI Database comprend un moteur d'exécution ONNX (Open Neural Network Exchange), qui permet aux modèles d'intégration de s'exécuter directement dans la base de données.
  • Haute disponibilité
    • Agents d'IA : Pour assurer 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 d'erreur ou domaines de disponibilité. Il est recommandé d'utiliser des groupes d'instances OCI pour plus d'évolutivité et de facilité de gestion. Un équilibreur de charge OCI répartit le trafic entre ces instances et effectue des vérifications d'état.
    • Services gérés : Les autres composants de l'architecture, tels qu'Autonomous Database, le service APEX, l'IA générative d'OCI et le service de passerelle d'API OCI, 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 vous protéger contre les pannes à l'échelle du site, activez Oracle Autonomous Data Guard pour répliquer la base de données dans une autre région OCI.
  • Sécurité et conformité
    • Approche de sécurité à plusieurs niveaux : Implémentez une stratégie de sécurité à plusieurs niveaux. Cela doit inclure des mesures de sécurité de réseau telles que l'utilisation d'un service de pare-feu d'application Web pour Oracle Cloud Infrastructure Web Application Firewall et le respect du principe du privilège minimal pour toutes les interactions de service.
    • Contrôle d'accès détaillé : En plus du contrôle d'accès basé sur les rôles (RBAC) mis en œuvre au moyen de profils d'IA, envisagez d'utiliser des politiques de base de données privée virtuelle (VPD) pour un contrôle plus granulaire de l'accès aux données.

Remerciements

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