Utiliser la fonction Select AI pour générer des instructions SQL à partir d'invites en langage naturel

Base de données d'IA autonome sur une infrastructure Exadata dédiée Sélectionnez IA pour interroger vos données à l'aide du langage naturel.

La fonction Sélectionner l'IA permet à Autonomous AI Database d'utiliser l'IA générative avec de grands modèles de langage (LLM) pour convertir le texte d'entrée de l'utilisateur en Oracle SQL. Sélectionnez AI pour traiter l'invite en langage naturel, ajouter les métadonnées à l'invite, puis générer et exécuter une interrogation SQL.

Plates-formes prises en charge

La sélection de l'intelligence artificielle est prise en charge pour les services Autonomous AI Database sans serveur et Autonomous AI Database sur une infrastructure Exadata dédiée et le nuage chez les clients.

  • Base de données Autonomous AI Serverless
  • Base de données d'IA autonome sur une infrastructure Exadata dédiée
  • Région Base de données d'IA autonome sur une infrastructure Exadata dédiée
  • Base de données Autonomous AI Database Cloud@Customer

À propos de la génération SQL

L'utilisation du langage naturel pour interagir avec vos données de base de données est désormais réalisable avec les LLM. Cela signifie que vous pouvez utiliser le langage naturel, par exemple l'anglais ordinaire, pour interroger la base de données.

Lorsque vous utilisez Select AI, Autonomous AI Database gère le processus de conversion du langage naturel en SQL. Cela signifie que vous pouvez fournir une invite en langage naturel plutôt qu'un code SQL pour interagir avec vos données. Select AI sert d'outil de productivité pour les utilisateurs et les développeurs SQL et permet aux utilisateurs SQL non experts de tirer des informations utiles de leurs données, sans avoir à comprendre les structures de données ou les langages techniques.

L'ensemble DBMS_CLOUD_AI dans Autonomous AI Database permet l'intégration à un LLM spécifié par l'utilisateur pour générer du code SQL à l'aide d'invites en langage naturel. Le package permet de fournir au LLM une connaissance du schéma de base de données et de lui demander d'écrire une interrogation SQL cohérente avec ce schéma. L'ensemble DBMS_CLOUD_AI fonctionne avec des fournisseurs d'intelligence artificielle tels que OpenAI, Cohere, Service Azure OpenAI et Oracle Cloud Infrastructure Generative AI.

Note :

Les utilisateurs doivent avoir un compte auprès du fournisseur d'IA et fournir leurs données d'identification au moyen des objets DBMS_CLOUD_AI utilisés par la base de données autonome sur l'IA.

Terminologie

Il est important de comprendre les différents termes utilisés avec Select AI avant de l'utiliser.

Les termes suivants sont liés à la fonction Sélectionner l'IA :

Terme Définition

Données d'identification de la base de données

Les données d'identification de base de données sont des données d'identification d'authentification utilisées pour accéder aux bases de données et interagir avec elles. Ils se composent généralement d'un nom d'utilisateur et d'un mot de passe, parfois complétés par des facteurs d'authentification supplémentaires tels que des jetons de sécurité. Ces informations d'identification sont utilisées pour établir une connexion sécurisée entre une application ou un utilisateur et une base de données, garantissant que seules les personnes ou les systèmes autorisés peuvent accéder aux données stockées dans la base et les manipuler.

Hallucination en LLM

L'hallucination dans le contexte des grands modèles linguistiques fait référence à un phénomène où le modèle génère un texte incorrect, non significatif ou sans rapport avec l'invite d'entrée. Bien qu'ils résultent de la tentative du modèle de générer du texte cohérent, ces instances peuvent contenir des informations fabriquées, trompeuses ou purement imaginatives. L'hallucination peut survenir en raison de biais dans les données d'entraînement, d'un manque de compréhension du contexte approprié ou de limites dans le processus d'entraînement du modèle.

GIA Le service de gestion des identités et des accès (GIA) pour Oracle Cloud Infrastructure vous permet de configurer les droits d'accès aux ressources en nuage. Vous pouvez contrôler le type d'accès affecté à un groupe d'utilisateurs et les ressources concernées. Pour en savoir plus, voir Aperçu du service de gestion des identités et des accès.

Invites du langage naturel

Les invites en langage naturel sont des instructions lisibles par l'homme ou des demandes fournies pour guider les modèles d'IA générative, tels que les modèles de langage volumineux. Au lieu d'utiliser des langages de programmation ou des commandes spécifiques, les utilisateurs peuvent interagir avec ces modèles en entrant des invites dans un format plus conversationnel ou en langage naturel. Les modèles génèrent ensuite la sortie en fonction de l'invite fournie.

Liste de contrôle d'accès au réseau

Une liste de contrôle d'accès au réseau est un ensemble de règles ou d'autorisations qui définissent le trafic réseau autorisé à passer par un périphérique réseau, tel qu'un routeur, un pare-feu ou une passerelle. Les listes de contrôle d'accès sont utilisées pour contrôler et filtrer le trafic entrant et sortant en fonction de divers critères tels que les adresses IP, les numéros de port et les protocoles. Ils jouent un rôle crucial dans la sécurité du réseau en permettant aux administrateurs de gérer et de restreindre le trafic réseau pour empêcher l'accès non autorisé, les attaques potentielles et les violations de données.

Recherche de similarité

La recherche de similarité identifie et extrait les points de données qui correspondent étroitement à une interrogation donnée en comparant les vecteurs de fonction dans un magasin de vecteurs.

Distances vectorielles

Les distances vectorielles mesurent la similarité ou la dissimilarité entre les vecteurs caractéristiques en calculant la distance entre eux dans un espace multidimensionnel.

Index vectoriel

Un index vectoriel organise et stocke les vecteurs de fonction pour permettre une recherche et une extraction efficaces des données connexes.

