Package DBMS_CLOUD_AI

Le package DBMS_CLOUD_AI, avec Select AI, facilite et configure la traduction des invites en langage naturel pour générer, exécuter et expliquer des instructions SQL. Permet également d'extraire la génération augmentée et les interactions basées sur le langage naturel, y compris les discussions avec les LLM.

DBMS_CLOUD_AI Présentation

Décrit l'utilisation du package DBMS_CLOUD_AI.

Utilisez le package DBMS_CLOUD_AI pour créer des profils AI et les configurer pour accéder à un modèle LLM (Large Language Model). Définissez le profil AI dans la session utilisateur de base de données en cours pour effectuer des tâches telles que la génération, l'exécution et l'explication du code SQL. En outre, activez la génération augmentée de récupération et les interactions basées sur le langage naturel, y compris les discussions avec les LLM.

Pour en savoir plus sur les plates-formes et les LLM pris en charge, reportez-vous à A propos de Select AI.

Récapitulatif des sous-programmes DBMS_CLOUD_AI

Cette section traite des sous-programmes DBMS_CLOUD_AI fournis avec Autonomous Database.

Sous-programme Description

CREATE_PROFILE Procédure

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

Attributs de profil

Fournit les attributs de profil AI que vous pouvez configurer.

DISABLE_PROFILE Procédure

Cette procédure désactive un profil AI dans la base de données actuelle.

DROP_PROFILE Procédure

Cette procédure supprime un profil AI existant.

ENABLE_PROFILE Procédure

Cette procédure permet à un profil AI d'être utilisé dans la base de données en cours.

Fonction GENERATE

Cette fonction vous permet d'utiliser Select AI sans état avec votre profil existant.

Fonction GENERATE_SYNTHETIC_DATA

Cette fonction génère des données synthétiques.

Fonction GET_PROFILE

Cette fonction renvoie le nom de profil utilisé dans la session en cours.

GET_PROFILE Procédure

Cette procédure renvoie le nom du profil et le propriétaire du profil dans la session en cours.

SET_ATTRIBUTE Procédure

Cette procédure définit les attributs de profil AI.

SET_PROFILE Procédure

Cette procédure définit le profil AI pour la base de données en cours.

ENABLE_DATA_ACCESS Procédure

Utilisez cette procédure pour activer l'envoi de données à votre LLM.

DISABLE_DATA_ACCESS Procédure

Utilisez cette procédure pour désactiver l'envoi de données à votre LLM.

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'une banque d'objets à l'aide d'un travail de planificateur asynchrone.

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 la base de données vectorielle.

DISABLE_VECTOR_INDEX Procédure

Cette procédure désactive un objet d'index vectoriel dans la base de données en cours. Lorsqu'il est désactivé, un profil AI ne peut pas utiliser l'index de vecteur et le système ne charge pas de données dans la banque de vecteurs.

ENABLE_VECTOR_INDEX Procédure

Cette procédure active ou active un objet d'index vectoriel précédemment désactivé.

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.

Attributs d'index de vecteur

Fournit des attributs de profil d'index vectoriel que vous pouvez configurer.

CREATE_PROFILE Procédure

La procédure crée un nouveau profil AI 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 AI. Le nom du profil doit respecter les règles de dénomination de l'identificateur SQL Oracle. La longueur maximale du nom de profil est de 125 caractères.

Ce paramètre est obligatoire.

attributes

Attributs de profil au format JSON. Pour plus d'informations, reportez-vous à Attributs de profil AI.

Valeur par défaut : NULL.

status

Statut du profil.

Par défaut, cette option est activée.

description

Description du profil AI.

Valeur par défaut : NULL.

Exemple

BEGIN
     DBMS_CLOUD_AI.CREATE_PROFILE(
          profile_name    => 'OpenAI',
          attributes      => JSON_OBJECT('provider' value 'openai',
                                         'credential_name' value 'openai_cred'),
		status     => 'enabled',							 
          description     => 'AI profile to use OpenAI for SQL translation'
     );
END;
/

Attributs de profil

Les attributs d'un profil AI permettent de gérer et de configurer le comportement du profil AI. Certains attributs sont facultatifs et ont une valeur par défaut.

Attributs

Nom d'attribut Description

annotations

Fournit des métadonnées supplémentaires sur vos tables et colonnes de base de données à l'aide de la fonctionnalité d'annotations 23ai.

