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

Une connectivité sortante doit avoir été configurée à l'aide d'une passerelle NAT par l'administrateur de votre parc, comme décrit ci-dessous :
  • Créez une passerelle NAT dans le réseau en nuage virtuel (VCN) où résident vos ressources de base de données d'intelligence artificielle autonome 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é sortante à chaque sous-réseau (dans le VCN) où résident les ressources du service Base de données d'intelligence artificielle autonome afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique de votre instance Azure AD :
    1. Allez à la page Détails du sous-réseau correspondante.
    2. 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.
    3. 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.

    4. Retournez à la page Détails du sous-réseau.
    5. 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é.
    6. Dans le menu latéral, sous Ressources, cliquez sur Règles de trafic sortant.
    7. 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.

Ces paramètres sont définis par l'administrateur de votre parc lors de la création de l'infrastructure Exadata Cloud@Customer, comme décrit dans Utilisation de la console pour provisionner le service Exadata Database sur Cloud@Customer.

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 AI Database.

Sous-programme Description

Procédure CREATE_PROFILE

Cette procédure crée un nouveau profil d'IA pour traduire les invites en langage naturel en instructions SQL.

Procédure DISABLE_PROFILE

Cette procédure désactive un profil d'IA dans la base de données courante.

Procédure DROP_PROFILE

Cette procédure supprime un profil AI existant.

Procédure ENABLE_PROFILE

Cette procédure permet d'utiliser un profil d'IA dans la base de données courante.

Fonction GENERATE

Cette fonction génère une instruction SQL utilisant l'IA pour traduire.

Procédure SET_ATTRIBUTE

Cette procédure définit les attributs de profil d'IA.

Procédure SET_PROFILE

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

profile_name

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.

attributes

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

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

profile_name

Nom du profil d'IA

force

Si TRUE, la procédure ignore les erreurs si le profil AI n'existe pas.

La valeur par défaut de ce paramètre est FALSE.

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

profile_name

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

profile_name

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

profile_name

Nom du profil d'intelligence artificielle pour lequel vous voulez définir les attributs.

Ce paramètre est obligatoire.

attribute_name

Nom de l'attribut de profil d'IA

Ce paramètre est obligatoire.

attribute_value

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 26ai Database.

Syntaxe

DBMS_CLOUD_AI.SET_PROFILE(
    profile_name      IN  VARCHAR2,
);

Paramètres

Paramètre Description

profile_name

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

Cette fonction fournit une traduction de l'IA sans état. Avec votre profil d'IA existant, vous pouvez utiliser cette fonction pour effectuer les actions prises en charge telles que 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

prompt

Invite en langage naturel pour traduire à l'aide de l'IA.

L'invite peut inclure SELECT AI <action> comme préfixe. L'action peut également être fournie séparément en tant que paramètre "action". La valeur action fournie dans l'invite remplace le paramètre "action". L'action par défaut est showsql.

Ce paramètre est obligatoire.

profile_name

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 DBMS_CLOUD_AI.SET_PROFILE.

La valeur par défaut est NULL.

Les conditions suivantes s'appliquent :
  • Si un profil est défini dans la session courante, l'utilisateur peut omettre l'argument profile_name dans la fonction DBMS_CLOUD_AI.GENERATE.
  • Si l'argument profile_name est fourni dans la fonction DBMS_CLOUD_AI.GENERATE, il remplace toute valeur définie dans la session à l'aide de la procédure DBMS_CLOUD_AI.SET_PROFILE.
  • Si aucun profil n'est défini dans la session à l'aide de la procédure DBMS_CLOUD_AI.SET_PROFILE, l'argument profile_name doit être fourni dans la fonction DBMS_CLOUD_AI.GENERATE.

Note :

Pour Database Actions, vous pouvez spécifier l'argument profile_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.
EXEC DBMS_CLOUD_AI.set_profile('OPENAI');

-----------------------------------------------
SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'showsql')
FROM dual;

------------------------------------------------
SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'narrate')
FROM dual;
-------------------------------------------
SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'what is oracle autonomous database',
                              profile_name => 'OPENAI',
                              action       => 'chat')
FROM dual;
Pour plus d'informations, voir En cours d'exécution d'énoncés SQL dans l'éditeur de code.
action