Magasin de vecteurs

Un magasin de vecteurs comprend des systèmes qui stockent, gèrent et activent la recherche de similarité sémantique impliquant des intégrations de vecteurs. Cela inclut les bases de données vectorielles autonomes et la recherche de vecteurs IA dans Oracle Database 23ai.

Directives d'utilisation

Fournit des directives d'utilisation qui garantissent l'utilisation efficace et appropriée des invites de langage naturel pour la génération SQL afin d'améliorer l'expérience utilisateur.

Utilisation projetée

Cette fonction est destinée à la génération et à l'exécution d'interrogations SQL résultant d'invites en langage naturel fournies par l'utilisateur. Il automatise ce qu'un utilisateur peut faire manuellement en fonction de ses métadonnées de schéma en combinaison avec un modèle de langage volumineux (LLM) de son choix.

Bien que toute invite puisse être fournie, y compris celles qui ne sont pas liées à la production de résultats d'interrogation SQL, Select AI se concentre sur la génération d'interrogation SQL. La sélection de l'intelligence artificielle permet de soumettre des demandes générales avec l'action chat.

Invite - Données d'augmentation

La base de données augmente l'invite spécifiée par l'utilisateur avec les métadonnées de la base de données pour atténuer les hallucinations du LLM. L'invite augmentée est ensuite envoyée au LLM spécifié par l'utilisateur pour produire la requête.

La base de données augmente l'invite uniquement avec les métadonnées de schéma. Ces métadonnées peuvent inclure des définitions de schéma, des commentaires de table et de colonne et du contenu disponible à partir du dictionnaire de données et du catalogue. Aux fins de génération SQL, la base de données ne fournit pas de contenu de table ou de vue (valeurs réelles de ligne ou de colonne) lors de l'augmentation de l'invite.

L'action narrate, cependant, fournit le résultat de l'interrogation, qui peut contenir des données de base de données, au LLM spécifié par l'utilisateur à partir duquel générer un texte en langage naturel décrivant les résultats de l'interrogation.

AVERTISSEMENT :

Les grands modèles linguistiques (LLM) ont été formés sur un large éventail de documents et de contenus textuels, généralement à partir d'Internet. Par conséquent, les LLM peuvent avoir incorporé des modèles de contenu non valide ou malveillant, y compris l'injection SQL. Ainsi, alors que les LLM sont capables de générer du contenu utile et pertinent, ils peuvent également générer des informations incorrectes et fausses, y compris des requêtes SQL qui produisent des résultats inexacts et / ou compromettent la sécurité de vos données.

Les interrogations générées en votre nom par le fournisseur LLM spécifié par l'utilisateur seront exécutées dans votre base de données. Votre utilisation de cette fonction est uniquement à vos propres risques et, nonobstant toute autre condition relative aux services fournis par Oracle, constitue votre acceptation de ce risque et votre exclusion expresse de la responsabilité ou de la responsabilité d'Oracle pour tout dommage résultant de cette utilisation.

Sélectionnez votre fournisseur d'IA et vos LLM

Choisissez un fournisseur d'IA et un LLM qui répond à vos normes de sécurité et qui s'aligne sur vos besoins spécifiques, tels que la génération de texte ou de code.

Les différents LLM excellent dans diverses tâches en fonction de leurs données d'entraînement et de l'objectif prévu. Certains modèles sont excellents pour la génération de texte, mais peuvent ne pas fonctionner correctement dans la génération de code, tandis que d'autres sont spécifiquement optimisés pour les tâches de codage. Choisissez un LLM qui convient le mieux à vos besoins.

Fournisseur d'intelligence artificielle GML Modèle d'intégration pour la RAG Objet

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

  • meta.llama-3.3-70b-instruct (par défaut)
  • meta.llama-3.2-90b-vision-instruct
  • meta.llama-3.2-11b-vision-instruct
  • meta.llama-3.1-70b-instruct
  • meta.llama-3.1-405b-instruct
  • cohere.command-r-08-2024
  • cohere.command-r-plus-08-2024
  • cohere.command-r-16k (obsolète)
  • cohere.command–r-plus (obsolète)
  • xai.grok-3
  • xai.grok-3-fast
  • xai.grok-3-mini
  • xai.grok-3-mini-rapide
  • cohere.embed-english-v3.0 (par défaut)
  • cohere.embed-multilingue-v3.0
  • cohere.embed-english-light-v3.0
  • cohere.embed-multilingual-light-v3.0

Voir À propos de l'intégration de modèles dans le service d'intelligence artificielle générative.

Les modèles de clavardage du service d'intelligence artificielle générative pour OCI sont pris en charge pour toutes les actions SELECT AI, telles que runsql, showsql, explainsql, narrate et chat.

Les modèles de génération de texte OCI ne sont pris en charge que pour l'action SELECT AI chat.

Pour configurer vos attributs de profil, voir .

Service Azure OpenAI

  • GPT-4o
  • GPT-4
  • GPT-4 Turbo avec Vision
  • GPT-3.5-Turbo

text-embedding-ada-002

Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action chat et de la RAG Select AI.

OpenAI

  • gpt-3.5-turbo (par défaut)
  • gpt-4o
  • gpt-4o-mini
  • gpt-4
  • gpt-4-0613
  • gpt-4-32k
  • gpt-4-32k-0613
  • gpt-3.5-turbo-0613
  • gpt-3.5-turbo-16k
  • gpt-3.5-turbo-16k-0613

text-embedding-ada-002

Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action chat et de la RAG Select AI.

Compatible avec OpenAI

Modèles de fournisseurs compatibles OpenAI, tels que :
  • Feux d'artifice IA
  • xAI
  • Les autres
