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.
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.
Exemple : Sélectionner des actions d'IA
Ces exemples illustrent les actions Select AI courantes.
L'exemple suivant illustre des actions telles que runsql (valeur par défaut), showsql, narrate, chat, explainsql, feedback et summarize que vous pouvez effectuer avec SELECT AI. Ces exemples utilisent le schéma sh avec le fournisseur d'intelligence artificielle et les attributs de profil spécifiés dans la fonction DBMS_CLOUD_AI.CREATE_PROFILE. Utilisez les actions Sélectionner l'IA après avoir défini votre profil d'IA à l'aide de la procédure DBMS_CLOUD_AI.SET_PROFILE dans la session courante.
Pour générer un sommaire de votre texte, utilisez SELECT AI SUMMARIZE <TEXT>.
SQL> select ai how many customers exist;
CUSTOMER_COUNT
--------------
55500
SQL> select ai showsql how many customers exist;
RESPONSE
----------------------------------------------------
SELECT COUNT(*) AS total_customers
FROM SH.CUSTOMERS
SQL> select ai narrate how many customers exist;
RESPONSE
------------------------------------------------------
There are a total of 55,500 customers in the database.
SQL> select ai chat how many customers exist;
RESPONSE
--------------------------------------------------------------------------------
It is impossible to determine the exact number of customers that exist as it con
stantly changes due to various factors such as population growth, new businesses
, and customer turnover. Additionally, the term "customer" can refer to individu
als, businesses, or organizations, making it difficult to provide a specific num
ber.
SQL> select ai explainsql how many customers in San Francisco are married;
RESPONSE
--------------------------------------------------------------------------------
SELECT COUNT(*) AS customer_count
FROM SH.CUSTOMERS AS c
WHERE c.CUST_STATE_PROVINCE = 'San Francisco' AND c.CUST_MARITAL_STATUS = 'Married';
Explanation:
- We use the 'SH' table alias for the 'CUSTOMERS' table for better readability.
- The query uses the 'COUNT(*)' function to count the number of rows that match the given conditions.
- The 'WHERE' clause is used to filter the results:
- 'c.CUST_STATE_PROVINCE = 'San Francisco'' filters customers who have 'San Francisco' as their state or province.
- 'c.CUST_MARITAL_STATUS = 'Married'' filters customers who have 'Married' as their marital status.
The result of this query will give you the count of customers in San Francisco who are married, using the column alias 'customer_count' for the result.
Remember to adjust the table and column names based on your actual schema if they differ from the example.
Feel free to ask if you have more questions related to SQL or database in general.
-- Feedback on SQL Text
-- Negative feedback example:
SQL > select ai feedback for query "select ai showsql how many watch histories in total", please use sum instead of count;
-- Positive feedback example:
SQL > select ai feedback for query "select ai showsql how many watch histories in total", the sql query generated is correct;
-- Feedback on SQL ID
-- Negative feedback example:
SQL > select ai feedback please use sum instead of count for sql_id 1v1z68ra6r9zf;
-- Positive feedback example:
SQL > select ai feedback sql query result is correct for sql_id 1v1z68ra6r9zf;
-- If not specified, use default LASTAI SQL
-- To use default LASTAI sql, make sure that set server output off;
-- Negative feedback example:
SQL > select ai feedback please use ascending sorting for ranking;
-- Positive feedback example:
SQL > select ai feedback the result is correct;
SQL> SELECT AI SUMMARIZE
Like countless other people around the globe, I stream music, and like more
than six hundred million of them I mainly use Spotify. Streaming currently
accounts for about eighty per cent of the American recording industry’s
revenue, and in recent years Spotify’s health is often consulted as a measure
for the health of the music business over all. Last spring, the International
Federation of the Phonographic Industry reported global revenues of $28.6
billion, making for the ninth straight year of growth. All of this was
unimaginable in the two-thousands, when the major record labels appeared
poorly equipped to deal with piracy and the so-called death of physical media.
On the consumer side, the story looks even rosier. Adjusted for inflation, a
... (skipped 1000 rows in the middle)
Pelly writes of some artists, in search of viral fame, who surreptitiously use
social media to effectively beta test melodies and motifs, basically putting
together songs via crowdsourcing. Artists have always fretted about the
pressure to conform, but the data-driven, music-as-content era feels
different. “You are a Spotify employee at that point,” Daniel Lopatin, who
makes abstract electronic music as Oneohtrix Point Never, told Pelly. “If your
art practice is so ingrained in the brutal reality that Spotify has outlined
for all of us, then what is the music that you’re not making? What does the
music you’re not making sound like?” Listeners might wonder something similar.
What does the music we’re not hearing sound like?;
RESPONSE
------------------------------------------------------------------------------
The music streaming industry, led by Spotify, has revolutionized the way
people consume music, with streaming accounting for 80% of the American
recording industry's revenue. However, this shift has also complicated the
lives of artists, who struggle to survive in a hyper-abundant present where
music is often valued for its convenience rather than its artistic merit.
Spotify's algorithms prioritize popularity and profitability over artistic
diversity, leading to a homogenization of music and a devaluation of the
labor that goes into creating it. Meanwhile, the company's executives reap
enormous profits, with CEO Daniel Ek's net worth rivaling that of the
wealthiest musicians. As music critic Liz Pelly argues, the streaming economy
raises important questions about autonomy, creativity, and the value of art
in a world where everything is readily available and easily accessible.
Exemple : Sélectionnez AI avec AWS
L'exemple suivant montre comment utiliser AWS comme fournisseur d'IA avec Amazon Bedrock et ses modèles de base. L'exemple montre comment créer des informations d'identification AWS, fournir un accès réseau, créer un profil d'IA et utiliser des actions Select AI pour générer des requêtes SQL à partir d'invites en langage naturel et clavarder à l'aide des modèles AWS Foundation.
Pour utiliser AWS, obtenez la clé d'accès, les clés secrètes et l'ID modèle. Voir . Utilisez l'ID modèle comme attribut model dans la procédure DBMS_CLOUD_AI.CREATE_PROFILE. Vous devez spécifier l'attribut model explicitement, car aucun modèle par défaut n'est fourni.
--Grant EXECUTE privilege to ADB_USER
GRANT EXECUTE on DBMS_CLOUD_AI to ADB_USER;
--
-- Create Credential for AI provider
--
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'AWS_CRED',
username => '<your_AWS_access_key>',
password => '<your_AWS_secret_key>'
);
END;
/
PL/SQL procedure successfully completed.
--
-- Grant Network ACL for AWS
--
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'bedrock-runtime.us-east-1.amazonaws.com',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'ADB_USER',
principal_type => xs_acl.ptype_db)
);
END;
/
PL/SQL procedure successfully completed.
--
-- Create AI profile
--
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name =>'AWS',
attributes =>'{"provider": "aws",
"credential_name": "AWS_CRED",
"object_list": [{"owner": "SH", "name": "customers"},
{"owner": "SH", "name": "countries"},
{"owner": "SH", "name": "supplementary_demographics"},
{"owner": "SH", "name": "profits"},
{"owner": "SH", "name": "promotions"},
{"owner": "SH", "name": "products"}],
"model" : "anthropic.claude-v2",
"conversation" : "true"
}');
END;
/
PL/SQL procedure successfully completed.
--
-- Enable AI profile in current session
--
EXEC DBMS_CLOUD_AI.SET_PROFILE('AWS');
PL/SQL procedure successfully completed.
--
-- Use AI
--
SELECT AI how many customers exist;
"RESPONSE"
"COUNT(*)"
55500
SELECT AI how many customers in San Francisco are married;
"RESPONSE"
"COUNT(*)"
46
SELECT AI showsql how many customers in San Francisco are married;
"RESPONSE"
"SELECT COUNT(*) AS "Number of Married Customers in San Francisco"
FROM "SH"."CUSTOMERS" C
WHERE UPPER(C."CUST_CITY") = UPPER('San Francisco')
AND UPPER(C."CUST_MARITAL_STATUS") = UPPER('Married')"
SELECT AI explainsql how many customers in San Francisco are married;
"RESPONSE""SELECT
COUNT(*) AS "Number of Married Customers in San Francisco"
FROM "SH"."CUSTOMERS" C
WHERE C."CUST_CITY" = 'San Francisco'
AND C."CUST_MARITAL_STATUS" = 'Married'
Explanation:
- Used table alias C for CUSTOMERS table
- Used easy to read column names like CUST_CITY, CUST_MARITAL_STATUS
- Enclosed table name, schema name and column names in double quotes
- Compared string values in WHERE clause without UPPER() since the values are not in double quotes
- Counted number of rows satisfying the condition and aliased the count as "Number of Married Customers in San Francisco""
SELECT AI narrate what are the top 3 customers in San Francisco;
"RESPONSE"
The top 3 customers in San Francisco ordered by credit limit in descending order are:
1. Bert Katz
2. Madallyn Ladd
3. Henrietta Snodgrass
SELECT AI chat what is Autonomous AI Database;
"RESPONSE"
"An Autonomous AI Database is a cloud database service provided by Oracle Corporation. Some key features of Oracle Autonomous AI Database include:
- Fully automated and self-driving - The database automatically upgrades, patches, tunes, and backs itself up without any human intervention required.
- Self-securing - The database uses machine learning to detect threats and automatically apply security updates.
- Self-repairing - The database monitors itself and automatically recovers from failures and errors without downtime.
- Self-scaling - The database automatically scales compute and storage resources up and down as needed to meet workload demands.
- Serverless - The database is accessed as a cloud service without having to manually provision any servers or infrastructure.
- High performance - The database uses Oracle's advanced automation and machine learning to continuously tune itself for high performance.
- Multiple workload support - Supports transaction processing, analytics, graph processing, etc in a single converged database.
- Fully managed - Oracle handles all the management and administration of the database. Users just load and access their data.
- Compatible - Supports common SQL and Oracle PL/SQL for easy migration from on-prem Oracle databases.
So in summary, an Oracle Autonomous AI Database is a fully automated, self-driving, self-securing, and self-repairing database provided as a simple cloud service. The automation provides high performance, elasticity, and availability with minimal human labor required."
--
--Clear the profile
--
BEGIN
DBMS_CLOUD_AI.CLEAR_PROFILE;
END;
/
PL/SQL procedure successfully completed.
--
--Drop the profile
--
EXEC DBMS_CLOUD_AI.DROP_PROFILE('AWS');
PL/SQL procedure successfully completed.