Action pour traduire une invite naturelle à l'aide de l'IA. Les actions prises en charge incluent showsql (par défaut), narrate et chat. La description des actions est incluse dans Utiliser des mots clés d'intelligence artificielle pour entrer des invites.

Note :

Cette fonction ne prend pas en charge l'action runsql. Si vous fournissez l'action runsql, elle retourne l'erreur suivante :
ORA-20000: runsql action is not supported by generate function ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line xxxx 
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD_AI", line 2696 ORA-06512: at line x
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;

Fonction GENERATE_SYNTHETIC_DATA

Utilisez cette procédure pour générer des données synthétiques pour une seule table, plusieurs tables ou un schéma complet.

Voici la syntaxe permettant de générer des données synthétiques pour une seule table.

Syntaxe

DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
  profile_name        IN  VARCHAR2,
  object_name         IN  DBMS_ID,
  owner_name          IN  DBMS_ID,
  record_count        IN  NUMBER,
  user_prompt         IN  CLOB DEFAULT NULL,
  params              IN  CLOB DEFAULT NULL
);

Voici la syntaxe permettant de générer des données synthétiques pour plusieurs tables.

DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
  profile_name        IN  VARCHAR2,
  object_list         IN  CLOB,
  params              IN  CLOB DEFAULT NULL
);

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.

Paramètres

Paramètre Obligatoire Description

profile_name

Oui

Profil d'IA contenant les informations nécessaires sur le service LLM. Cette opération peut être créée par la procédure CREATE_PROFILE.

object_name

Oui Spécifiez un nom de table pour alimenter les données synthétiques.
  • Les privilèges SELECT et INSERT sur les objets de table sont nécessaires pour l'utilisateur qui les utilise.
  • La table est vide ou contient des enregistrements.
owner_name Non

Indiquez l'utilisateur de base de données responsable de l'objet référencé. Si aucun propriétaire spécifique n'est indiqué, la procédure utilise par défaut le schéma de l'utilisateur qui l'exécute.

record_count Non

Nombre d'enregistrements à générer synthétiquement.

user_prompt

Non Informations supplémentaires qu'un utilisateur peut mentionner pour générer des données synthétiques. Par exemple, pour générer un enregistrement pour une table nommée MOVIE avec une colonne release_date, user_prompt peut être :

La date de sortie des films devrait être en 2019

params

Non

Attributs facultatifs fournis au format de chaîne d'objet JSON pour modifier le comportement d'une API. Voir Paramètres facultatifs.

object_list

Oui Utilisez ce paramètre pour générer des données synthétiques sur plusieurs tables. Ce paramètre prend les informations d'objet de table avec ses arguments et contient les mêmes arguments fournis dans la table unique. Voir Paramètresobject_list.

Paramètres facultatifs

Paramètre Type de données de valeur Valeur Description

sample_rows

Numérique

0 <= sample_rows <= 100

Spécifier le nombre de rangées de la table à utiliser comme exemple pour guider le LLM dans la génération de données.

Une valeur de 0 signifie qu'aucun exemple de rangée ne sera utilisé. La valeur par défaut est 0.

table_statistics

Booléen

  • True
  • False

Activer ou désactiver l'utilisation des informations statistiques sur les tables.

La valeur par défaut est False.

priority

Chaîne

Valeurs valides :

  • HIGH
  • MEDIUM
  • LOW

Affectez une valeur de priorité qui définit le nombre de demandes parallèles envoyées au LLM pour générer des données synthétiques. Les tâches ayant une priorité supérieure consomment plus de ressources de base de données et s'exécutent plus rapidement.

La valeur par défaut est HIGH

  • HIGH : Spécifie le nombre de demandes LLM parallèles en fonction du nombre d'ECPU de la base de données (ou du nombre d'OCPU si votre base de données utilise des OCPU).

  • MEDIUM : Définit le nombre de processus concurrents en fonction de la limite d'accès simultané pour le service Medium. La valeur par défaut est 4.

  • LOW : Exécute la tâche de pipeline dans un ordre série, sans traitement parallèle.

Le nombre maximal de processus parallèles simultanés utilisés pour la génération de données synthétiques est limité à 64.

comments

Booléen
  • True
  • False