Intégration de modèles à partir de fournisseurs de type OpenAI. Par exemple, voir Modèles d'intégration de Fireworks AI.

Prend en charge un large éventail de cas d'utilisation.

Cohere

  • commande (par défaut)
  • tous les jours (expérimental)
  • commande-r
  • commande-r-plus
  • lumière de commande
  • commande-lumière-nuit (expérimentale)
  • modèles personnalisés

embarquer-english-v2.0

Idéal pour l'action chat.

Google

  • gemini-1.5-flash (par défaut)
  • gemini-1.5-pro
  • gemini-1.0-pro
text-embedding-004 (par défaut)

Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action chat et de la RAG Select AI.

Anthropique

  • claude-3-5-sonnet-20240620 (par défaut)
  • claude-3-opus-20240229
  • claude-3-sonnet-20240229
  • claude-3-haiku-20240307
S.O.

Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action chat et de la RAG Select AI.

S'étreindre le visage

  • Mixtral-8x7B-Instruct-v0.1 (valeur par défaut)
  • Meta-Llama-3-70B-Instruct
  • Qwen1.5-1.8B
  • autres modèles de clavardage
S.O.

Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action chat et de la RAG Select AI.

AWS

  • amazon.titan-embed-text-v1
  • amazon.titan-embed-text-v2 :0
  • cohere.embed-english-v3

Prend en charge un large éventail de cas d'utilisation.

Note :

  • Spécifiez un fournisseur compatible OpenAI au moyen de provider_endpoint au lieu du paramètre provider. Voir .

  • Pour les modèles qui acceptent des images, utilisez meta.llama-3.2-90b-vision-instruct. Ce modèle est spécifiquement entraîné pour la vision et les images. Bien qu'il puisse être utilisé pour la génération de texte et SQL, le modèle convient mieux aux images. Pour en savoir plus, voir Clavarder avec le service d'intelligence artificielle générative pour OCI.

    Le modèle meta.llama-3.2-11b-vision-instruct offre des capacités multimodales robustes.

  • Les modèles d'intégration sont également appelés modèles de transformateurs.

Sélectionner des concepts d'intelligence artificielle

Examine les concepts et les termes liés à Select AI.

À propos de la génération SQL

Il est désormais possible d'utiliser le langage naturel pour interagir avec les données de votre base de données avec les LLM. Cela signifie que vous pouvez utiliser un langage naturel, par exemple l'anglais simple, pour interroger la base de données.

Lorsque vous utilisez Select AI, Autonomous AI Database gère le processus de conversion du langage naturel en SQL. Cela signifie que vous pouvez fournir une invite en langage naturel plutôt qu'un code SQL pour interagir avec vos données. Select AI sert d'outil de productivité pour les utilisateurs et les développeurs SQL et permet aux utilisateurs SQL non experts de tirer des informations utiles de leurs données, sans avoir à comprendre les structures de données ou les langages techniques.

L'ensemble DBMS_CLOUD_AI dans Autonomous AI Database permet l'intégration à un LLM spécifié par l'utilisateur pour générer du code SQL à l'aide d'invites en langage naturel. Le package permet de fournir au LLM une connaissance du schéma de base de données et de lui demander d'écrire une interrogation SQL cohérente avec ce schéma. L'ensemble DBMS_CLOUD_AI fonctionne avec des fournisseurs d'intelligence artificielle tels que OpenAI, Cohere, Service Azure OpenAI et Oracle Cloud Infrastructure Generative AI.

Note :

Les utilisateurs doivent avoir un compte auprès du fournisseur d'IA et fournir leurs données d'identification au moyen des objets DBMS_CLOUD_AI utilisés par la base de données autonome sur l'IA.

Utiliser DBMS_CLOUD_AI pour configurer les profils d'IA

Autonomous AI Database utilise des profils d'IA pour faciliter et configurer l'accès à un LLM et pour configurer la génération d'énoncés SQL à partir d'invites de langage naturel.

Les profils d'IA comprennent des objets de base de données qui sont la cible pour les interrogations en langage naturel. Les métadonnées utilisées à partir de ces cibles peuvent inclure des noms de table de base de données, des noms de colonne, des types de données de colonne et des commentaires. Vous créez et configurez des profils d'IA à l'aide des procédures DBMS_CLOUD_AI.CREATE_PROFILE et DBMS_CLOUD_AI.SET_PROFILE.

Exigences pour configurer l'ensemble DBMS_CLOUD_AI

