Utiliser la fonction Select AI pour générer des instructions SQL à partir d'invites en 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.
Rubriques connexes
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.
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 objetsDBMS_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 |
|
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 Les modèles de génération de texte OCI ne sont pris en charge que pour l'action |
|
Service Azure OpenAI |
|
text-embedding-ada-002 |
Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action |
|
OpenAI |
|
text-embedding-ada-002 |
Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action |
|
Compatible avec OpenAI |
Modèles de fournisseurs compatibles OpenAI, tels que :
|
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 |
|
embarquer-english-v2.0 |
Idéal pour l'action |
|
|
|
text-embedding-004 (par défaut) |
Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action |
|
Anthropique |
|
S.O. |
Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action |
|
S'étreindre le visage |
|
S.O. |
Idéal pour générer du code SQL à partir des invites de langage naturel, de l'action |
|
AWS |
|
Prend en charge un large éventail de cas d'utilisation. |
Note :
-
Spécifiez un fournisseur compatible OpenAI au moyen de
provider_endpointau lieu du paramètreprovider. 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-instructoffre 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.
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 objetsDBMS_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 :
- 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.
- 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.
- 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
- Autoriser l'accès au service Azure OpenAI :
- 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.
- Allez à Google AI Studio.
- Cliquez sur Se connecter à Google AI Studio.
- Cliquez sur Get API key dans l'écran d'invite.
- Sélectionnez toutes les options applicables dans la page suivante.
- Cliquez sur Create API key.
-
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.
- Allez à Anthropic Developer Console.
- Inscrivez-vous pour un compte si vous n'en avez pas déjà un.
- Une fois connecté, naviguez jusqu'à la section API ou au tableau de bord.
- Recherchez une option pour générer ou voir des clés d'API.
- Cliquer pour créer une clé d'API.
-
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.
- Allez à Hugging Face.
- Inscrivez-vous pour un compte si vous n'en avez pas déjà un.
- Naviguez jusqu'aux paramètres de votre compte.
- Dans le menu de navigation, localisez les jetons d'accès.
- Cliquer pour créer une clé d'API.
- 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 :
- Inscrivez-vous à un compte AWS si vous n'en avez pas déjà un.
- Créez vos clés d'accès et clés secrètes à partir de la console AWS Bedrock.
- Copiez les clés générées et enregistrez-les.
- Demander l'accès à leurs modèles de base. Voir Accéder aux modèles de fondation Amazon Bedrock.
- 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 :- un modèle de base, spécifiez l'ID modèle ou son ARN (Amazon Resource Names). Pour obtenir la liste des ID modèles pour les modèles de base, voir ID modèles de base Amazon Bedrock.
- un profil d'inférence, indiquez le profil d'inférence ou son numéro ARN. Pour obtenir la liste des ID de profil d'inférence, voir Régions et modèles pris en charge pour l'inférence inter-région.
- un modèle provisionné, spécifiez l'ARN du débit provisionné. Pour plus d'informations, voir Exécuter l'inférence à l'aide d'un débit provisionné.
- un modèle personnalisé, achetez le débit provisionné pour celui-ci. Spécifiez ensuite l'ARN du modèle provisionné résultant. Pour plus d'informations, voir Utiliser un modèle personnalisé dans Amazon Bedrock.
- un modèle Amazon Bedrock Marketplace, spécifiez l'ID ou l'ARN du point d'extrémité du marché des applications que vous avez créé, voir Amazon Bedrock Marketplace.
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.
DBMS_CLOUD_AI :
-
Accordez le privilège
EXECUTEsur l'ensembleDBMS_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ègeEXECUTEà d'autres utilisateurs. -
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.
- 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.
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 |
|---|---|
|
|
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 Pour Google, utilisez generativelanguage.googleapis.com. Pour Anthropic, utilisez api.anthropic.com. Pour Hugging Face, utilisez api-inference.huggingface.co. |
|
|
Les entrées de contrôle d'accès (ACE). Le type |
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 |
|---|---|
|
|
Nom des données d'identification à stocker. Le paramètre |
|
|
Les arguments
|
|
|
Les arguments
|
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
SELECT AI action natural_language_promptParamètres
| Paramètre | Description |
|---|---|
|
|
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. |
|
|
Affiche l'instruction SQL pour une invite en langage naturel. |
|
|
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. |
|
|
Génère une réponse directement à partir du LLM en fonction de l'invite. Si |
|
|
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
AIn'est pas prise en charge dans Database Actions ou le service APEX. Vous ne pouvez utiliser que la fonctionDBMS_CLOUD_AI.GENERATE. -
Le mot clé
AIn'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
SELECTsuivie deAI. Ces mots-clés ne sont pas sensibles à la casse. Une foisDBMS_CLOUD_AI.SET_PROFILEconfiguré, le texte aprèsSELECT AIest une invite en langage naturel. Si aucun profil d'IA n'est défini,SELECTAIsignale 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 AIne puisse pas exécuter le SQL généré pour une invite de langage naturel spécifique. -
Il est possible que
SELECT AIne puisse pas générer SQL pour une invite de langage naturel spécifique.
Dans un tel scénario,
SELECT AIrépond avec des informations pour vous aider à générer un énoncé SQL valide. -
-
Utilisez l'action
chat, avecSELECT AI chat, pour en savoir plus sur les structures SQL. Pour obtenir de meilleurs résultats avec l'actionchat, 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.
-
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 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.
- Entrée : Les données sont initialement stockées dans un service de stockage d'objets.
- Oracle Autonomous Database extrait les données d'entrée ou le document, les fragmente et les envoie à un modèle d'intégration.
- Le modèle d'intégration traite les données de fragmentation et retourne les intégrations vectorielles.
- 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.
-
Entrée : L'utilisateur pose une question (spécifie une invite) à l'aide de l'action Sélectionner l'intelligence artificielle
narrate. -
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.
-
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é.
- La recherche vectorielle retourne les principaux textes K similaires à l'entrée de votre instance Base de données d'IA autonome.
- Autonomous AI Database envoie ensuite ces principaux résultats d'interrogation K avec question d'utilisateur au LLM.
- Le LLM retourne sa réponse à votre instance Autonomous AI Database.
- 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.
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.
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.
-
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.
Pour en savoir plus, voir Fonction GENERATE_SYNTHETIC_DATA et Exemple : Générer des données synthétiques.
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.
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 |
|---|---|---|
|
|
|
Identificateur unique de l'enregistrement. |
|
|
|
Nom qualifié de la table, par exemple "ADB_USER"."EMPLOYEES" |
|
|
|
Nombre d'enregistrements souhaité pour cette tâche de génération de données. |
|
|
|
Nombre réel d'enregistrements générés. |
|
|
|
Valeur de départ de la clé primaire lors de cette tâche de génération de données. |
|
|
|
Horodatage indiquant la date de la dernière modification de l'enregistrement. |
|
|
|
Statut de la tâche de génération de données. Les valeurs possibles sont :
|
|
|
|
Code d'erreur, si la tâche de génération de données échoue. |
|
|
|
Message d'erreur fourni si la tâche échoue. |
|
|
|
Horodatage marquant la fin de la tâche de génération de données. |
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