Activer ou désactiver l'envoi de commentaires au GML pour guider la génération des données.

La valeur par défaut est False.

Paramètres object_list

Paramètre Type de données de valeur Obligatoire Description

owner

Chaîne

Oui

Indique l'utilisateur de base de données responsable de l'objet référencé. Si aucun propriétaire spécifique n'est indiqué, la procédure utilise par défaut le schéma de l'utilisateur qui l'exécute.

name

Chaîne

Non

Spécifiez un nom de table pour alimenter les données synthétiques. Les privilèges SELECT et INSERT sur les objets de table sont nécessaires pour l'utilisateur qui utilise la table it.The est vide ou contient des enregistrements.

record_count

Numérique

Non

Nombre d'enregistrements à générer synthétiquement. Indiquez un nombre supérieur à 0.

Indiquez record_count ou record_count_percentage.

record_count_percentage

Numérique

Non

Pourcentage du nombre d'enregistrements à générer de manière synthétique. Indiquez un nombre supérieur à 0.

Pour une base de données de clonage de métadonnées, où les métadonnées de table, y compris les statistiques, sont conservées, le paramètre record_count_percentage est pris en charge.

Indiquez record_count ou record_count_percentage.

Lors de l'utilisation du paramètre record_count_percentage, le nombre final d'enregistrements dans la table est calculé comme suit :
Original_Num_Rows *
      record_count_percentage

user_prompt

Chaîne Non Identique à user_prompt dans Paramètres. user_prompt est associé à un objet de table spécifique.

Exemples

Les exemples suivants montrent la fonction DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA pour générer des données synthétiques pour une seule table et plusieurs tables. Pour un exemple complet et pour voir d'autres exemples, voir .

BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_name  => 'Director',
        owner_name   => 'ADB_USER',
        record_count => 5
    );
END;
/
PL/SQL procedure successfully completed.
BEGIN
    DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
        profile_name => 'GENAI',
        object_list => '[{"owner": "ADB_USER", "name": "Director","record_count":5},
                         {"owner": "ADB_USER", "name": "Movie_Actor","record_count":5},
                         {"owner": "ADB_USER", "name": "Actor","record_count":10},
                         {"owner": "ADB_USER", "name": "Movie","record_count":5,"user_prompt":"all movies are released in 2009"}]'
    );
END;
/
PL/SQL procedure successfully completed.

ENABLE_DATA_ACCESS Procédure

Cette procédure permet d'envoyer des données au LLM pour les fonctions Select AI applicables, qui sont le comportement par défaut. Seul un administrateur peut exécuter cette procédure.

Cette procédure contrôle l'accès aux données pour les fonctionnalités Select AI suivantes :

  • Action narrate
  • Génération augmentée par extraction (RAG)
  • Génération de données synthétiques

Syntaxe

DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();

Paramètres

Cette procédure ne nécessite aucun paramètre.

Exemple pour activer l'accès aux données

BEGIN
  DBMS_CLOUD_AI.ENABLE_DATA_ACCESS();
END;
/

DISABLE_DATA_ACCESS Procédure

Cette procédure désactive l'envoi de données au LLM pour les fonctions Sélectionner l'IA applicables. Seul un administrateur peut exécuter cette procédure.

Cette procédure limite les fonctionnalités Select AI suivantes :

  • Action narrate
  • Génération augmentée par extraction (RAG)
  • Génération de données synthétiques

Syntaxe

DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();

Paramètres

Cette procédure ne nécessite aucun paramètre.

Exemple pour désactiver l'accès aux données

BEGIN
  DBMS_CLOUD_AI.DISABLE_DATA_ACCESS();
END;
/

CREATE_VECTOR_INDEX Procédure

Cette procédure crée un index vectoriel dans la base de données vectorielle spécifiée et l'alimente avec les données d'un magasin d'objets à l'aide d'un travail asynchrone du programmateur.

Syntaxe

PROCEDURE CREATE_VECTOR_INDEX(                                              
   index_name          IN  VARCHAR2,                                        
   attributes          IN  CLOB      DEFAULT NULL,                          
   status              IN  VARCHAR2  DEFAULT NULL,                          
   description         IN  CLOB      DEFAULT NULL                           
); 

Paramètres

Paramètre Description

index_name