Les valeurs autorisées sont TRUE ou FALSE. La valeur par défaut est FALSE. Ces valeurs ne distinguent pas les minuscules des majuscules.

TRUE : ajoute des annotations au niveau de la table et de la colonne à l'invite utilisateur en plus d'autres métadonnées au LLM.

FALSE : n'inclut pas les annotations dans les métadonnées d'invite augmentée.

azure_deployment_name

Nom du modèle déployé du service OpenAI Azure. Le nom ne peut inclure que des caractères alphanumériques, un trait de soulignement (_) et un trait d'union (-). Le nom ne peut pas se terminer par un trait de soulignement (_) ou un trait d'union (-). Pour savoir comment obtenir azure_deployment_name, reportez-vous à Création et déploiement d'une ressource de service Azure OpenAI.

azure_embedding_deployment_name

Nom du modèle d'intégration déployé OpenAI Azure.

Le nom ne peut inclure que des caractères alphanumériques, des traits de soulignement et des tirets. Le nom ne peut pas commencer ou se terminer par un trait d'union ou un trait de soulignement.

azure_resource_name

Nom de la ressource de service OpenAI Azure. Le nom de la ressource ne peut comporter que des caractères alphanumériques et des traits d'union, et ne peut pas commencer ou se terminer par un trait d'union. Pour savoir comment obtenir azure_resource_name, reportez-vous à Création et déploiement d'une ressource de service Azure OpenAI.

case_sensitive_values

Indique si Select AI doit demander au LLM de générer des instructions SQL non sensibles à la casse pour les colonnes contenant des valeurs de chaîne ou de texte.

Les valeurs prises en charge sont les suivantes :

  • true : indique le LLM permettant de générer des requêtes SQL avec des valeurs de chaîne sensibles à la casse.

  • false : indique le LLM pour générer des requêtes SQL qui ignorent la casse des valeurs de chaîne.

La valeur par défaut est false.

comments

Inclut les commentaires de table et de colonne dans les métadonnées utilisées pour traduire les invites en langage naturel à l'aide du programme d'installation automatisée. 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. Ces valeurs ne distinguent pas les majuscules.

constraints

Gère si les contraintes d'intégrité référentielle telles que les clés primaires et étrangères doivent être incluses dans les métadonnées envoyées au LLM.

Les valeurs autorisées sont TRUE ou FALSE. La valeur par défaut est FALSE. Ces valeurs ne distinguent pas les majuscules.

TRUE : inclut les contraintes référentielles dans les métadonnées d'invite augmentée envoyées au LLM.

FALSE : n'inclut pas les contraintes d'intégrité référentielle.

conversation

Attribut VARCHAR2 indiquant si l'historique des conversations est activé pour un profil. Les valeurs valides sont true et false. Valeur par défaut : false. Les valeurs ne respectent pas la casse.

credential_name

Nom des informations d'identification permettant d'accéder aux API du fournisseur d'IA.

Vous pouvez créer des informations d'identification à l'aide de jetons de porteur en utilisant le nom du fournisseur comme nom d'utilisateur et le jeton de porteur comme mot de passe.

Les informations d'identification de clé secrète de coffre sont également prises en charge.

L'authentification de principal, par exemple, le principal de service Azure, est également prise en charge. Pour plus d'informations sur la configuration, reportez-vous à Utilisation du principal de service Azure pour accéder aux ressources Azure.

Il s'agit d'un attribut obligatoire. Reportez-vous à Procédure CREATE_CREDENTIAL.

embedding_model

Modèle d'intégration défini dans le profil AI. Voici les fournisseurs d'IA 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
Remarque

  • Le paramètre embedding_model n'est pas applicable pour Anthropic et Hugging Face.

  • Pour les modèles dans la base de données, indiquez le nom du modèle importé dans votre base de données si vous souhaitez utiliser Sélectionner l'IA avec le modèle de transformateur dans la base de données. Vous pouvez obtenir le nom du modèle en interrogeant USER_MINING_MODELS.

    Syntaxe :

    Voici la syntaxe d'utilisation du modèle de transformateur dans la base de données pour embedding_model :

    "embedding_model": "[<model_schema>.]<model_name>"

enforce_object_list

Indique si le LLM doit limiter la génération d'instructions SQL qui utilise uniquement les tables couvertes par la liste d'objets.