Les conditions suivantes sont requises pour exécuter DBMS_CLOUD_AI :

  • Accès à un compte en nuage Oracle Cloud Infrastructure et à une instance Autonomous AI Database.
  • Un compte d'API payant pour un fournisseur d'IA pris en charge, l'un des suivants :
    • OpenAI : Pour activer OpenAI pour générer du SQL à partir d'invites en langage naturel, obtenez des clés d'API à partir de votre compte payant OpenAI.

      Vous pouvez trouver votre clé d'API secrète dans vos paramètres d'utilisateur.

    • Cohère : Pour permettre à Cohere de générer des énoncés SQL à partir d'invites en langage naturel, obtenez des clés d'API à partir de votre compte payant Cohere.

      Cliquez sur Tableau de bord, puis sur Clés d'API dans la barre de navigation de gauche. Copiez la clé d'API par défaut ou créez-en une autre. Pour plus d'informations, voir Clés d'API.

    • Service Azure OpenAI : Pour activer le service OpenAI Azure pour générer du SQL à partir d'invites en langage naturel, configurez le fournisseur d'intelligence artificielle et donnez-lui accès.

      Pour utiliser le service OpenAI pour Azure, procédez comme suit :

      1. Obtenez vos clés d'API secrètes. Vous pouvez trouver vos clés d'API dans la section Resource Management de votre portail Azure. Dans la page Ressource du service OpenAI Azure, cliquez sur Clés et point d'extrémité. Vous pouvez copier KEY1 ou KEY2.
      2. Créez une ressource de service OpenAI pour Azure et déployez un modèle : Créez et déployez une ressource de service Azure OpenAI.

        Conseil :

        • Notez le nom de la ressource et le nom du déploiement, car ces paramètres sont utilisés pour fournir l'autorisation d'accès au réseau et créer votre profil de service OpenAI Azure à l'aide de la procédure DBMS_CLOUD_AI.CREATE_PROFILE.
        • Pour en savoir plus sur les limites de débit pour le jeton par minute sur un modèle, voir Quotas et limites du service Azure OpenAI.
      3. Autoriser l'accès au service Azure OpenAI :
        • Vous pouvez utiliser votre clé d'API secrète pour autoriser l'accès au service Azure OpenAI. Pour en savoir plus, voir l'exemple dans .
    • Service d'intelligence artificielle générative pour OCI : Voir Comment générer la clé de signature d'API.
    • Google : Pour permettre à Google AI Studio de générer des réponses SQL et textuelles à vos invites en langage naturel, obtenez des clés d'API à partir de votre compte payant Google AI Studio.
      1. Allez à Google AI Studio.
      2. Cliquez sur Se connecter à Google AI Studio.
      3. Cliquez sur Get API key dans l'écran d'invite.
      4. Sélectionnez toutes les options applicables dans la page suivante.
      5. Cliquez sur Create API key.
      6. Cliquez sur Create API key in new project.

        L'écran affiche la progression et génère une clé d'API. Copiez la clé et enregistrez-la.

    • Anthropic : Pour permettre à Anthropic Developer Console de générer des réponses SQL et textuelles à vos invites en langage naturel, obtenez des clés d'API à partir de votre compte payant Anthropic Developer Console.
      1. Allez à Anthropic Developer Console.
      2. Inscrivez-vous pour un compte si vous n'en avez pas déjà un.
      3. Une fois connecté, naviguez jusqu'à la section API ou au tableau de bord.
      4. Recherchez une option pour générer ou voir des clés d'API.
      5. Cliquer pour créer une clé d'API.
      6. Copiez la clé d'API générée et enregistrez-la.

        L'API Claude est un service payant. Vous devrez ajouter des crédits à votre compte avant de pouvoir utiliser la clé d'API.

    • Hugging Face : Pour permettre à Hugging Face en tant que fournisseur d'intelligence artificielle de générer des réponses SQL et textuelles à vos invites de langage naturel, obtenez des clés d'API à partir de votre compte payant Hugging Face.
      1. Allez à Hugging Face.
      2. Inscrivez-vous pour un compte si vous n'en avez pas déjà un.
      3. Naviguez jusqu'aux paramètres de votre compte.
      4. Dans le menu de navigation, localisez les jetons d'accès.
      5. Cliquer pour créer une clé d'API.
      6. Copiez la clé d'API générée et enregistrez-la.
    • AWS : Pour activer AWS, obtenez votre clé d'API et votre ID modèle.

      Obtenez votre clé d'API et utilisez-la pour créer des données d'identification au moyen de DBMS_CLOUD.CREATE_CREDENTIAL.

      Procédez de la façon suivante pour obtenir votre clé d'API et le nom du modèle :

      1. Inscrivez-vous à un compte AWS si vous n'en avez pas déjà un.
      2. Créez vos clés d'accès et clés secrètes à partir de la console AWS Bedrock.
      3. Copiez les clés générées et enregistrez-les.
      4. Demander l'accès à leurs modèles de base. Voir Accéder aux modèles de fondation Amazon Bedrock.
      5. Obtenez l'ID modèle. Vous avez besoin de l'ID modèle dans la procédure DBMS_CLOUD_AI.CREATE_PROFILE. Le code de modèle dépend des ressources que vous utilisez. Si vous utilisez :

        Note :

        Le modèle importé n'est pas pris en charge par l'API Bedrock Converse.

      Pour utiliser AWS comme fournisseur, voir Exemple : Sélectionner l'IA avec AWS.

  • Privilèges de liste de contrôle d'accès réseau pour accéder à votre fournisseur d'intelligence artificielle externe.

    Note :

    La liste de contrôle d'accès réseau ne s'applique pas à l'intelligence artificielle générative OCI.
  • Données d'identification qui donnent accès au fournisseur d'intelligence artificielle.

Configurer l'ensemble DBMS_CLOUD_AI

Avant d'utiliser Select AI, voici les étapes à suivre pour activer DBMS_CLOUD_AI.

Pour configurer DBMS_CLOUD_AI :
  1. Accordez le privilège EXECUTE sur l'ensemble DBMS_CLOUD_AI à l'utilisateur qui souhaite utiliser Select AI.

    Par défaut, seul l'utilisateur ADMIN dispose du privilège EXECUTE. L'utilisateur ADMIN peut accorder le privilège EXECUTE à d'autres utilisateurs.

  2. Accorder l'accès à la liste de contrôle d'accès du réseau à l'utilisateur qui souhaite utiliser Select AI et pour le point d'extrémité du fournisseur d'intelligence artificielle.

    L'utilisateur ADMIN peut accorder l'accès à la liste de contrôle d'accès réseau. Pour plus d'informations, voir Procédure APPEND_HOST_ACE dans Informations de référence sur les ensembles et types PL/SQL pour Oracle Database 19c ou Informations de référence sur les ensembles et types PL/SQL pour Oracle Database 26ai.

  3. Créez des données d'identification pour permettre l'accès à votre fournisseur d'intelligence artificielle.

    Pour plus d'informations, voir Procédure CREATE_CREDENTIAL.

L'exemple suivant accorde le privilège EXECUTE à ADB_USER :
grant execute on DBMS_CLOUD_AI to ADB_USER;