Nom de l'index vectoriel. Le nom de l'index vectoriel doit suivre les règles d'attribution de nom de l'identificateur SQL Oracle. La longueur maximale du nom du magasin de vecteurs est de 125 caractères.

Il s'agit d'un paramètre obligatoire.

attributes

Attributs personnalisés pour l'index vectoriel dans JSON. Pour voir la liste des paramètres configurables, voir .

La valeur par défaut est NULL.

status
Statut de l'index vectoriel. Les valeurs possibles sont :
  • Enabled
  • Disabled

La valeur par défaut est Désactivé.

description

Description de l'index vectoriel.

La valeur par défaut est NULL.

Exemple

L'exemple suivant montre comment créer un index vectoriel et configurer les attributs en tant que paramètres JSON.

BEGIN                                                                
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(                                 
            index_name    => 'MY_INDEX'                                   
            attributes    => JSON_OBJECT(                                 
                       'vector_db_provider' value 'oracle',
                       'vector_table_name'  value 'oracle_mycollection',              
                       'profile_name'      value 'OCIGENAI',         
                       'location'          value                          
                         'https://objectstorage.us-phoenix-1.' ||         
                         'oraclecloud.com/n/mynamespace/b/mybucket',      
                       'object_store_credential_name'   value 'OS_CRED',              
                       'chunk_size'        value 2048,                    
                       'chunk_overlap'     value 256,                     
                       'refresh_rate'      value 720)                     
       );                                                                 
END;                                                                 
/

DROP_VECTOR_INDEX Procédure

Cette procédure supprime un index de stockage vectoriel. Il supprime normalement l'objet d'index de stockage vectoriel et supprime le stockage vectoriel. Si la valeur est réglée à FALSE, l'argument include_data garantit que la procédure supprime uniquement l'objet d'index de stockage vectoriel tout en conservant le stockage vectoriel.

Syntaxe

PROCEDURE DROP_VECTOR_INDEX(                                                
   index_name          IN  VARCHAR2,           
   include_data        IN  BOOLEAN DEFAULT TRUE,                            
   force               IN  BOOLEAN DEFAULT FALSE                           
);

Paramètres

Paramètre Description

index_name

Nom de l'index vectoriel. Le nom de l'index vectoriel doit suivre les règles d'attribution de nom de l'identificateur SQL Oracle. La longueur maximale du nom du magasin de vecteurs est de 125 caractères.

Il s'agit d'un paramètre obligatoire.

include_data

Indique s'il faut supprimer le magasin de vecteurs et l'index vectoriel du client avec l'objet d'index vectoriel.

Valeurs possibles :

  • TRUE
  • FALSE

La valeur par défaut est TRUE.

force

Indique s'il faut ignorer les erreurs qui se produisent si l'index vectoriel n'existe pas.

Valeurs possibles :

  • TRUE
  • FALSE

Si ce paramètre est réglé à TRUE, il ignore les erreurs qui se produisent si l'index vectoriel n'existe pas.

La valeur par défaut est FALSE.

Exemple

BEGIN
DBMS_CLOUD_AI.DROP_VECTOR_INDEX(
        index_name     => 'MY_INDEX',
        include_data   => FALSE,
        force          => TRUE
     );                                                                 
END;                                                                 
/

DISABLE_VECTOR_INDEX Procédure

Cette procédure désactive un objet d'index vectoriel dans la base de données courante. Lorsqu'elle est désactivée, un profil d'IA ne peut pas utiliser l'index vectoriel et le système ne charge pas de données dans le magasin vectoriel car de nouvelles données sont ajoutées au magasin d'objets et n'effectue pas d'indexation, de recherche ou d'interrogation en fonction de l'index.

Syntaxe

DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX(                                              
   index_name       IN  VARCHAR2                                            
);

Paramètres

Paramètre Description

index_name

Nom de l'index vectoriel. Le nom de l'index vectoriel doit suivre les règles d'attribution de nom de l'identificateur SQL Oracle. La longueur maximale du nom du magasin de vecteurs est de 125 caractères.

Il s'agit d'un paramètre obligatoire.

Exemple

Vous pouvez désactiver un index vectoriel en indiquant le nom de l'index vectoriel.

BEGIN                                                                
   DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX(index_name => 'MY_INDEX');       