Les valeurs prises en charge sont :

  • true : applique l'utilisation des tables indiquées dans la liste d'objets uniquement.

  • false : permet au LLM d'utiliser des tables accessibles à l'utilisateur.

Ces valeurs ne distinguent pas les minuscules des minuscules. La valeur par défaut est false.

max_tokens

Indique le nombre de jetons à prévoir par génération. La valeur par défaut est 1024. Pour plus de détails, reportez-vous à Jetons et jetons.

model

Nom du modèle AI utilisé pour générer les réponses.

Reportez-vous à Sélection de votre fournisseur AI et de vos LLM et indiquez le nom du modèle.

Remarque

  • Cohere : 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.
  • OCI Generative AI : les modèles de discussion sont pris en charge pour toutes les actions Sélectionner l'IA telles que runsql, showsql, explainsql, narrate et chat.

    Select AI prend en charge les modèles préentraînés pour OCI Generative AI. Les modèles personnalisés peuvent également être fournis avec leurs OCID complets. Si vous fournissez l'OCID ou oci_endpoint_id, veillez à fournir oci_runtimetype ou oci_apiformat en fonction des modèles de discussion OCI.

    Pour en savoir plus sur les modèles pris en charge dans OCI Generative AI, reportez-vous à Modèles de base préentraînés dans Generative AI.

  • 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 de service OpenAI Azure.

  • AWS : les modèles de fondation Amazon Bedrock nécessitent des autorisations d'accès via la console Amazon Bedrock. Reportez-vous à la documentation AWS pour obtenir le fichier modelID.
  • Compatible OpenAI : reportez-vous à la documentation du fournisseur d'IA pour connaître les noms de modèle pris en charge.

object_list

Tableau d'objets JSON indiquant le propriétaire et les noms d'objet admissibles pour la traduction en langage naturel dans SQL. Pour inclure tous les objets d'un utilisateur donné, omettez le "nom" et indiquez uniquement la clé "propriétaire" dans l'objet JSON.

Vous pouvez utiliser les types d'objet suivants :

  • tables
  • vues
  • vues matérialisées
  • tables temporaires globales
  • tables externes
  • synonymes sur les types d'objet ci-dessus

Pour la traduction du langage naturel en SQL, le nom de l'objet, le propriétaire de l'objet, les colonnes d'objet et les commentaires sont envoyés au fournisseur AI à l'aide de demandes HTTPS. Evitez d'indiquer des objets avec un nom d'objet sensible, des noms de colonne ou des commentaires dans la liste d'objets.

Les fournisseurs AI 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"}
]

Les tables externes créées à l'aide de la synchronisation d'OCI Data Catalog ou AWS Glue peuvent également être utilisées dans la liste d'objets. Cela permet de gérer les métadonnées dans les catalogues de données centraux et d'utiliser les métadonnées directement pour traduire les invites en langage naturel à l'aide de l'IA.

object_list_mode

Indique si les métadonnées des tables les plus pertinentes ou de toutes les tables doivent être envoyées au LLM.

Les valeurs admises sont :

  • automated : envoie les métadonnées uniquement pour les tables spécifiques identifiées comme les plus pertinentes pour la requête.

  • all : envoie les métadonnées de toutes les tables accessibles à l'utilisateur.

Lorsque object_list_mode est défini sur automated, Select AI crée automatiquement un index vectoriel, nommé <profile_name>_OBJECT_LIST_VECINDEX avec des attributs par défaut. Voir

oci_apiformat

Indique le format dans lequel l'API attend que les données soient envoyées et reçues. Utilisez cet attribut pour générer des réponses de type texte. Cet attribut s'applique aux modèles de discussion OCI Generative AI dans un cluster d'IA dédié. Indiquez cet attribut lorsque vous indiquez un OCID de modèle dans l'attribut model ou fournissez une adresse dans l'attribut oci_endpoint_id.

Les valeurs admises sont les suivantes :
  • COHERE
  • GENERIC
Remarque

Utilisez cet attribut pour les modèles de discussion OCI Generative AI

oci_compartment_id

Indique l'OCID du compartiment auquel vous êtes autorisé à accéder lors de l'appel du service OCI Generative AI. L'ID de compartiment peut contenir des caractères alphanumériques, des tirets et des points.

La valeur par défaut est l'ID de compartiment de la base de données pluggable.

oci_endpoint_id