L'exemple suivant accorde à ADB_USER le privilège d'utiliser le point d'extrémité api.openai.com.

BEGIN  
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => 'api.openai.com',
         ace  => xs$ace_type(privilege_list => xs$name_list('http'),
                             principal_name => 'ADB_USER',
                             principal_type => xs_acl.ptype_db)
   );
END;
/

APPEND_HOST_ACE Paramètres de fonction

Paramètre Description

host

L'hôte, qui peut être le nom ou l'adresse IP de l'hôte. Vous pouvez utiliser un caractère générique pour spécifier un domaine ou un sous-réseau IP. L'hôte ou le nom de domaine n'est pas sensible à la casse.

Pour OpenAI, utilisez api.openai.com.

Pour Cohere, utilisez api.cohere.ai.

Pour Azure OpenAI Service, utilisez <azure_resource_name>.openai.azure.com. Voir Attributs de profil pour en savoir plus sur azure_resource_name.

Pour Google, utilisez generativelanguage.googleapis.com.

Pour Anthropic, utilisez api.anthropic.com.

Pour Hugging Face, utilisez api-inference.huggingface.co.

ace

Les entrées de contrôle d'accès (ACE). Le type XS$ACE_TYPE est fourni pour construire chaque entrée ACE pour la liste de contrôle d'accès. Pour plus de détails, voir Création de listes de contrôle d'accès et de candidatures exceptionnelles dans Oracle Database 19c Real Application Security Administrator's and Developer's Guide ou Oracle Database 26ai Real Application Security Administrator's and Developer's Guide.

Voici un exemple de création de données d'identification pour permettre l'accès à OpenAI.

EXEC DBMS_CLOUD.CREATE_CREDENTIAL('OPENAI_CRED', 'OPENAI', 'your_api_token');

Paramètres DBMS_CLOUD.CREATE_CREDENTIAL

Paramètre Description

credential_name

Nom des données d'identification à stocker. Le paramètre credential_name doit respecter les conventions d'attribution de nom d'objet Oracle, qui n'autorisent pas les espaces ni les tirets.

username

Les arguments username et password spécifient vos données d'identification pour le fournisseur d'intelligence artificielle.

username est un nom d'utilisateur spécifié par l'utilisateur.

password

Les arguments username et password spécifient vos données d'identification pour le fournisseur d'intelligence artificielle.

password est la clé d'API secrète de votre fournisseur d'intelligence artificielle et dépend du fournisseur, c'est-à-dire OpenAI, Cohere, Service OpenAI Azure, OCI, Google, Anthropic ou Hugging Face. Voir Exigences pour configurer l'ensemble DBMS_CLOUD_AI pour plus de détails.

Créer et définir un profil d'IA

Décrit les étapes de création et d'activation d'un profil d'IA.

Utilisez DBMS_CLOUD_AI.CREATE_PROFILE pour créer un profil d'IA. Démarrez ensuite DBMS_CLOUD_AI.SET_PROFILE pour activer le profil d'intelligence artificielle afin de pouvoir utiliser SELECT AI avec une invite en langage naturel.

Note :

Vous devez exécuter DBMS_CLOUD_AI.SET_PROFILE dans chaque nouvelle session de base de données (connexion) avant d'utiliser SELECT AI.

L'exemple suivant avec le fournisseur OpenAI crée un profil AI nommé OPENAI et définit le profil OPENAI pour la session d'utilisateur courante.

-- Create AI profile
--
SQL> BEGIN
  DBMS_CLOUD_AI.create_profile(
      'OPENAI',
      '{"provider": "openai",
        "credential_name": "OPENAI_CRED",
        "object_list": [{"owner": "SH", "name": "customers"},
                        {"owner": "SH", "name": "sales"},
                        {"owner": "SH", "name": "products"},
                        {"owner": "SH", "name": "countries"}]
       }');
END;
/
 
PL/SQL procedure successfully completed.
 
--
-- Enable AI profile in current session
--
SQL> EXEC DBMS_CLOUD_AI.set_profile('OPENAI');
 
PL/SQL procedure successfully completed.

Utiliser le mot clé d'intelligence artificielle pour entrer des invites

Utilisez AI comme mot clé dans un énoncé SELECT pour interagir avec la base de données à l'aide d'invites en langage naturel.

Le mot clé AI dans un énoncé SELECT indique au moteur d'exécution SQL d'utiliser le LLM identifié dans le profil d'intelligence artificielle actif pour traiter le langage naturel et générer du SQL.

Vous pouvez utiliser le mot clé AI dans une interrogation avec des clients Oracle tels que SQL Developer, des carnets OML et des outils de tierce partie pour interagir avec la base de données en langage naturel.

Note :

Vous ne pouvez pas exécuter d'énoncés PL/SQL, d'énoncés LDD ou d'énoncés LMD à l'aide du mot clé AI.

Syntaxe

La syntaxe pour exécuter l'invite d'IA est la suivante :
SELECT AI action natural_language_prompt

Paramètres

Les paramètres suivants sont disponibles pour le paramètre action :
Paramètre Description

runsql

Exécutez la commande SQL fournie à l'aide d'une invite en langage naturel. Il s'agit de l'action par défaut et il est facultatif de spécifier ce paramètre.

showsql

Affiche l'instruction SQL pour une invite en langage naturel.

narrate

Le résultat de l'invite est expliqué en langage naturel. Cette option envoie le résultat SQL au fournisseur d'intelligence artificielle pour produire un sommaire en langage naturel.

chat

Génère une réponse directement à partir du LLM en fonction de l'invite. Si conversation dans la fonction DBMS_CLOUD_AI.CREATE_PROFILE est réglé à true, cette option inclut le contenu d'interactions ou d'invites précédentes, éventuellement des métadonnées de schéma.

