Ensemble DBMS_CLOUD_AI
L'ensemble DBMS_CLOUD_AI
, avec Select AI, facilite et configure la traduction des invites de langage naturel pour générer, exécuter et expliquer des énoncés SQL. Permet également d'extraire la génération augmentée et les interactions basées sur le langage naturel, y compris le clavardage avec les LLM.
Conditions requises
- Créez une passerelle NAT dans le réseau en nuage virtuel (VCN) où résident vos ressources Autonomous Database en suivant les instructions sous Créer une passerelle NAT dans la documentation sur Oracle Cloud Infrastructure.
- Après avoir créé la passerelle NAT, ajoutez une règle de routage et une règle de sécurité de trafic sortant à chaque sous-réseau (dans le VCN) où résident des ressources Autonomous Database afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique de votre instance Azure AD :
- Allez à la page Détails du sous-réseau correspondante.
- Dans l'onglet informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher la page Détails de la table de routage.
- Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
- Destination : 0.0.0.0/0
- Type de cible : Passerelle NAT
- Target : Nom de la passerelle NAT que vous venez de créer dans le VCN
Si une telle règle n'existe pas, cliquez sur Ajouter des règles de routage et ajoutez une règle de routage avec ces caractéristiques.
- Retournez à la page Détails du sous-réseau.
- Dans la table Listes de sécurité du sous-réseau, cliquez sur le nom de la liste de sécurité du sous-réseau pour afficher la page Détails de la liste de sécurité.
- Dans le menu latéral, sous Ressources, cliquez sur Règles de trafic sortant.
- Dans la table des règles de trafic sortant existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
- Type de destination : CIDR
- Destination : 0.0.0.0/0
- Protocole IP : TCP
- Intervalle de ports sources : 443
- Intervalle de ports de destination : Tout
Si une telle règle n'existe pas, cliquez sur Ajouter des règles de trafic sortant et ajoutez une règle de trafic sortant avec ces caractéristiques.
Les paramètres de mandataire HTTP de votre environnement doivent permettre à la base de données d'accéder au fournisseur de services en nuage.
Note :
La configuration réseau, y compris le mandataire HTTP, ne peut être modifiée que jusqu'à ce que l'infrastructure Exadata ait l'état Activation requise. Une fois activé, vous ne pouvez pas modifier ces paramètres.La configuration d'un mandataire HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service dans My Oracle Support. Pour plus de détails, voir Créer une demande de service dans My Oracle Support.
Sommaire des sous-programmes DBMS_CLOUD_AI
Cette section couvre les sous-programmes DBMS_CLOUD_AI
fournis avec Autonomous Database.
Sous-programme | Description |
---|---|
Cette procédure crée un nouveau profil d'IA pour traduire les invites en langage naturel en instructions SQL. |
|
Cette procédure désactive un profil d'IA dans la base de données courante. |
|
Cette procédure supprime un profil AI existant. |
|
Cette procédure permet d'utiliser un profil d'IA dans la base de données courante. |
|
Cette fonction génère une instruction SQL utilisant l'IA pour traduire. | |
Cette procédure définit les attributs de profil d'IA. |
|
Cette procédure définit le profil d'IA pour la base de données courante. |
Procédure CREATE_PROFILE
La procédure crée un nouveau profil d'IA pour traduire les invites en langage naturel en instruction SQL.
Syntaxe
DBMS_CLOUD_AI.CREATE_PROFILE
profile_name IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
status IN VARCHAR2 DEFAULT NULL,
description IN CLOB DEFAULT NULL
);
Paramètres
Paramètre | Description |
---|---|
|
Nom du profil d'intelligence artificielle. Le nom du profil doit respecter les règles d'attribution de nom de l'identificateur SQL Oracle. La longueur maximale du nom de profil est de 125 caractères. Il s'agit d'un paramètre obligatoire. |
|
Attributs de profil au format JSON. Pour plus de détails, voir Attributs de profil de l'intelligence artificielle. La valeur par défaut est NULL. |
status |
Statut du profil. La valeur par défaut est Activer. |
|
Description du profil d'IA. La valeur par défaut est NULL. |
Exemple
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'OpenAI,
attributes => JSON_OBJECT('provider' value 'openai',
'credential_name' value 'openai_cred'),
description => 'AI profile to use OpenAI for SQL translation'
);
END;
/
Procédure DROP_PROFILE
La procédure supprime un profil AI existant. Si le profil n'existe pas, la procédure génère une erreur.
Syntaxe
DBMS_CLOUD_AI.DROP_PROFILE
(
profile_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
Paramètres
Paramètre | Description |
---|---|
|
Nom du profil d'IA |
|
Si La valeur par défaut de ce paramètre est |
Exemple
BEGIN
DBMS_CLOUD_AI.DROP_PROFILE
(profile_name => 'OPENAI');
END;
/
Notes d'utilisation
Utilisez force
pour supprimer un profil et ignorer les erreurs si le profil AI n'existe pas.
Procédure ENABLE_PROFILE
Cette procédure active le profil AI que l'utilisateur spécifie. La procédure modifie le statut du profil d'IA à ENABLED
.
Syntaxe
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name IN VARCHAR2
);
Paramètres
Paramètre | Description |
---|---|
|
Nom du profil d'IA à activer Ce paramètre est obligatoire. |
Exemple d'activation du profil d'IA
BEGIN
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Procédure DISABLE_PROFILE
Cette procédure désactive le profil d'IA dans la base de données courante. Le statut du profil d'IA est remplacé par DISABLED
par cette procédure.
Syntaxe
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name IN VARCHAR2
);
Paramètres
Paramètre | Description |
---|---|
|
Nom du profil d'IA. Ce paramètre est obligatoire. |
Exemple
BEGIN
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Procédure SET_ATTRIBUTE
Cette procédure vous permet de définir des attributs de profil d'IA.
Syntaxe
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN CLOB
);
Paramètres
Seul le responsable peut définir ou modifier les attributs du profil d'IA. Pour obtenir la liste des attributs pris en charge, voir Attributs de profil.
Paramètre | Description |
---|---|
|
Nom du profil d'intelligence artificielle pour lequel vous voulez définir les attributs. Ce paramètre est obligatoire. |
|
Nom de l'attribut de profil d'IA Ce paramètre est obligatoire. |
|
Valeur de l'attribut du profil. La valeur par défaut est NULL. |
Exemple
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OPENAI',
attribute_name => 'credential_name',
attribute_value => 'OPENAI_CRED_NEW'
);
END;
/
Procédure SET_PROFILE
Cette procédure définit le profil d'IA pour la session courante.
Après avoir défini un profil d'intelligence artificielle pour la session de base de données, tout énoncé SQL avec le préfixe SELECT AI
est considéré comme une invite en langage naturel. Selon l'action spécifiée avec le préfixe AI
, une réponse est générée à l'aide de l'intelligence artificielle. Pour utiliser le préfixe AI
, voir Utiliser le mot clé d'intelligence artificielle pour entrer des invites. Facultativement, il est possible de remplacer les attributs de profil ou de modifier les attributs en les spécifiant au format JSON. Voir Procédure SET_ATTRIBUTE pour définir les attributs.
Le profil d'IA ne peut être défini pour la session courante que si le responsable du profil d'IA est l'utilisateur de la session.
Pour définir un profil d'intelligence artificielle pour toutes les sessions d'un utilisateur de base de données spécifique ou pour toutes les sessions d'utilisateur de la base de données, envisagez d'utiliser un déclencheur d'événement de base de données pour l'événement AFTER LOGON
sur l'utilisateur spécifique ou sur l'ensemble de la base de données. Pour plus de détails, voir Énoncé CREATE TRIGGER dans Informations de référence sur le langage PL/SQL pour Oracle Database 19c ou Informations de référence sur le langage PL/SQL pour Oracle Database 23ai Database.
Syntaxe
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name IN VARCHAR2,
);
Paramètres
Paramètre | Description |
---|---|
|
Nom du profil d'intelligence artificielle dans la session courante. Ce paramètre est obligatoire. |
Exemple
BEGIN
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Fonction GENERATE
showsql
, narrate
ou chat
. L'action par défaut est showsql
.
Le remplacement de tout ou partie des attributs de profil est également possible à l'aide de cette fonction.
Syntaxe
DBMS_CLOUD_AI.GENERATE
(
prompt IN CLOB,
profile_name IN VARCHAR2 DEFAULT NULL,
action IN VARCHAR2 DEFAULT NULL,
attributes IN CLOB DEFAULT NULL
) RETURN CLOB;
Paramètres
Paramètre | Description |
---|---|
|
Invite en langage naturel pour traduire à l'aide de l'IA. L'invite peut inclure Ce paramètre est obligatoire. |
|
Nom du profil d'IA. Ce paramètre est facultatif si un profil d'IA est déjà défini dans la session à l'aide de La valeur par défaut est NULL. Les conditions suivantes s'appliquent :
Note : Pour Database Actions, vous pouvez spécifier l'argumentprofile_name dans DBMS_CLOUD_AI.GENERATE ou exécuter deux étapes en tant que script PL/SQL : DBMS_CLOUD_AI.SET_PROFILE et DBMS_CLOUD_AI.GENERATE .
|
action |
Action pour traduire une invite naturelle à l'aide de l'IA. Les actions prises en charge incluent Note : Cette fonction ne prend pas en charge l'actionrunsql . Si vous fournissez l'action runsql , elle retourne l'erreur suivante :
|
attributes |
Remplacer des attributs de profil d'IA spécifiques en fournissant des attributs au format JSON. Pour plus de détails, voir Attributs de profil. |
Exemples
Les exemples suivants illustrent les actions showsql
, narrate
et chat
qui peuvent être utilisées avec la fonction DBMS_CLOUD_AI.GENERATE
.
Voici un exemple avec l'action showsql
:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'showsql')
FROM dual;
Voici un exemple avec l'action narrate
:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'narrate')
FROM dual;
Voici un exemple avec l'action chat
:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'what is oracle autonomous database',
profile_name => 'OPENAI',
action => 'chat')
FROM dual;
Attributs de profil
Attributs
Nom d'attribut | Description |
---|---|
|
Nom du modèle déployé du service Azure OpenAI. Le nom ne peut inclure que des caractères alphanumériques, des traits de soulignement (_) et des tirets (-). Le nom ne peut pas se terminer par un trait de soulignement (_) ou un tiret (-). Pour savoir comment obtenir |
|
Nom de la ressource de service Azure OpenAI. Le nom de la ressource ne peut inclure que des caractères alphanumériques et des tirets, et ne peut pas commencer ni se terminer par un tiret. Pour savoir comment obtenir |
|
Inclure les commentaires de colonne dans les métadonnées utilisées pour traduire les invites en langage naturel à l'aide de l'intelligence artificielle. Le type de données Note : Les valeurs booléennes ne sont pas applicables dans la procédureDBMS_CLOUD_AI.SET_ATTRIBUTE lors de la définition d'un seul attribut, car le paramètre attribute_value est de type CLOB .
|
|
Attribut |
|
Nom des données d'identification permettant d'accéder aux API du fournisseur d'intelligence artificielle. Les données d'identification utilisant des jetons de porteur peuvent être créées en utilisant le nom du fournisseur comme nom d'utilisateur et le jeton de porteur comme mot de passe. Il s'agit d'un attribut obligatoire. Voir CREATE_CREDENTIAL Procédure. |
|
Indique le nombre de jetons à prédire par génération. La valeur par défaut est 1024. Pour plus de détails, voir Jetons et jetons. |
|
Nom du modèle d'intelligence artificielle utilisé pour générer des réponses. Modèles pris en charge pour :
Note : Ce paramètre n'est pas utilisé pour Azure, car le modèle est déterminé lorsque vous créez votre déploiement dans le portail du service OpenAI Azure. |
|
Tableau d'objets JSON spécifiant le propriétaire et les noms d'objet admissibles à la traduction en langage naturel vers SQL. Pour inclure tous les objets d'un utilisateur donné, omettez le "nom" et spécifiez uniquement la clé "propriétaire" dans l'objet JSON. Pour la traduction du langage naturel en langage SQL, le nom de l'objet, le responsable de l'objet, les colonnes d'objet et les commentaires sont envoyés au fournisseur d'intelligence artificielle à l'aide de demandes HTTPS. Évitez de spécifier des objets avec un nom d'objet sensible, des noms de colonne ou des commentaires dans la liste d'objets. Les fournisseurs d'IA peuvent avoir une limite sur la taille des métadonnées autorisées dans les demandes de traduction. Envisagez de limiter la liste des objets adaptés aux invites de langage naturel par les utilisateurs de l'application. Format :
|
|
Indique l'OCID du compartiment auquel vous êtes autorisé à accéder lors de l'appel du service d'intelligence artificielle générative OCI. L'ID compartiment peut contenir des caractères alphanumériques, des tirets et des points. La valeur par défaut est l'ID compartiment de la base de données Autonomous Database. |
|
Cet attribut indique l'OCID du point d'extrémité de la grappe d'hébergement d'IA dédiée Oracle. L'ID point d'extrémité peut contenir des caractères alphanumériques, des tirets et des points. Pour trouver l'OCID du point d'extrémité, voir Obtention des détails d'un point d'extrémité dans l'intelligence artificielle générative. Lorsque vous voulez utiliser la grappe d'intelligence artificielle dédiée Oracle, vous devez fournir l'OCID du point d'extrémité de la grappe d'hébergement. Par défaut, l'ID point d'extrémité est vide et le modèle est sur demande sur une infrastructure partagée. |
|
Cet attribut indique le type d'exécution du modèle fourni. Cet attribut est requis lorsque l'attribut Toutes les valeurs autorisées se trouvent dans le service d'intelligence artificielle générative pour OCI runtimeType. Voir Informations de référence sur le type LlmInferenceRequest. Les valeurs valides sont les suivantes :
|
|
Fournisseur d'intelligence artificielle pour le profil d'intelligence artificielle. Fournisseurs pris en charge :
Il s'agit d'un attribut obligatoire. |
|
Cet attribut indique l'emplacement de la grappe d'intelligence artificielle générative que vous voulez utiliser. La région peut contenir des caractères alphanumériques et des tirets.
Note : La grappe d'intelligence artificielle générative d'Oracle est disponible dans les régions de Chicago, Francfort et Londres. Voir Modèles de base préentraînés dans l'IA générative.us-chicago-1 .
|
|
Le texte généré prend fin au début de la première séquence d'arrêt. La séquence sera incorporée dans le texte. La valeur de l'attribut doit être un tableau valide de valeurs de chaîne au format JSON. |
|
L'échantillonnage à partir des modèles de génération de texte incorpore le caractère aléatoire, de sorte que la même invite peut produire des sorties différentes chaque fois que vous cliquez sur "générer". La température est un nombre flottant non négatif utilisé pour régler le degré d'aléatoire. Des températures plus basses signifient des générations moins aléatoires. Voir Température pour plus de détails. Ce paramètre s'applique à tous les fournisseurs de services pris en charge. |
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'COHERE',
attributes =>
'{"provider": "cohere",
"credential_name": "COHERE_CRED",
"object_list": [{"owner": "ADB_USER"}],
"max_tokens":512,
"stop_tokens": [";"],
"model": "command-nightly",
"temperature": 0.5,
"comments": true
}');
END;
/
L'exemple suivant présente des attributs de profil personnalisés utilisant l'intelligence artificielle générative OCI :
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'GENAI',
attributes => '{"provider": "oci",
"credential_name": "GENAI_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"}],
"oci_compartment_id": "ocid1.compartment.oc1...",
"oci_endpoint_id": "ocid1.generativeaiendpoint.oc1.us-chicago-1....",
"region": "us-chicago-1",
"model": "cohere.command-light",
"oci_runtimetype": "COHERE"
}');
END;
/