Cet attribut indique l'OCID d'adresse du cluster d'hébergement AI dédié Oracle. L'ID endpoint peut contenir des caractères alphanumériques, des tirets et des points. Pour rechercher l'OCID d'adresse, reportez-vous à Obtention des détails d'une adresse dans l'IA générative.

Lorsque vous voulez utiliser le cluster AI dédié Oracle, vous devez fournir l'OCID d'adresse du cluster hôte.

Par défaut, l'ID d'adresse est vide et le modèle est à la demande sur une infrastructure partagée.

oci_runtimetype

Cet attribut indique le type d'exécution du modèle fourni. Cet attribut est applicable aux modèles de génération de texte OCI dans un cluster d'IA dédié. Indiquez cet attribut lorsque vous indiquez un OCID de modèle dans l'attribut model ou fournissez une adresse dans l'attribut oci_endpoint_id.

Toutes les valeurs autorisées sont disponibles dans OCI Generative AI runtimeType. Reportez-vous à Référence LlmInferenceRequest.

Les valeurs prises en charge sont :
  • COHERE
  • LLAMA
Remarque

Cet attribut est en phase d'abandon. Utilisez oci_apiformat.

provider

Fournisseur AI pour le profil AI.

Fournisseurs pris en charge :

  • ouvert
  • cohere
  • azur
  • base de données
  • oci
  • Google
  • anthropique
  • visage câlin
  • aws

Il s'agit d'un attribut obligatoire.

provider_endpoint

Indique l'adresse d'API pour les fournisseurs compatibles avec OpenAI. Cet attribut est spécifique uniquement aux fournisseurs compatibles OpenAI. Indiquez provider_endpoint en tant qu'attribut dans la procédure DBMS_CLOUD_AI.CREATE_PROFILE au lieu de l'attribut provider. Reportez-vous à Utilisation des fournisseurs compatibles avec OpenAI pour savoir comment obtenir le paramètre.

Exemple : api.fireworks.ai/inference

region

Cet attribut indique l'emplacement du cluster AI génératif que vous souhaitez utiliser. La région peut contenir des caractères alphanumériques et des traits d'union.
Remarque

Le cluster d'IA générative Oracle est disponible à Chicago, Francfort, Londres et dans d'autres régions sélectionnées. Pour en savoir plus, reportez-vous à Régions avec IA générative.

La région par défaut pour AWS est us-east-1.

La région par défaut est us-chicago-1.

stop_tokens

Le texte généré se terminera au début de la séquence d'arrêt la plus ancienne. La séquence sera incorporée dans le texte. La valeur d'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, reportez-vous à la documentation OpenAI ou Cohere.

temperature

L'échantillonnage à partir des modèles Générer du texte intègre le caractère aléatoire, de sorte que la même invite peut générer 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. Pour plus de détails, reportez-vous à Temperature. Ce paramètre est applicable à tous les fournisseurs de services pris en charge.

vector_index_name

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

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 les attributs de profil personnalisé à l'aide d'OCI Generative AI :

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_apiformat": "COHERE"            
       }');                                                                  
END;                                                                         
/ 

DROP_PROFILE Procédure

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 AI

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.

ENABLE_PROFILE Procédure

Cette procédure active le profil AI spécifié par l'utilisateur. La procédure fait passer le statut du profil AI à ENABLED.

Syntaxe

DBMS_CLOUD_AI.ENABLE_PROFILE(
     profile_name         IN   VARCHAR2
 );

Paramètres

Paramètre Description

profile_name

Nom du profil AI à activer

Ce paramètre est obligatoire.

Exemple d'activation du profil AI

BEGIN
     DBMS_CLOUD_AI.ENABLE_PROFILE(
         profile_name    => 'OPENAI'
     );
END;
/

DISABLE_PROFILE Procédure

Cette procédure désactive le profil AI dans la base de données actuelle. Cette procédure modifie le statut du profil AI en DISABLED.

Syntaxe

DBMS_CLOUD_AI.DISABLE_PROFILE(
      profile_name  IN  VARCHAR2
);

Paramètres

Paramètre Description

profile_name

Nom du profil AI.

Ce paramètre est obligatoire.

Exemple

BEGIN
     DBMS_CLOUD_AI.DISABLE_PROFILE(
         profile_name    => 'OPENAI'
     );
END;
/

GET_PROFILE Procédure

Cette procédure renvoie le nom du profil AI et le propriétaire défini dans la session en cours.

Syntaxe