explainsql

Le code SQL généré à partir de l'invite est expliqué en langage naturel. Cette option envoie le code SQL généré au fournisseur d'intelligence artificielle pour produire une explication en langage naturel.

Notes d'utilisation

  • La sélection de AI n'est pas prise en charge dans Database Actions ou le service APEX. Vous ne pouvez utiliser que la fonction DBMS_CLOUD_AI.GENERATE.

  • Le mot clé AI n'est pris en charge que dans un énoncé SELECT.

  • Vous ne pouvez pas exécuter d'énoncés PL/SQL, d'énoncés LDD ou d'énoncés LMD à l'aide du mot clé AI.

  • La séquence est SELECT suivie de AI. Ces mots-clés ne sont pas sensibles à la casse. Une fois DBMS_CLOUD_AI.SET_PROFILE configuré, le texte après SELECT AI est une invite en langage naturel. Si aucun profil d'IA n'est défini, SELECT AI signale l'erreur suivante :

    ORA-00923: FROM keyword not found where expected
    00923. 00000 -  "FROM keyword not found where expected"
  • Les règles d'utilisation des caractères spéciaux s'appliquent conformément aux directives d'Oracle. Par exemple, utilisez deux guillemets simples si vous utilisez une apostrophe dans une phrase.

    select ai how many customers in SF don''t own their own home
  • Les LLM sont sujettes à des hallucinations et les résultats ne sont pas toujours corrects :

    • Il est possible que SELECT AI ne puisse pas exécuter le SQL généré pour une invite de langage naturel spécifique.

    • Il est possible que SELECT AI ne puisse pas générer SQL pour une invite de langage naturel spécifique.

    Dans un tel scénario, SELECT AI répond avec des informations pour vous aider à générer un énoncé SQL valide.

  • Utilisez l'action chat, avec SELECT AI chat, pour en savoir plus sur les structures SQL. Pour obtenir de meilleurs résultats avec l'action chat, utilisez des vues de base de données ou des tables avec des noms de colonne contextuels ou envisagez d'ajouter des commentaires de colonne expliquant les valeurs stockées dans les colonnes.

  • Pour accéder aux vues DBA ou USER, voir Vues DBMS_CLOUD_AI.

Sélectionner l'IA avec génération augmentée par extraction (RAG)

Sélectionnez l'IA avec RAG pour augmenter votre invite de langage naturel en extrayant le contenu de votre magasin de vecteurs spécifié à l'aide de la recherche de similarité sémantique. Cela réduit les hallucinations en utilisant votre contenu spécifique et à jour et fournit des réponses en langage naturel plus pertinentes à vos invites.

Sélectionnez AI automatise le processus RAG (Retrieval Augmented Generation). Cette technique extrait des données de sources d'entreprise à l'aide de la recherche vectorielle d'IA et augmente les invites d'utilisateur pour le grand modèle de langage (LLM) spécifié. En tirant parti des informations des magasins de données d'entreprise, la RAG réduit les hallucinations et génère des réponses fondées.

La RAG utilise la recherche vectorielle d'IA sur un index vectoriel pour trouver des données sémantiquement similaires pour la question spécifiée. Les vecteurs stockent les processus d'intégration de vecteurs, qui sont des représentations mathématiques de divers points de données tels que le texte, les images et l'audio. Ces intégrations saisissent la signification des données, ce qui permet un traitement et une analyse efficaces. Pour plus de détails sur les intégrations de vecteurs et la recherche de vecteurs IA, voir Aperçu de la recherche de vecteurs IA.

Select AI s'intègre à la recherche vectorielle d'IA disponible dans Oracle Autonomous AI Database 26ai pour une recherche de similarité utilisant des intégrations vectorielles.

Rubriques

Avantages de Select AI RAG

Simplifier les interrogations, améliorer l'exactitude des réponses avec les données courantes et gagner en transparence en examinant les sources utilisées par le GML.

Select AI RAG offre les avantages suivants :
  • Simplifier les interrogations de données et augmenter la précision de la réponse : permettre aux utilisateurs d'interroger les données d'entreprise à l'aide du langage naturel et fournir aux LLM un contexte détaillé à partir des données d'entreprise pour générer des réponses plus précises et pertinentes, réduisant les cas d'hallucinations de LLM.

  • Informations à jour : Permet aux LLM d'accéder aux informations actuelles de l'entreprise à l'aide de magasins vectoriels, éliminant ainsi le besoin d'affiner des LLM coûteux et chronophages formés sur des jeux de données statiques.

  • Intégration transparente : intégrez à Oracle AI Vector Search pour un traitement rationalisé des données et une performance améliorée.

  • Orchestration automatisée des données : Automatisez les étapes d'orchestration avec un pipeline d'index vectoriels entièrement géré, assurant un traitement efficace des nouvelles données.

  • Résultats contextuels compréhensibles : A accès et extrait les sources utilisées par le LLM à partir de magasins vectoriels, assurant la transparence et la confiance dans les résultats. Permet de voir et d'extraire des données en langage naturel ou au format JSON pour faciliter l'intégration et le développement d'applications.

Créez votre Vector Store

Sélectionnez AI automatise la création et l'alimentation du magasin vectoriel en convertissant les documents d'entrée (par exemple, PDF, DOC, JSON, XML ou HTML) de votre magasin d'objets en texte brut. Oracle Text prend en charge environ 150 types de fichier. Pour obtenir la liste complète de tous les formats de document pris en charge, voir Formats de document pris en charge.

Sélectionnez AI pour traiter automatiquement les documents à fragmenter, générer des intégrations, les stocker dans le magasin de vecteurs spécifié et mettre à jour l'index vectoriel à mesure que de nouvelles données arrivent.