END;                                                                 
/

ENABLE_VECTOR_INDEX Procédure

Cette procédure active ou active un objet d'index vectoriel précédemment désactivé. En général, lorsque vous créez un index vectoriel, il est activé par défaut de sorte que le profil IA puisse l'utiliser pour effectuer l'indexation et la recherche.

Lorsqu'elle est activée, un index vectoriel permet à un profil d'IA de l'utiliser pour charger de nouvelles données à partir d'un magasin d'objets dans un magasin vectoriel à un taux de rafraîchissement spécifié par l'utilisateur. Vous pouvez spécifier le paramètre refresh_rate au moyen de la liste d'objets JSON. Pour configurer les attributs JSON, voir .

Syntaxe

DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(                                              
   index_name       IN  VARCHAR2                                            
);

Paramètres

Paramètre Description

index_name

Nom de l'index vectoriel. Le nom de l'index vectoriel doit suivre les règles d'attribution de nom de l'identificateur SQL Oracle. La longueur maximale du nom du magasin de vecteurs est de 125 caractères.

Il s'agit d'un paramètre obligatoire.

Exemple

Vous pouvez activer ou activer un index vectoriel en spécifiant le nom de l'index vectoriel comme suit :

BEGIN                                                                
   DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(index_name => 'MY_INDEX');       
END;                                                                 
/

UPDATE_VECTOR_INDEX Procédure

Cette procédure met à jour un index de stockage vectoriel existant avec une valeur spécifiée de l'attribut d'index vectoriel.
Il est surchargé d'accepter :
  • valeurs d'attributs de différents types.
  • les attributs d'index vectoriel en tant que document JSON et met à jour un ou plusieurs attributs d'un index de stockage vectoriel existant avec le nom d'attribut et la paire de valeurs spécifiés.

Syntaxe

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
   index_name         IN  VARCHAR2,
   attributes         IN  CLOB
);

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
     index_name         IN  VARCHAR2,
     attribute_name     IN  VARCHAR2,
     attribute_value    IN  VARCHAR2
);

DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                                 
     index_name         IN  VARCHAR2,                                         
     attribute_name     IN  VARCHAR2,                                         
     attribute_value    IN  CLOB     DEFAULT NULL                           
  );

Paramètres

Paramètre Description

index_name

Nom de l'index vectoriel. Le nom de l'index vectoriel doit suivre les règles d'attribution de nom de l'identificateur SQL Oracle. La longueur maximale du nom du magasin de vecteurs est de 125 caractères.

Il s'agit d'un paramètre obligatoire.

attributes

Spécifie les attributs d'index vectoriel au format JSON.

Il s'agit d'un paramètre obligatoire.

attribute_name

Nom des attributs personnalisés spécifiés en tant que paramètres JSON dans la procédure CREATE_VECTOR_INDEX.

Vous ne pouvez pas modifier les attributs suivants :

  • location
  • vector_table_name
  • chunk_size
  • chunk_overlap
  • vector_distance_metric
  • vector_dimension

Il s'agit d'un paramètre obligatoire.

attribute_value

Valeur spécifiée par l'utilisateur pour attribute_name personnalisé. La valeur peut être de type CLOB, NUMBER ou VARCHAR2.

La valeur par défaut est NULL.

Note :

Utilisez le paramètre attributes pour spécifier attribute_name et des paires valeur au format JSON ou les paramètres attribute_name et attribute_value ensemble.

Exemples

BEGIN                                                                
   DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                 
      index_name       => 'MY_INDEX',                                   
      attribute_name   => 'object_storage_credential_name',                
      attribute_value  => 'NEW_CRED'                           
   );                                                                 
END;                                                                 
/

L'exemple suivant accepte le type NUMBER comme attribute_value.

BEGIN                                                                
   DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                 
      index_name       => 'MY_INDEX',                                   
      attribute_name   => 'match_limit',                
      attribute_value  => 10                           
   );                                                                 
END;                                                                 
/

L'exemple suivant accepte le type VARCHAR2 comme attribute_value.

BEGIN                                                                
   DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(                                 
      index_name       => 'MY_INDEX',                                   
      attribute_name   => 'profile_name',                
      attribute_value  => 'AI_PROF2'                           
   );                                                                 