DBMS_CLOUD_AI.GET_PROFILE(                                                      
      profile_name  OUT  VARCHAR2,                                          
      profile_owner OUT  VARCHAR2                                           
);

Paramètres

Paramètre Description

profile_name

Nom du profil AI dans la session en cours.

Ce paramètre est obligatoire.

profile_owner Identifie le propriétaire du profil AI dans la session en cours.

Exemple

Cet exemple montre comment afficher le nom et le propriétaire du profil dans la session en cours.

DECLARE                                                              
       l_profile_name  DBMS_ID;                                           
       l_profile_owner DBMS_ID;                                           
     BEGIN                                                                
       DBMS_CLOUD_AI.GET_PROFILE(profile_name => l_profile_name,          
                                 profile_owner => l_profile_owner);       
     END;

Fonction GET_PROFILE

Cette fonction renvoie le nom de profil AI défini dans la session en cours.

Syntaxe

DBMS_CLOUD_AI.GET_PROFILE(
    profile_name      IN  VARCHAR2
);

Paramètres

Paramètre Description

profile_name

Nom du profil AI dans la session en cours.

Ce paramètre est obligatoire.

Exemple

Cet exemple montre comment afficher le nom du profil dans la session en cours.


   SELECT DBMS_CLOUD_AI.GET_PROFILE
   from DUAL;

SET_ATTRIBUTE Procédure

Cette procédure vous permet de définir des attributs de profil AI. Elle est surchargée pour accepter des valeurs d'attribut de différents types.

Syntaxe

DBMS_CLOUD_AI.SET_ATTRIBUTE(
      profile_name         IN   VARCHAR2,
      attribute_name       IN   VARCHAR2,
      attribute_value      IN   {BOOLEAN|VARCHAR2}
);

DBMS_CLOUD_AI.SET_ATTRIBUTE(
      profile_name         IN   VARCHAR2,
      attribute_name       IN   VARCHAR2,
      attribute_value      IN   CLOB DEFAULT NULL
);

Paramètres

Seul le propriétaire peut définir ou modifier les attributs du profil AI. Pour obtenir une liste des attributs pris en charge, reportez-vous à la section Profile Attributes.

Paramètre Description

profile_name

Nom du profil AI pour lequel vous souhaitez définir les attributs.

Ce paramètre est obligatoire.

attribute_name

Nom de l'attribut de profil AI

Ce paramètre est obligatoire.

attribute_value

Valeur de l'attribut de profil. La valeur peut être de type BOOLEAN, CLOB, NUMBER ou VARCHAR2.

Valeur par défaut : NULL.

Exemples

BEGIN
 DBMS_CLOUD_AI.SET_ATTRIBUTE(
   profile_name    => 'OPENAI',
   attribute_name  => 'credential_name',
   attribute_value => 'OPENAI_CRED_NEW'
 );
END;
/

L'exemple suivant accepte le type NUMBER comme attribute_value.

BEGIN
 DBMS_CLOUD_AI.SET_ATTRIBUTE(
   profile_name    => 'OCI_PROFILE',
   attribute_name  => 'temperature',
   attribute_value => 0.5
 );
END;
/

L'exemple suivant accepte le type BOOLEAN comme attribute_value.

BEGIN
 DBMS_CLOUD_AI.SET_ATTRIBUTE(
   profile_name    => 'OCI_PROFILE',
   attribute_name  => 'comments',
   attribute_value => 'true'
 );
END;
/

L'exemple suivant accepte le type VARCHAR2 comme attribute_value.

BEGIN
 DBMS_CLOUD_AI.SET_ATTRIBUTE(
   profile_name    => 'OCI_PROFILE',
   attribute_name  => 'model',
   attribute_value => 'meta.llama-3.3-70b-instruct'
 );
END;
/

GENERATE Function (Générer la fonction)

Cette fonction fournit une traduction AI sans état. Avec votre profil AI existant, vous pouvez utiliser cette fonction pour effectuer les actions prises en charge, telles que showsql, runsql, explainsql, narrate et chat. La valeur par défaut est showsql.

Vous pouvez également remplacer tout ou partie des attributs de profil à 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 de langage naturel à 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". Le paramètre action fourni 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 AI. Ce paramètre est facultatif si un profil AI est déjà défini dans la session à l'aide de DBMS_CLOUD_AI.SET_PROFILE.

Valeur par défaut : NULL.