Voici comment l'entrée du service de stockage d'objets est utilisée avec la RAG Select AI :

  1. Entrée : Les données sont initialement stockées dans un service de stockage d'objets.
  2. Oracle Autonomous Database extrait les données d'entrée ou le document, les fragmente et les envoie à un modèle d'intégration.
  3. Le modèle d'intégration traite les données de fragmentation et retourne les intégrations vectorielles.
  4. Les plongements de vecteurs sont ensuite stockés dans un magasin de vecteurs pour une utilisation avec RAG. Lorsque le contenu est ajouté, l'index vectoriel est automatiquement mis à jour.

La RAG extrait des informations pertinentes de la base de données de l'entreprise pour répondre à la question d'un utilisateur. Ces informations sont fournies au grand modèle de langue spécifié avec l'invite utilisateur. Select AI utilise ces informations d'entreprise supplémentaires pour améliorer l'invite, améliorant ainsi la réponse du LLM. La RAG peut améliorer la qualité des réponses grâce aux informations d'entreprise à jour du magasin de vecteurs.



Sélectionnez AI pour mettre en oeuvre la RAG comme suit :
  1. Entrée : L'utilisateur pose une question (spécifie une invite) à l'aide de l'action Sélectionner l'intelligence artificielle narrate.

  2. Sélectionnez AI pour générer des plongements vectoriels de l'invite à l'aide du modèle d' plongement spécifié dans le profil AI.

  3. L'index de recherche vectorielle utilise l'intégration vectorielle de la question pour rechercher le contenu correspondant à partir des données d'entreprise du client (recherche du magasin vectoriel) qui a été indexé.

  4. La recherche vectorielle retourne les principaux textes K similaires à l'entrée de votre instance Base de données d'IA autonome.
  5. Autonomous AI Database envoie ensuite ces principaux résultats d'interrogation K avec question d'utilisateur au LLM.
  6. Le LLM retourne sa réponse à votre instance Autonomous AI Database.
  7. Sélectionnez Autonomous AI Database pour répondre à l'utilisateur.

Utiliser DBMS_CLOUD_AI pour créer et gérer des index de vecteur

Utilisez l'ensemble DBMS_CLOUD_AI pour créer et gérer des index vectoriels et configurer des paramètres JSON de base de données vectorielle.

Après avoir créé des données d'identification et fourni un accès réseau à la base de données vectorielle et au fournisseur d'IA, votre instance Base de données d'IA autonome utilise des profils d'IA pour configurer l'accès aux LLM. Voir pour un exemple complet de configuration et d'utilisation dans les énoncés Sélectionner l'IA.

Note :

Si vous ne voulez pas que les données de table ou les documents de recherche vectorielle soient envoyés à un LLM, un utilisateur disposant de privilèges d'administrateur peut désactiver cet accès pour tous les utilisateurs de la base de données indiquée. Cela, en effet, désactive l'action narrate pour la RAG.

Vous pouvez configurer des profils d'IA pour les fournisseurs répertoriés dans Sélectionner votre fournisseur d'IA et vos LLM au moyen de l'ensemble DBMS_CLOUD_AI.

Voir aussi :

  • Créez un index vectoriel : .

  • Gérer les profils d'index vectoriels et d'autres profils d'IA :
  • Vues d'index vectoriel d'interrogation : .

Utiliser des modèles de transformateur de base de données

La fonction RAG de l'IA vous permet d'utiliser des modèles de transformateur ONNX préentraînés qui sont importés dans votre base de données dans l'instance Oracle Database 23ai pour générer des vecteurs d'intégration à partir de fragments de document et d'invites d'utilisateur.

Note :

Vous devez importer un modèle de transformateur au format ONNX préentraîné dans une instance Oracle Database 23ai pour utiliser Select AI RAG avec le modèle de transformateur importé dans la base de données. Vous pouvez également utiliser d'autres modèles de transformateur provenant des fournisseurs d'IA pris en charge.

Voir Exemple : Sélectionner l'intelligence artificielle avec des modèles de transformateur dans la base de données pour explorer la fonction.

Génération de données synthétiques

Générer des données synthétiques à l'aide de générateurs aléatoires, d'algorithmes, de modèles statistiques et de grands modèles de langage (LLM) pour simuler des données réelles pour développer et tester efficacement des solutions.

Note :

La prise en charge de la génération de données synthétiques est disponible dans Oracle Database 19c à partir de la version 19.29 et dans Oracle Database 26ai à partir de la version 23.26.

Les données synthétiques peuvent être un outil puissant lors du développement et du test de solutions, en particulier lorsque les données réelles n'existent pas encore ou ne sont pas autorisées à être utilisées. Les données synthétiques, ou artificiellement générées, peuvent avoir de nombreuses caractéristiques des données réelles. Les données synthétiques sont généralement créées à l'aide de générateurs aléatoires, d'algorithmes ou de modèles statistiques pour simuler les caractéristiques et les distributions des données réelles. Cependant, cela peut être complexe à produire ou à s'appuyer sur des outils avec des caractéristiques de sophistication variable. Avec la disponibilité des grands modèles de langage (LLM), des données plus pertinentes et spécifiques au schéma peuvent être générées qui tiennent compte des caractéristiques exprimées en langage naturel.

Rubriques

Avantages de la génération de données synthétiques

La génération de données synthétiques permet d'alimenter les clones des métadonnées de base de données, prenant en charge les projets de développement, de test et d'apprentissage automatique sans utiliser les données sensibles des tables d'origine.