END;                                                                 
/

L'exemple suivant accepte attributes au format JSON.

BEGIN
  DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX(
    index_name => 'MY_VECTOR_INDEX', 
    attributes => '{"match_limit": 10, 
                    "refresh_rate": 30}'
  );
END;
/

Attributs de profil

Les attributs d'un profil d'IA aident à gérer et à configurer le comportement du profil d'IA. Certains attributs sont facultatifs et ont une valeur par défaut.

Attributs

Nom d'attribut Description

azure_deployment_name

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 azure_deployment_name, voir Créer et déployer une ressource de service Azure OpenAI.

azure_resource_name

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 azure_resource_name, voir Créer et déployer une ressource de service Azure OpenAI.

comments

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 BOOLEAN est pris en charge. Les valeurs valides sont TRUE ou FALSE pour une chaîne avec le type de données VARCHAR2.

Note :

Les valeurs booléennes ne sont pas applicables dans la procédure DBMS_CLOUD_AI.SET_ATTRIBUTE lors de la définition d'un seul attribut, car le paramètre attribute_value est de type CLOB.

conversation

Attribut VARCHAR2 qui indique si l'historique de conversation est activé pour un profil. Seuls les services OpenAI et Azure OpenAI prennent en charge l'historique de conversation. Les valeurs valides sont true ou false. La valeur par défaut est false. Les valeurs ne sont pas sensibles à la casse.

credential_name

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.

embedding_model

Modèle d'intégration défini dans le profil d'intelligence artificielle. Voici les fournisseurs d'intelligence artificielle pris en charge pour les modèles d'intégration avec leurs valeurs par défaut :

  • OCI GenAI : cohere.embed-english-v3.0
  • OpenAI: text-embedding-ada-002
  • Azure OpenAI : text-embedding-ada-002
  • Cohere : embed-english-v2.0
  • Google : text-embedding-004

Note :

Le paramètre embedding_model ne s'applique pas à Anthropic and Hugging Face.

max_tokens

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.

model

Nom du modèle d'intelligence artificielle utilisé pour générer des réponses.

Modèles pris en charge pour :

  • OpenAI : gpt-4, gpt-4-0613, gpt-4-32k, gpt-4-32k-0613, gpt-3.5-turbo (par défaut), gpt-3.5-turbo-0613, gpt-3.5-turbo-16k, gpt-3.5-turbo-16k-0613
  • Cohère : commande (par défaut), commande-nuit (expérimental), commande-lumière et commande-lumière-nuit (expérimental). Les modèles plus petits et " légers " sont plus rapides, tandis que les modèles plus grands fonctionnent mieux.Les modèles personnalisés peuvent également être fournis avec leur ID complet.
  • IA générative OCI : Pour l'IA générative OCI : cohere.command (par défaut). Les modèles préentraînés pour l'IA générative OCI sont tous pris en charge par Select AI. Les modèles personnalisés peuvent également être fournis avec leurs OCID complets.

    Pour en savoir plus sur les modèles pris en charge dans l'IA générative OCI, voir Modèles de base préentraînés dans l'IA générative.

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.

object_list

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 :
[
  {"owner": "SH", "name": "SALES",
  {"owner": "TEST_USER"}
]

oci_compartment_id

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 AI Database.

oci_endpoint_id

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.

oci_runtimetype

Cet attribut indique le type d'exécution du modèle fourni. Cet attribut est requis lorsque l'attribut model est spécifié et s'applique aux modèles de génération OCI.

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 :
  • COHERE
  • LLAMA

provider

Fournisseur d'intelligence artificielle pour le profil d'intelligence artificielle.

Fournisseurs pris en charge :

  • openai
  • covoiturage
  • azur
  • oci
  • google
  • anthropique
  • visage étreint

Il s'agit d'un attribut obligatoire.

region

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.
La région par défaut est us-chicago-1.

stop_tokens

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. stop_tokens prend un tableau JSON en entrée. Pour en savoir plus sur les jetons d'arrêt ou les séquences d'arrêt, voir la documentation sur OpenAI ou sur Cohere.

temperature

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.

L'exemple suivant utilise Cohere comme fournisseur et affiche les attributs de profil personnalisés :
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;                                                                         
/