Les conditions suivantes s'appliquent :
  • Si un profil est défini dans la session en cours, 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.
Remarque

Pour Database Actions, vous pouvez indiquer 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       => 'runsql')
FROM dual;
-----------------------------------------------

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       => 'explainsql')
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, reportez-vous à Exécution d'instructions SQL dans l'éditeur de code.
action

Action permettant de traduire une invite naturelle à l'aide de l'IA. Les actions prises en charge sont runsql (par défaut), showsql, explainsql, narrate et chat. Les descriptions des actions sont incluses dans Utilisation du mot-clé AI pour saisir des invites.

attributes Remplacer des attributs de profil AI spécifiques en fournissant des attributs au format JSON. Pour plus d'informations, reportez-vous à Attributs de profil.

Exemples

Les exemples suivants illustrent les actions runsql, showsql, explainsql, narrate et chat qui peuvent être utilisées avec la fonction DBMS_CLOUD_AI.GENERATE. Pour plus d'informations, reportez-vous également à Utilisation du mot-clé AI pour saisir des invites.

Voici un exemple avec l'action runsql :

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

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 explainsql :

SELECT DBMS_CLOUD_AI.GENERATE(prompt       => 'how many customers',
                              profile_name => 'OPENAI',
                              action       => 'explainsql)
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;

Vous pouvez utiliser DBMS_CLOUD_AI.GENERATE dans une procédure et exécuter la fonction. L'exemple suivant prend ai_prompt, profile_name et action en tant que paramètres d'entrée et appelle DBMS_CLOUD_AI.GENERATE.

create or replace FUNCTION call_select_ai (ai_prompt  IN VARCHAR2, 
                                           ai_profile IN VARCHAR2,
                                           ai_action  IN VARCHAR2) -- valid for 'chat', 'narrate', 'showsql'
                                           RETURN CLOB AS sai_resp clob;
BEGIN
  sai_resp := DBMS_CLOUD_AI.GENERATE(prompt       => ai_prompt,
                                     profile_name => ai_profile,
                                     action       => ai_action);  
  return(sai_resp);
END call_select_ai;

SET_PROFILE Procédure

Cette procédure définit le profil AI pour la session en cours.

Après avoir défini un profil AI pour la session de base de données, toute instruction SQL avec le préfixe SELECT AI est considérée comme une invite en langage naturel. En fonction de l'action que vous indiquez avec le préfixe AI, une réponse est générée à l'aide du programme d'installation automatisée. Pour utiliser le préfixe AI, reportez-vous à Exemples d'utilisation de Select AI et à Utilisation du mot-clé AI pour saisir des invites. Vous pouvez éventuellement remplacer les attributs de profil ou les modifier en les spécifiant au format JSON. Pour définir les attributs, reportez-vous à Procédure SET_ATTRIBUTE.

Le profil AI ne peut être défini pour la session en cours que si le propriétaire du profil AI est l'utilisateur de la session.

Pour définir un profil AI pour toutes les sessions d'un utilisateur de base de données spécifique ou toutes les sessions 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 d'informations, reportez-vous à Instruction CREATE TRIGGER.

Syntaxe

DBMS_CLOUD_AI.SET_PROFILE(
    profile_name      IN  VARCHAR2,
);

Paramètres

Paramètre Description

profile_name

Nom du profil AI dans la session en cours.

Ce paramètre est obligatoire.

Exemple


   BEGIN
        DBMS_CLOUD_AI.SET_PROFILE(
          profile_name    => 'OPENAI'
        );
   END;
   /

Fonction GENERATE_SYNTHETIC_DATA

Cette procédure permet de 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 souhaitez 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 donnée. En fait, cette action désactive l'action narrate.

Paramètres

Paramètre Obligatoire Description

profile_name

Oui

Profil AI contenant les informations de service LLM nécessaires. Elle peut être créée par la procédure CREATE_PROFILE.

object_name

Oui Indiquez 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 propriétaire de l'objet référencé. Si aucun propriétaire spécifique n'est fourni, 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 de manière synthétique.

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 appelé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. Reportez-vous à 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 en charge les informations d'objet de table avec ses arguments et contient les mêmes arguments que ceux fournis dans la table unique. Reportez-vous à la section object_list Parameters.

Paramètres optionnels

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

sample_rows

Nombre

0 <= sample_rows <= 100

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

La valeur 0 signifie qu'aucune ligne d'exemple ne sera utilisée. La valeur par défaut est 0.

table_statistics

Boolean

  • True
  • False

Activer ou désactiver l'utilisation des informations de statistiques de table.

Valeur par défaut : False.

priority

Chaîne (String)

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é plus élevée consomment davantage de ressources de base de données et s'exécutent plus rapidement.

La valeur par défaut est HIGH

  • HIGH : indique le nombre de demandes de 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 simultanés en fonction de la limite d'accès simultané pour le service Medium. La valeur par défaut est 4.

  • LOW : exécute le travail 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

Boolean
  • True
  • False

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

Valeur par défaut : False.

Paramètres object_list

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

owner

Chaîne (String)

Oui

Indique l'utilisateur de base de données propriétaire 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 (String)

Non

Indiquez un nom de table pour alimenter les données synthétiques. Le privilège SELECT et INSERT sur les objets de table est nécessaire pour l'utilisateur qui utilise la table it.The. Il est vide ou contient des enregistrements.

record_count

Nombre

Non

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

Indiquez record_count ou record_count_percentage.

record_count_percentage

Nombre

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 clone de métadonnées, dans laquelle 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.

Lorsque vous utilisez le paramètre record_count_percentage, le nombre d'enregistrements final dans la table est calculé comme suit :
Original_Num_Rows *
      record_count_percentage

user_prompt

Chaîne (String) 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 obtenir un exemple complet et afficher d'autres exemples, reportez-vous à Exemple : génération de données synthétiques.

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 fonctionnalités Select AI applicables, qui est 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 de récupération (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 spécifique.

Exemple d'activation de 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 fonctionnalités Select AI 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 de récupération (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 spécifique.

Exemple de désactivation de 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'une banque d'objets à l'aide d'un travail de planificateur asynchrone.

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 de vecteur. Le nom d'index de vecteur doit suivre les règles de dénomination de l'identificateur SQL Oracle. La longueur maximale du nom du magasin de vecteurs est de 125 caractères.

Ce paramètre est obligatoire.

attributes

Attributs personnalisés pour l'index de vecteur dans JSON. Pour afficher la liste des paramètres configurables, reportez-vous à Attributs d'index vectoriel.

Valeur par défaut : NULL.

status
Statut de l'index de vecteur. Les valeurs possibles sont les suivantes :
  • Enabled
  • Disabled

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

description

Description de l'index de vecteur.

Valeur par défaut : 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 la banque de vecteurs et supprime la banque de vecteurs. Si la valeur est FALSE, l'argument include_data garantit que la procédure supprime uniquement l'objet d'index de banque de vecteurs tout en conservant la banque de vecteurs.

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 de vecteur. Le nom d'index de vecteur doit suivre les règles de dénomination de l'identificateur SQL Oracle. La longueur maximale du nom du magasin de vecteurs est de 125 caractères.

Ce paramètre est obligatoire.

include_data

Indique si le magasin de vecteurs et l'index de vecteurs du client doivent être supprimés avec l'objet d'index de vecteurs.

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 la valeur est TRUE, ce paramètre 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 en cours. Lorsqu'il est désactivé, un profil AI ne peut pas utiliser l'index de vecteur et le système ne charge pas de données dans le magasin de vecteurs lorsque de nouvelles données sont ajoutées à la banque 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 de vecteur. Le nom d'index de vecteur doit suivre les règles de dénomination de l'identificateur SQL Oracle. La longueur maximale du nom du magasin de vecteurs est de 125 caractères.

Ce paramètre est obligatoire.

Exemple

Vous pouvez désactiver un index vectoriel en fournissant 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 AI puisse l'utiliser pour effectuer l'indexation et la recherche.

Lorsqu'il est activé, un index vectoriel permet à un profil AI de l'utiliser pour charger de nouvelles données à partir d'une banque d'objets dans une banque de vecteurs à un taux d'actualisation spécifié par l'utilisateur. Vous pouvez indiquer le paramètre refresh_rate via la liste d'objets JSON. Pour configurer les attributs JSON, reportez-vous à Attributs d'index vectoriel.

Syntaxe

DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX(                                              
   index_name       IN  VARCHAR2                                            
);

Paramètres

Paramètre Description

index_name

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

Ce paramètre est obligatoire.

Exemple

Vous pouvez activer ou activer un index vectoriel en indiquant 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. Elle est surchargée pour accepter des valeurs d'attribut de différents types.

Syntaxe

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 de vecteur. Le nom d'index de vecteur doit suivre les règles de dénomination de l'identificateur SQL Oracle. La longueur maximale du nom du magasin de vecteurs est de 125 caractères.

Ce paramètre est obligatoire.

attribute_name

Nom des attributs personnalisés indiqué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

Ce paramètre est obligatoire.

attribute_value

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

Valeur par défaut : NULL.

Exemple

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;                                                                 
/

Attributs d'index de vecteur

Les attributs d'un index vectoriel permettent de gérer et de configurer le comportement de l'index vectoriel. Vous pouvez ajouter des attributs d'index personnalisés si nécessaire. Certains attributs sont facultatifs et ont une valeur par défaut.

Attributs

Nom d'attribut Valeur Obligatoire Description
chunk_size 1024 (par défaut) Non

Taille du texte de découpage des données d'entrée.

Pour les données de texte, cela signifie le nombre de caractères.

chunk_overlap 128 (par défaut) Non

Indique la quantité de caractères qui se chevauchent entre les blocs de texte adjacents. Cet attribut est utile pour assurer la continuité et la précision contextuelles dans le traitement du texte en autorisant les chevauchements entre les segments, ce qui permet d'éviter la perte d'informations contextuelles aux limites des blocs.

location

ND Oui

Emplacement de la banque d'objets. Les fichiers de cet emplacement peuvent être des documents au format PDF, DOC, JSON, XML ou HTML. Reportez-vous à Formats de document pris en charge.

match_limit

5 (par défaut) Non

Spécifie le nombre maximal de résultats à renvoyer dans une requête de recherche vectorielle, en contrôlant la taille de sortie et en améliorant l'efficacité des opérations d'extraction de données.

object_storage_credential_name

ND Oui

Spécifie le nom des informations d'identification permettant d'accéder à un stockage d'objet.

pipeline_name

<vector_index_name>$VECPIPELINE Non

Indique le nom du pipeline de chargement de données d'index de vecteur. Cet attribut est automatiquement défini pour l'index de vecteur, vous ne pouvez pas spécifier ni modifier. Le nom de pipeline peut être utilisé pour surveiller le chargement des données d'index vectoriel à l'aide de Surveillance et dépannage des pipelines.

profile_name

ND Oui

Nom du profil AI utilisé pour l'intégration des données source et des invites utilisateur.

refresh_rate

1440 minutes (par défaut) Non

Intervalle de mise à jour des données dans le magasin de vecteurs. L'unité est en minutes.

similarity_threshold

0 (par défaut) Non

Définit le niveau minimum de similarité requis pour que deux éléments soient considérés comme une correspondance, utile pour filtrer les résultats dans des algorithmes de correspondance afin de garantir la pertinence.

vector_distance_metric

Chaîne correspondant à l'une des valeurs spécifiées dans la description.

Non

Indique le type de calcul de distance utilisé pour comparer des vecteurs dans une base de données, en déterminant la façon dont la similarité entre les éléments est quantifiée.

Valeurs valides pour Oracle 23ai :

  • EUCLIDEAN
  • L2_SQUARED (EUCLIDEAN_SQUARED)
  • COSINE (par défaut)
  • DOT
  • MANHATTAN
  • HAMMING

vector_db_provider

oracle

Oui

Spécifie le nom du fournisseur qui gère et sert de banque de vecteurs.

vector_dimension

ND Non

Spécifie le nombre d'éléments dans chaque vecteur dans le magasin de vecteurs, définissant la taille et la structure de la représentation des données.

vector_table_name

<vector_index_name>$VECTAB (par défaut)

Non

Spécifie le nom de la table ou de la collection pour stocker les incorporations de vecteurs et les données découpées en blocs.

L'exemple suivant illustre la création d'un index de vecteur avec le magasin de vecteurs OCI Generative AI.
BEGIN
       DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
         index_name  => 'MY_INDEX',
         attributes  => '{"vector_db_provider": "oracle",
                          "location": "https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/my_namespace/my_bucket/my_data_folder",
                          "object_storage_credential_name": "OCI_CRED",
                          "profile_name": "OPENAI_ORACLE",
                          "vector_dimension": 1024,
                          "vector_distance_metric": "cosine",
                          "chunk_overlap":128,
                          "chunk_size":1024
      }');
END;
/                                                                 
/