La génération de données synthétiques offre les avantages suivants :
  • Alimentation des clones de métadonnées à l'aide de données synthétiques : Un clone de métadonnées réplique la structure d'une base de données ou d'un schéma sans inclure les données réelles. Select AI permet la génération de données synthétiques pour alimenter ces clones, protégeant les données sensibles tout en permettant le développement, les tests et la création de modèles. Cette approche prend en charge les tests de performance et d'évolutivité.

  • Démarrage de nouveaux projets : Lors du démarrage d'un nouveau projet, il est possible que les données réelles ne soient pas disponibles. Les données synthétiques fournissent des échantillons réalistes pour aider à démontrer les concepts et à obtenir un soutien pour les propositions de projet.

  • Validation de l'expérience utilisateur : Les données synthétiques facilitent le test des interfaces utilisateur en fournissant divers jeux de données pour détecter les défauts de conception, les problèmes de performance et d'évolutivité.

  • Prise en charge des projets d'intelligence artificielle et d'apprentissage automatique : Les données synthétiques sont utiles pour l'entraînement des modèles d'intelligence artificielle et d'apprentissage automatique lorsque les données réelles sont indisponibles ou restreintes. Les LLM peuvent générer des données avec des modèles spécifiques pour faciliter l'entraînement et la notation des modèles.

Générer les données synthétiques

Utilisez la fonction DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA pour générer des données synthétiques et interroger les données à l'aide des actions Sélectionner l'intelligence artificielle.

Surveiller et dépanner la génération de données synthétiques

Lors de la génération de grandes quantités de données dans de nombreuses tables, Select AI fractionne les tâches de génération de données synthétiques en fragments plus petits et exécute les tâches en parallèle. Le statut de chaque fragment fait l'objet d'un suivi dans la table SYNTHETIC_DATA$<operation_id>_STATUS.

Les opérations de génération de données synthétiques sont enregistrées dans les tables DBA_LOAD_OPERATIONS et USER_LOAD_OPERATIONS. Utilisez ces tables pour surveiller l'opération DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA. Pour plus de détails, voir Suivre les opérations de chargement DBMS_CLOUD.

Après avoir exécuté la génération de données synthétiques dans une session donnée, vous pouvez obtenir la dernière version de <operation_id> à partir de USER_LOAD_OPERATION à l'aide des éléments suivants :
SELECT max(id) FROM user_load_operations;

Pour voir les opérations de données synthétiques exécutées dans une autre session, utilisez la vue DBA_LOAD_OPERATIONS.

Voir le statut de la génération de données synthétiques

La table d'état de l'opération de génération de données synthétiques indique la progression de chaque table et de sa tranche correspondante. La colonne STATUS_TABLE dans USER_LOAD_OPERATIONS ou DBA_LOAD_OPERATIONS affiche le nom de la table de statut. Le nom de la table est SYNTHETIC_DATA$<operation_id>_STATUS et comporte les colonnes suivantes :

Nom Type de données Description

ID

NUMBER

Identificateur unique de l'enregistrement.

NAME

VARCHAR2

Nom qualifié de la table, par exemple "ADB_USER"."EMPLOYEES"

BYTES

NUMBER

Nombre d'enregistrements souhaité pour cette tâche de génération de données.

ROWS_LOADED

NUMBER

Nombre réel d'enregistrements générés.

CHECKSUM

VARCHAR2

Valeur de départ de la clé primaire lors de cette tâche de génération de données.

LAST_MODIFIED

TIMESTAMP WITH TIME ZONE

Horodatage indiquant la date de la dernière modification de l'enregistrement.

STATUS

VARCHAR2

Statut de la tâche de génération de données. Les valeurs possibles sont :
  • COMPLETED
  • FAILED
  • PENDING
  • SKIPPED

ERROR_CODE

NUMBER

Code d'erreur, si la tâche de génération de données échoue.

ERROR_MESSAGE

VARCHAR2

Message d'erreur fourni si la tâche échoue.

END_TIME

TIMESTAMP WITH TIME ZONE

Horodatage marquant la fin de la tâche de génération de données.
Exemple : Vérifiez le nombre d'enregistrements générés pour chaque table

Pour vérifier le nombre d'enregistrements générés pour chaque table, procédez comme suit :

SELECT name, SUM(rows_loaded) FROM synthetic_data$<operation_id>_status group by name;

Interrogez ROWS_LOADED pour confirmer le nombre de rangées chargées pour chaque fragment et SUM(ROWS_LOADED) pour les rangées de chaque table.

BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_list => '[{"owner": "ADB_USER", "name": "DIRECTOR","record_count":150},
                         {"owner": "ADB_USER", "name": "MOVIE_ACTOR","record_count":300},
                         {"owner": "ADB_USER", "name": "CLASSES", "user_prompt":"all in fall semester","record_count":5},
                         {"owner": "ADB_USER", "name": "ACTOR","record_count":220},
                         {"owner": "ADB_USER", "name": "MOVIE","record_count":50}]'
    );
END;
/
 
 
-- Check loaded rows for each chunk
SQL> SELECT name, rows_loaded FROM synthetic_data$141_status order by name;
NAME                           ROWS_LOADED
------------------------------------------
"ADB_USER"."ACTOR"                        188
"ADB_USER"."ACTOR"                         32
"ADB_USER"."CLASSES"                        5
"ADB_USER"."DIRECTOR"                     150
"ADB_USER"."MOVIE"                         50
"ADB_USER"."MOVIE_ACTOR"                   38
"ADB_USER"."MOVIE_ACTOR"                  114
"ADB_USER"."MOVIE_ACTOR"                  148
 
 
 
-- Check loaded rows for each table
SQL> SELECT name, SUM(rows_loaded) FROM synthetic_data$141_status group by name;
 
NAME                      SUM(ROWS_LOADED)
------------------------------------------
"ADB_USER"."DIRECTOR"                     150
"ADB_USER"."MOVIE_ACTOR"                  300
"ADB_USER"."CLASSES"                        5
"ADB_USER"."ACTOR"                        220
"ADB_USER"."MOVIE"                         50