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

En tant que développeur, vous pouvez utiliser les procédures DBMS_CLOUD avec des bases de données d'IA autonomes déployées sur Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.

Selon le choix de déploiement, les préalables suivants doivent être respectés pour utiliser les procédures DBMS_CLOUD avec les fournisseurs de services Amazon S3, Azure Blob Storage et Google Cloud Storage.

Sommaire des sous-programmes DBMS_CLOUD_AI

Cette section décrit 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 de langage naturel en instructions SQL.
Attributs de profil Fournit les attributs de profil d'intelligence artificielle que vous pouvez configurer.
Procédure DROP_PROFILE Cette procédure supprime un profil IA existant.
Procédure ENABLE_PROFILE Cette procédure permet à un profil IA d'être utilisé dans la base de données courante.
Procédure DISABLE_PROFILE Cette procédure désactive un profil d'intelligence artificielle dans la base de données courante.
Procédure SET_ATTRIBUTE Cette procédure définit les attributs de profil d'intelligence artificielle.
Procédure SET_PROFILE Cette procédure définit le profil d'intelligence artificielle pour la base de données courante.
Fonction GENERATE Cette fonction génère une instruction SQL à l'aide de l'intelligence artificielle pour la traduction.
Fonction GENERATE_SYNTH_MONOETIC_DATA Cette fonction génère des données synthétiques.
Procédure ENABLE_DATA_ACCESS Utilisez cette procédure pour activer l'envoi de données à votre GML.
Procédure DISABLE_DATA_ACCESS Utilisez cette procédure pour désactiver l'envoi de données à votre GML.
Procédure CREATE_VECTOR_INDEX 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.
Procédure DROP_VECTOR_INDEX 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.
Procédure DISABLE_VECTOR_INDEX 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 la banque de vecteurs.
Procédure ENABLE_VECTOR_INDEX Cette procédure active ou active un objet d'index vectoriel précédemment désactivé.
Procédure UPDATE_VECTOR_INDEX 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 vectoriel Fournit les attributs de profil d'index vectoriel que vous pouvez configurer.
Procédure CREATE_CONVERSATION Cette procédure vous aide à créer une conversation.
Fonction CREATE_CONVERSATION Cette fonction vous aide à créer une conversation et à utiliser l'ID conversation dans d'autres procédures.
Attributs CREATE_CONVERSATION Utilisez les attributs de conversation pour personnaliser vos conversations.
Procédure UPDATE_CONVERSATION Cette procédure met à jour une procédure existante avec des paramètres spécifiés par l'utilisateur.
Procédure SET_CONVERSATION_ID Cette procédure définit la prise en charge de la conversation dans la session courante.
Fonction GET_CONVERSATION_ID Cette procédure vous aide à obtenir le paramètre conversation_id.
Procédure CLEAR_CONVERSATION_ID Cette procédure vous aide à effacer tout conversation_id défini dans la session courante.
Procédure DELETE_CONVERSATION_PROMPT Cette procédure supprime une invite particulière.
Procédure DROP_CONVERSATION Cette procédure supprime l'intégralité d'une conversation et ses métadonnées.
Procédure de retour d'information Utilisez cette procédure pour améliorer potentiellement la précision de génération d'interrogation en fournissant une rétroaction à Select AI.
Index vectoriel pour FEEDBACK Il s'agit d'un index vectoriel par défaut créé lorsque vous utilisez feedback pour la première fois.

Procédure CREATE_PROFILE

La procédure crée un nouveau profil d'intelligence artificielle pour traduire les invites de 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 du service d'intelligence artificielle.

La valeur par défaut est NULL.

status

Statut du profil.

La valeur par défaut est Enable.

description

Description du profil d'intelligence artificielle.

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

Attributs de profil

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

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 un tiret (-). 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 du 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 s'appliquent pas à 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 OpenAI et Azure OpenAI Service 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 à l'aide de 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 Procédure CREATE_CREDENTIAL.

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 :

  • IA générative OCI : 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](https://docs.cohere.com/docs/creating-custom-models#what-are-custom-models) peuvent également être fournis avec leur ID complet.
  • IA générative pour OCI : pour OCI Generative AI : cohere.command (par défaut). Les modèles préentraînés pour OCI Generative AI 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 le service d'intelligence artificielle générative pour OCI, voir Modèles fondamentaux préentraînés dans le service d'intelligence artificielle générative.

  • AWS : Les modèles de fondation Amazon Bedrock nécessitent des autorisations d'accès au moyen de la console Amazon Bedrock. Consultez la documentation AWS pour obtenir l'ID modèle.

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 Azure OpenAI.

object_list

Tableau d'objets JSON spécifiant le responsable et les noms d'objet admissibles à la traduction en langage naturel en langage 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 propriétaire 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 votre application.

Format :

[ {"owner": "SH", "name": "SALES", {"owner": "TEST_USER"} ]

oci_compartment_id

Spécifie l'OCID du compartiment auquel vous êtes autorisé à accéder lors de l'appel du service d'intelligence artificielle générative pour 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 autonome avec intelligence artificielle.

oci_endpoint_id

Cet attribut indique l'OCID du point d'extrémité de la grappe d'hébergement dédiée à l'IA 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 le service d'intelligence artificielle générative.

Lorsque vous voulez utiliser la grappe dédiée à l'IA 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 dans 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 OCI Generative AI runtimeType. Voir Informations de référence sur le type LlmInferenceRequest.

Les valeurs prises en charge sont les suivantes :

  • COHERE
  • LLAMA

provider

Fournisseur d'IA pour le profil d'IA.

Fournisseurs pris en charge :

  • openai
  • cohorte
  • azur
  • oci
  • google plus
  • anthropique
  • visage étreint
  • heures

Il s'agit d'un attribut obligatoire.

region

Cet attribut indique l'emplacement de la grappe d'IA générative à utiliser. La région peut contenir des caractères alphanumériques et des tirets.

Note : La grappe Oracle Generative AI est disponible dans les régions de Chicago, de Francfort et de Londres. Voir [Modèles fondamentaux préentraînés dans l'IA générative](https://docs.oracle.com/en-us/iaas/Content/generative-ai/pretrained-models.htm#pretrained-models).

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

La région par défaut d'AWS est us-east-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 le service d'intelligence artificielle générative pour 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;
/

Procédure DROP_PROFILE

La procédure supprime un profil IA 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'intelligence artificielle
force

Si TRUE, la procédure ignore les erreurs si le profil d'intelligence artificielle 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 d'intelligence artificielle n'existe pas.

Procédure ENABLE_PROFILE

Cette procédure active le profil d'intelligence artificielle que l'utilisateur spécifie. La procédure modifie le statut du profil d'intelligence artificielle à ENABLED.

Syntaxe

DBMS_CLOUD_AI.ENABLE_PROFILE(
     profile_name         IN   VARCHAR2
 );

Paramètres

Paramètre Description
profile_name

Nom du profil d'intelligence artificielle à activer

Ce paramètre est obligatoire.

Exemple pour activer le profil d'intelligence artificielle

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

Procédure DISABLE_PROFILE

Cette procédure désactive le profil IA dans la base de données courante. Le statut du profil d'intelligence artificielle est modifié à 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'intelligence artificielle.

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 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 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'intelligence artificielle

Ce paramètre est obligatoire.

attribute_value

Valeur de l'attribut de 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'intelligence artificielle 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 ayant 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é AI 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 la procédure SET_ATTRIBUTE pour définir les attributs.

Le profil IA ne peut être défini pour la session courante que si le responsable du profil 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 Database 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 la traduction de l'IA lors de l'utilisation d'une connexion de base de données sans état. Avec votre profil d'intelligence artificielle existant, vous pouvez utiliser cette fonction pour effectuer les actions prises en charge telles que showsql, runsql, explainsql, narrate, summarize et chat. L'action par défaut est showsql.

Le remplacement d'une partie ou de la totalité 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,
    params            IN  CLOB
) RETURN CLOB;

Paramètres

Paramètre Description
prompt

Invite de langage naturel à traduire à l'aide de l'intelligence artificielle.

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". L'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'intelligence artificielle. Ce paramètre est facultatif si un profil d'intelligence artificielle 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 => '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, voir Exécution d'énoncés SQL dans l'éditeur de code.

action

Action pour traduire l'invite naturelle à l'aide de l'intelligence artificielle. Les actions prises en charge sont les suivantes :

  • runsql(valeur par défaut)

  • showsql

  • explainsql

  • narrate

  • summarize

  • translate

  • chat

Descriptions des actions incluses dans Utiliser des mots clés du service d'intelligence artificielle pour entrer des invites.

attributes Remplacer des attributs de profil d'intelligence artificielle spécifiques en fournissant des attributs au format JSON. Voir Attributs de profil pour plus de détails.
params

Spécifiez le paramètre de conversation. Voir Attributs CREATE_CONVERSATION. Vous ne pouvez spécifier que le paramètre suivant :

conversation_id : La valeur par défaut est l'ID conversation défini dans la session courante. Ce paramètre n'est pas obligatoire.

Exemples

Exemple : Utilisation de la fonction GENERATE pour Select AI Actions

Les exemples suivants illustrent les actions runsql, showsql, explainsql, narrate, summarize, translate et chat qui peuvent être utilisées avec la fonction DBMS_CLOUD_AI.GENERATE.

Pour plus de détails, voir aussi Utiliser des mots clés d'intelligence artificielle pour entrer 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;

Voici un exemple avec l'action summarize :

SELECT DBMS_CLOUD_AI.GENERATE(
                prompt => TO_CLOB(
                            DBMS_CLOUD.GET_OBJECT(
                             credential_name => 'STORE_CRED',
                             object_uri => 'https://objectstorage.ca-toronto-1.oraclecloud.com' ||
                                '/n/namespace-string/b/bucketname/o/data_folder/' ||
                                'summary/test_4000_words.txt')),
                profile_name => 'GENAI_LLAMA',
                action => 'SUMMARIZE')
from DUAL;

Résultat :

The music streaming industry, led by Spotify, has revolutionized the way people consume music, with streaming accounting for 80% of the American recording industry's revenue. However, this shift has also complicated the lives of artists trying to survive in an on-demand, hyper-abundant present.
Spotify's business model, which pays royalties based on an artist's
popularity, has led to concerns about the fairness of the system, with some artists earning little to no royalties. The company's dominance has also changed the way people listen to music, with a focus on convenience and personalized playlists. Liz Pelly's book, "Mood Machine: The Rise of Spotify and the Costs of the Perfect Playlist," explores the impact of Spotify's rise on the music industry and listeners, arguing that the platform's emphasis on
affect and mood has led to a homogenization of music and a loss of autonomy for listeners. As the music industry continues to evolve, questions remain about the future of music creation and consumption, and whether artists will be able to thrive in a system that prioritizes convenience and profit over artistic expression.

Ces exemples montrent l'action translate :

Les exemples suivants montrent l'utilisation de l'action translate dans l'invite.

Note : Votre profil d'intelligence artificielle doit spécifier la langue cible.

SELECT DBMS_CLOUD_AI.GENERATE('select ai translate text to be translated')
          FROM dual;

L'exemple suivant montre l'action translate fournie dans la fonction DBMS_CLOUD_AI.GENERATE avec target_language et source_language. Cet exemple utilise la traduction de l'IA générative. Le texte d'entrée this is a document en anglais (source_language: "en") est traduit en français (target_language: "fr").

DECLARE
         l_attributes  clob := '{"target_language": "fr", "source_language": "en"}';
         output clob;
      BEGIN
         output := DBMS_CLOUD_AI.GENERATE(
                        prompt            => 'this is a document',
                        profile_name      => 'oci_translate',
                        action            => 'translate',
                        attributes        => l_attributes
                     );

Utiliser la fonction GENERATE dans une procédure

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

Fonction GENERATE_SYNTH_MONOETIC_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 appelée `MOVIE` avec une colonne `release_date`, le `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ètres object_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 les utilise. La table 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 de fonction GENERATE_SYNTH_MONOETIC_DATA. 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 Exemple : Générer des 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;
/
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;
/

Procédure ENABLE_DATA_ACCESS

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 :

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

Procédure DISABLE_DATA_ACCESS

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 :

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

Procédure CREATE_VECTOR_INDEX

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 Attributs d'index vectoriel.

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

Procédure DROP_VECTOR_INDEX

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

Procédure DISABLE_VECTOR_INDEX

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

Procédure ENABLE_VECTOR_INDEX

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

Procédure UPDATE_VECTOR_INDEX

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 :

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 d'index vectoriel

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 fragmentation des données d'entrée.

Pour les données textuelles, 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 fragments de texte adjacents. Cet attribut est utile pour assurer la continuité et la précision contextuelles dans le traitement de texte en permettant les chevauchements entre les segments, ce qui permet d'éviter la perte d'informations contextuelles aux limites des fragments.
location S.O. Oui

Ce paramètre spécifie l'URI du fichier source ou les répertoires et les fichiers sources.

Les modèles génériques sont pris en charge pour les URI et les répertoires de fichiers sources.

URI de fichier source en nuage :

Vous pouvez spécifier un URI de fichier source pour le seau ou le sous-dossier. Vous pouvez utiliser des caractères génériques pour spécifier des sous-dossiers ou des noms de fichier. Le caractère "*" peut être utilisé comme caractère générique pour plusieurs caractères, et le caractère "?" peut être utilisé comme caractère générique pour un seul caractère.

Exemple utilisant des caractères génériques :

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv

Le format des URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats d'URI du service de stockage d'objets en nuage.

Répertoire :

Vous pouvez spécifier un répertoire et un nom de fichier. Le format pour spécifier un répertoire est : MY_DIR:filename.ext. Par défaut, le nom de répertoire MY_DIR est un objet de base de données non sensible à la casse. Le nom du fichier est sensible à la casse.

Vous ne pouvez utiliser que des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère * peut être utilisé comme caractère générique pour plusieurs caractères, et le caractère ? peut être utilisé comme caractère générique pour un seul caractère. Par exemple : MY_DIR:* ou MY_DIR:test?.

Utilisez des guillemets doubles pour spécifier un nom de répertoire sensible à la casse. Par exemple : "my_dir1":*, "my_dir2":Test?

Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple : MY_DIR:''filename.ext. Cela spécifie que le nom du fichier commence par une citation (').

Les fichiers de cet emplacement peuvent être des documents dans des formats tels que PDF, DOC, JSON, XML ou HTML. Voir Formats de document pris en charge.

match_limit 5 (par défaut) Non Spécifie le nombre maximal de résultats à retourner dans une interrogation 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 S.O. Oui Spécifie le nom des données d'identification pour l'accès à un stockage d'objets.
pipeline_name <vector_index_name>$VECPIPELINE Non Spécifie le nom du pipeline de chargement de données d'index vectoriel. Cet attribut est automatiquement défini pour l'index vectoriel, vous ne pouvez pas le spécifier ou le modifier. Le nom du pipeline peut être utilisé pour surveiller le chargement des données d'index vectoriel à l'aide de Surveiller et dépanner les pipelines.
profile_name S.O. Oui Nom du profil d'intelligence artificielle utilisé pour l'intégration des données sources et des invites d'utilisateur.
refresh_rate 1440 minutes (par défaut) Non Intervalle de mise à jour des données dans la banque de vecteurs. L'unité est en minutes.
similarity_threshold 0 (par défaut) Non Définit le niveau minimal de similarité requis pour que deux éléments soient considérés comme une correspondance, utile pour filtrer les résultats dans les algorithmes de correspondance afin d'assurer leur pertinence.
vector_distance_metric Chaîne correspondant à l'une des valeurs spécifiées dans la description. Non

Spécifie le type de calcul de distance utilisé pour comparer des vecteurs dans une base de données, en déterminant comment 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 magasin de vecteurs.
vector_dimension S.O. Non Spécifie le nombre d'éléments dans chaque vecteur dans la banque 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 plongements vectoriels et les données fragmentées.

Exemple : Spécifier l'emplacement de l'URI du stockage d'objets

L'exemple suivant montre comment créer un index vectoriel avec le magasin de vecteurs de l'intelligence artificielle générative pour OCI.

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

Exemple : Spécifier l'emplacement de l'URI du stockage d'objets avec un modèle à caractère générique

Cet exemple spécifie un modèle de caractère générique (*) dans l'URI du stockage d'objets en tant que paramètre location. Il charge tous les fichiers CSV à partir de l'URI du stockage d'objets.

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.myregion.oraclecloud.com/n/my$namespace/b/bucketname/o/year=????/month=??/file*.csv)',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Exemple : Spécifier l'emplacement de l'objet de répertoire avec un modèle de caractères génériques

Cet exemple spécifie des objets de répertoire dans le paramètre location à l'aide d'un modèle à caractère générique. Il charge tous les fichiers CSV dans le répertoire MY_DIR.

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 'MY_DIR:*.csv',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Exemple : Spécifier l'emplacement d'objet de répertoire sensible à la casse avec un modèle à caractère générique

Cet exemple spécifie des objets de répertoire sensibles à la casse dans le paramètre location à l'aide d'un modèle avec caractères génériques. Il charge tous les fichiers CSV dans le répertoire My_Dir.

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 '"My_Dir":*.csv',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Exemple : Spécifier un objet de répertoire sensible à la casse avec tous les fichiers en tant que modèle avec caractère générique

Cet exemple spécifie un objet de répertoire sensible à la casse dans le paramètre location à l'aide d'un caractère générique (*). Il charge tous les fichiers situés dans le répertoire My_Dir.

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 '"My_Dir":*',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Exemple : Spécifiez une correspondance de nom de fichier dans l'objet Directory

Cet exemple spécifie un objet de répertoire et utilise un préfixe de nom de fichier, tel que test, dans le paramètre location. Il charge tous les fichiers du répertoire MY_DIR dont le nom commence par test.

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 'MY_DIR:test*',
                       'object_storage_credential_name'   value 'OS_CRED',
                       'chunk_size'        value 2048,
                       'chunk_overlap'     value 256,
                       'refresh_rate'      value 720)
       );
END;
/

Procédure CREATE_CONVERSATION

Cette procédure vous permet de créer une conversation et de définir automatiquement conversation_id dans la procédure.

Note : Si vous utilisez la procédure DBMS_CLOUD_AI.CREATE_CONVERSATION, vous pouvez ignorer la définition de conversation_id car la procédure la définit automatiquement.

Syntaxe

DBMS_CLOUD_AI.CREATE_CONVERSATION(
  attributes            IN CLOB DEFAULT NULL
);

Paramètres

Paramètre Description
attributes

Attributs pour la conversation au format JSON. Pour plus de détails, voir Attributs CREATE_CONVERSATION.

La valeur par défaut est NULL.

Exemple

Exemple : Créer une conversation

L'exemple suivant montre comment créer une conversation sans personnalisation.

EXEC DBMS_CLOUD_AI.CREATE_CONVERSATION;

Exemple : Créer une conversation avec des attributs personnalisés

L'exemple suivant montre comment créer une conversation avec des paramètres personnalisés tels que title, description, retention_days et conversation_length.

-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
               attributes => '{"title":"Conversation 1",
                               "description":"this is a description",
                               "retention_days":5,
                               "conversation_length":5}')
     AS conversation_id FROM dual;

Fonction CREATE_CONVERSATION

Cette fonction crée une conversation et retourne sa valeur conversation_id qui peut être utilisée dans d'autres procédures ou fonctions telles que DBMS_CLOUD_AI.SET_CONVERSATION_ID et DBMS_CLOUD_AI.GENERATE.

Oracle recommande de définir conversation_id pour activer la conversation. Vous pouvez également définir conversation_id dans la fonction DBMS_CLOUD_AI.GENERATE.

Note : Si vous utilisez la procédure DBMS_CLOUD_AI.CREATE_CONVERSATION, vous pouvez ignorer la définition de conversation_id car la procédure la définit automatiquement.

Syntaxe

DBMS_CLOUD_AI.CREATE_CONVERSATION(
  attributes            IN CLOB DEFAULT NULL
) RETURN VARCHAR2;

Paramètres

Paramètre Description
attributes

Attributs pour la conversation au format JSON. Pour plus de détails, voir Attributs CREATE_CONVERSATION.

La valeur par défaut est NULL.

Exemple

Exemple : Créer une conversation

L'exemple suivant montre comment utiliser la fonction DBMS_CLOUD_AI.CREATE_CONVERSATION pour créer une conversation sans personnalisation.

SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION FROM DUAL;

Résultat :

CREATE_CONVERSATION
------------------------------------
30C9DB6E-EA4D-AFBA-E063-9C6D46644B92

Exemple : Créer une conversation avec des attributs personnalisés

L'exemple suivant montre comment utiliser la fonction DBMS_CLOUD_AI.CREATE_CONVERSATION pour spécifier des attributs tels que title, retention_days et conversation_length.

SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
				attributes => '{"title":"This is a test conversation",
                               "retention_days":7,
                               "conversation_length":20}')
FROM DUAL;

Attributs CREATE_CONVERSATION

Ces attributs gèrent le contexte de conversation, y compris la durée de conservation, le nombre d'invites avec des réponses à stocker ou à afficher, et des métadonnées telles que le titre et la description pour référence. Certains attributs sont facultatifs et ont une valeur par défaut.

Attributs

Nom d'attribut Valeur par défaut Description
title Nouvelle conversation Nom affecté par l'utilisateur pour la conversation. S'il n'est pas fourni, le LLM sera généré lorsque la conversation sera utilisée pour la première fois avec une invite.
description NULL Fournit une description définie par l'utilisateur résumant l'objectif ou le contexte de la conversation. S'il n'est pas fourni, le LLM en génère un lorsque la conversation est utilisée pour la première fois avec une invite et la met à jour de nouveau à la 5e utilisation pour inclure des informations plus précises et pertinentes.
retention_days 7 Indiquez le nombre de jours de conservation de l'historique de conversation. Il est stocké dans la base de données à partir de sa date de création. Si vous omettez la valeur, le système la règle à la valeur par défaut 7. Si vous la réglez à 0, le système conserve la conversation jusqu'à ce que vous la supprimiez manuellement à l'aide de la procédure DBMS_CLOUD_AI.DROP_CONVERSATION ou DBMS_CLOUD.DELETE_ALL_OPERATIONS('CONVERSATION').
conversation_length NULL

Indiquez le nombre d'invites et de réponses récentes à inclure dans l'invite courante. La valeur maximale autorisée est 999. Vous pouvez remplacer cette valeur en spécifiant le paramètre conversation_length dans la fonction DBMS_CLOUD_AI.GENERATE ou en la définissant dans le profil d'intelligence artificielle à l'aide de SELECT AI <ACTION> <PROMPT>. Appliquez les règles de priorité suivantes pour conversation_length :

  1. Valeur de l'argument des attributs dans DBMS_CLOUD_AI.GENERATE
  2. Le jeu de valeurs dans la conversation prend la priorité suivante
  3. La valeur définie dans le profil IA prend la dernière priorité

Si aucun d'entre eux ne spécifie conversation_length, la valeur par défaut est 10.

L'exemple suivant montre comment personnaliser les attributs de conversation dans la procédure DBMS_CLOUD_AI.CREATE_CONVERSATION.

-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
               attributes => '{"title":"Conversation 1",
                               "description":"this is a description",
                               "retention_days":5,
                               "conversation_length":5}')
     AS conversation_id FROM dual;

Procédure UPDATE_CONVERSATION

Cette procédure met à jour une conversation existante avec une valeur spécifiée des attributs de conversation.

Syntaxe

DBMS_CLOUD_AI.UPDATE_CONVERSATION(
    conversation_id    IN VARCHAR2,
    attributes         IN CLOB
);

Paramètres

Paramètre Description
conversation_id

Numéro unique affecté à une conversation.

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

attributes Attributs pour la conversation au format JSON. Pour plus de détails, voir Attributs CREATE_CONVERSATION.

Exemple

EXEC DBMS_CLOUD_AI.UPDATE_CONVERSATION(
conversation_id => '30C9DB6E-EA4E-AFBA-E063-9C6D46644B92',
attributes => '{"retention_days":20,
		"description":"This a sample description",
		"title":"Sample title",
		"conversation_length":20}');

Procédure SET_CONVERSATION_ID

Cette procédure règle la conversation courante à l'ID spécifié. Les invites suivantes incluent les invites de conversation existantes basées sur les attributs configurés de la conversation.

Syntaxe

DBMS_CLOUD_AI.SET_CONVERSATION_ID(
    conversation_id   IN VARCHAR2
);

Paramètres

Paramètre Description
conversation_id

Numéro unique affecté à une conversation dans la session courante.

Ce paramètre est obligatoire.

Exemple

EXEC DBMS_CLOUD_AI.SET_CONVERSATION_ID('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');

Fonction GET_CONVERSATION_ID

Cette fonction retourne l'ID conversation actuellement défini dans la session à l'aide de la procédure DBMS_CLOUD_AI.SET_CONVERSATION_ID ou DBMS_CLOUS_AI.CREATE_CONVERSATION. Si vous n'avez pas défini de conversation, la fonction retourne la valeur NULL. Si vous abandonnez la conversation, le système l'efface également dans la session. Voir la procédure CLEAR_CONVERSATION_ID.

Syntaxe

DBMS_CLOUD_AI.GET_CONVERSATION_ID
RETURN VARCHAR2;

Exemple

Cet exemple montre comment afficher l'ID conversation défini dans la session courante.

SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID;

Résultat :

--------------------------------------------------------------------------------
30C9DB6E-EA4F-AFBA-E063-9C6D46644B92

Procédure CLEAR_CONVERSATION_ID

Cette procédure efface un ID conversation défini dans la session pour désactiver la fonction de conversation pour SELECT AI <ACTION> <PROMPT>. Si vous n'avez pas défini de conversation, le système ne génère aucune erreur.

Syntaxe

DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;

Exemple

Cet exemple illustre l'affichage de l'ID conversation courant dans la session, la suppression de l'ID et la vérification de la modification.

-- A conversation id is set in the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;

GET_CONVERSATION_ID
--------------------------------------------------------------------------------
3A88BFF0-1D7E-B3B8-E063-9C6D46640ECD


-- Clear the conversation id
EXEC DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;

PL/SQL procedure successfully completed.


-- The conversation id is removed from the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;

GET_CONVERSATION_ID
--------------------------------------------------------------------------------

Procédure DELETE_CONVERSATION_PROMPT

La procédure supprime une certaine invite de la conversation.

Syntaxe

DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT(
    conversation_prompt_id  IN VARCHAR2,
    force                   IN BOOLEAN DEFAULT FALSE
);

Paramètres

Paramètre Description
conversation_prompt_id

Numéro unique affecté à une invite dans une conversation. Vous pouvez trouver l'ID invite en interrogeant la vue DBA/USER_CLOUD_AI_CONVERSATION_PROMPTS. Voir Vues DBMS_CLOUD_AI.

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

force

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

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

Exemple

EXEC DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT('30C9DB6E-EA61-AFBA-E063-9C6D46644B92');

Procédure DROP_CONVERSATION

La procédure supprime la conversation et toutes les invites associées ainsi que les réponses associées. Une fois supprimé, conversation_id devient non valide. Si une conversation est supprimée alors qu'elle est définie dans la session, elle est effacée automatiquement.

Syntaxe

DBMS_CLOUD_AI.DROP_CONVERSATION(
    conversation_id  IN VARCHAR2,
    force            IN BOOLEAN  DEFAULT FALSE
);

Paramètres

Paramètre Description
conversation_id

Numéro unique affecté à une conversation.

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

force

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

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

Exemple

EXEC DBMS_CLOUD_AI.DROP_CONVERSATION('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');

Résultat :

PL/SQL procedure successfully completed.

Procédure de retour d'information

Cette procédure vous permet de fournir une rétroaction à Select AI afin d'améliorer potentiellement la précision de génération d'interrogation. Vous avez la possibilité de fournir une rétroaction positive ou négative, ainsi que des commentaires textuels ou des interrogations SQL révisées.

Syntaxe

DBMS_CLOUD_AI.FEEDBACK(
      profile_name      IN  VARCHAR2,
      sql_id            IN  DBMS_ID,
      feedback_type     IN  VARCHAR2 DEFAULT NULL,
      response          IN  CLOB DEFAULT NULL,
      feedback_content  IN  CLOB DEFAULT NULL,
      operation         IN  VARCHAR2 DEFAULT 'ADD'
  );

DBMS_CLOUD_AI.FEEDBACK(
      profile_name      IN  VARCHAR2,
      sql_text          IN  CLOB,
      feedback_type     IN  VARCHAR2 DEFAULT NULL,
      response          IN  CLOB DEFAULT NULL,
      feedback_content  IN  CLOB DEFAULT NULL,
      operation         IN  VARCHAR2 DEFAULT 'ADD'
  );

Paramètres

Paramètre Description
profile_name

Indique le profil d'intelligence artificielle à utiliser. Si vous n'indiquez pas profile_name, Select AI utilise le profil par défaut défini dans la session.

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

sql_id

Identifie l'interrogation SQL. Un sql_id ne peut avoir qu'une seule entrée de rétroaction.

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

sql_text

Contient le texte intégral de l'interrogation SQL.

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

feedback_type

Indique le type de rétroaction. Les valeurs disponibles sont les suivantes :

  • positive : Acceptez le code SQL généré.
  • negative : Fournissez les améliorations d'interrogation SQL nécessaires en identifiant les erreurs dans l'interrogation.

Note : La procédure DBMS_CLOUD_AI.FEEDBACK vous permet de spécifier sql_id ou sql_text. Par conséquent, feedback_type est nécessaire alors que si vous utilisez l'action feedback, le LLM détermine ou interprète dynamiquement le type de rétroaction.

Il s'agit d'un paramètre obligatoire lorsque operation est add (Ajouter).

response

Représente le résultat d'interrogation SQL correct attendu par l'utilisateur.

Il s'agit d'un paramètre obligatoire lorsque operation est add (Ajouter) et feedback_type est négatif.

feedback_content Saisit la rétroaction en langue naturelle de l'utilisateur. Vous avez la possibilité d'utiliser ce paramètre avec response.
operation

Indique l'opération à effectuer. Les valeurs acceptées sont les suivantes :

  • add (par défaut) : Ajoutez votre rétroaction en spécifiant feedback_type.
  • delete : Supprimez votre rétroaction en fournissant sql_id

Exemple

Exemple : Fournir une rétroaction pour l'énoncé SQL généré à l'aide d'opérations d'ajout ou de suppression

L'exemple suivant illustre l'utilisation de la procédure DBMS_CLOUD_AI.FEEDBACK pour accepter ou améliorer le code SQL généré en spécifiant les paramètres de la procédure.

EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
                                   sql_id=> '852w8u83gktc1',
                                   feedback_type=>'positive',
                                   operation=>'add');
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
                                   sql_text=> 'select ai showsql how many movies',
                                   feedback_type=> 'negative',
                                   response=>'SELECT SUM(1) FROM "ADB_USER"."MOVIES"',
                                   feedback_content=>'Use SUM instead of COUNT');
EXEC DBMS_CLOUD_AI.FEEDBACK(profile_name=>'OCI_FEEDBACK1',
                                   sql_id=> '852w8u83gktc1',
                                   operation=>'delete');

Index vectoriel pour FEEDBACK

Sélectionnez AI pour créer un index vectoriel par défaut nommé <*profile_name*>_FEEDBACK_VECINDEX avec les attributs par défaut lorsque vous utilisez la fonction de rétroaction pour la première fois.

Vous pouvez modifier ses attributs tels que similarity_threshold et match_limit à l'aide de la procédure DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX. Cet index permet d'affiner les énoncés SQL générés ultérieurement en fonction de la rétroaction fournie. Cette table est supprimée lorsque le profil IA associé est supprimé. Vous pouvez également supprimer <profile_name>_FEEDBACK_VECINDEX. Lorsque vous le faites, Select AI n'utilise plus de rétroaction comme conseils pour les actions runsql, showsql et explainsql. Toutefois, si vous soumettez une nouvelle rétroaction à l'aide de la fonction Sélectionner une rétroaction IA, Select AI crée automatiquement un nouvel index de vecteur de rétroaction

Note : La valeur par défaut de match_limit pour feedback est 3.

Nom de la table vectorielle

Le tableau <profile_name>_FEEDBACK_VECINDEX$VECTAB contient des représentations vectorielles (intégrations) des commentaires des utilisateurs ainsi que d'autres paramètres, que Select AI utilise pour améliorer la génération SQL au fil du temps.

Paramètres

Colonne Description
attributes Inclut les attributs d'objet JSON conformément à la procédure FEEDBACK.
content Contient l'invite de l'utilisateur.
embedding Contient des représentations vectorielles (embeddings) de l'invite utilisateur.

Exemple

L'exemple suivant illustre l'utilisation de la table d'index vectoriels générée automatiquement pour interroger et fournir une rétroaction.

SQL> select content, attributes from OCI_FEEDBACK1_FEEDBACK_VECINDEX$VECTAB where JSON_VALUE(attributes, '$.sql_text') = 'select ai showsql how many movies';
CONTENT
----------------------------------------------------------------------------------------------------
how many movies
ATTRIBUTES
----------------------------------------------------------------------------------------------------

{"response":"SELECT SUM(1) FROM "ADB_USER"."MOVIES"","feedback_type":"negative","sql_id":null,"sql_text":"select ai showsql how many movies","feedback_content":null}
DBMS_CLOUD_AI.feedback Procedure(Positive Feedback)

Fonction SUMMARIZE

Cette fonction résume votre contenu en fonction des options de personnalisation que vous fournissez en tant que paramètres.

Syntaxe

DBMS_CLOUD_AI.SUMMARIZE(
  content         IN  CLOB     DEFAULT NULL,
  credential_name IN  VARCHAR2 DEFAULT NULL,
  location_uri    IN  VARCHAR2 DEFAULT NULL,
  profile_name    IN  VARCHAR2 DEFAULT NULL,
  user_prompt     IN  CLOB     DEFAULT NULL,
  params          IN  CLOB     DEFAULT NULL
) RETURN CLOB;

Paramètres

Paramètre Description
content

Spécifie le texte à résumer. content ou location_uri doivent être spécifiés.

Ce paramètre n'est pas obligatoire.

credential_name

Identifie l'objet de données d'identification utilisé pour l'authentification auprès du magasin d'objets. Vous devez créer ces données d'identification à l'aide de `DBMS_CLOUD.CREATE_CREDENTIAL`.

Note : Utilisez ce paramètre uniquement lorsque vous fournissez `location_uri`.

location_uri

Fournit l'URI où le texte est stocké ou le chemin d'accès à un fichier local. content ou location_uri doivent être spécifiés.

Par exemple :

Stockage d'objets : https://objectstorage.ca-toronto-1.oraclecloud.com/n/namespace-string/b/bucketname/o/data_folder/summary/test_file.txt

Fichier local : summary_gobject:test_file.txt

profile_name

Indique le profil d'intelligence artificielle à utiliser. Si vous n'indiquez pas profile_name, Select AI utilise le profil par défaut défini dans la session. Si aucun profil par défaut n'est défini, l'erreur suivante s'affiche : ORA-20046 : le profil IA n'est pas activé dans la session.

La valeur par défaut est NULL.

user_prompt

Fournit une invite en langage naturel pour guider ou personnaliser le sommaire. Vous pouvez inclure des instructions supplémentaires au-delà des paramètres sommaires.

Par exemple, le résumé devrait commencer par ''Le résumé de l'article est : '''

Ce paramètre n'est pas obligatoire.

params Sert à définir les paramètres de regroupement. Voir Paramètres SUMMARIZE.

Exemple

Voir Exemple : Sélectionner le sommaire de l'intelligence artificielle à explorer.

Paramètres SUMMARIZE

Ces attributs permettent de générer un sommaire avec des paramètres personnalisés. Certains attributs sont facultatifs et ont une valeur par défaut.

Attributs

Nom d'attribut Valeur par défaut Description
min_words 0

Spécifie le nombre minimal approximatif de mots que le sommaire généré doit contenir.

Note : Ce paramètre sert de directive plutôt que de limite stricte : la longueur réelle du sommaire peut varier en fonction du contenu fourni et de l'interprétation du modèle.

max_words 200

Spécifie le nombre maximal approximatif de mots que le sommaire généré doit contenir.

Note : Ce paramètre sert de directive plutôt que de limite stricte. La longueur réelle du sommaire peut varier en fonction du contenu fourni et de l'interprétation du modèle.

summary_style Paragraphe

Spécifie le style de format pour le sommaire. Les options de format sommaire disponibles sont les suivantes :

  • paragraph : Le résumé est présenté dans un ou plusieurs paragraphes.
  • list : Le sommaire est une liste des points clés du texte.

chunk_processing_method map_reduce

Lorsque le texte dépasse la limite de jeton que le LLM peut traiter, il doit être fractionné en fragments gérables. Ce paramètre vous permet de choisir la méthode de traitement de ces fragments. Les options suivantes sont offertes :

  • iterative_refinement
  • map_reduce

Pour plus de détails, voir Sélectionner une terminologie relative à l'IA.

extractiveness_level low Détermine dans quelle mesure le résumé suit le libellé initial de l'entrée. Il contrôle le degré d'extraction du modèle par rapport à sa reformulation. Les options sont les suivantes :
  • High : Le résumé reste proche du phrasé d'origine, en réutilisant les phrases et expressions dans la mesure du possible.
  • Medium : Mélange équilibré d'extraction et de paraphrasage.
  • Low : Permet une plus grande liberté de reformulation, de restructuration ou de simplification de l'entrée, en se concentrant sur la signification plutôt que sur la formulation exacte.

Note : Ce paramètre sert de guide pour le comportement de récapitulation du modèle, il n'applique pas de règle stricte. Le style et le libellé réels du résumé peuvent varier en fonction du contenu d'entrée et des décisions du modèle.

Fonction TRANSLATE

Cette fonction vous permet de traduire votre texte dans le fichier target_language spécifié.

Vous pouvez fournir les paramètres source_language et target_language dans la fonction ou ils peuvent être extraits du profil d'intelligence artificielle de l'utilisateur. Si votre profil d'IA n'inclut pas d'attribut source_language, le fournisseur d'IA générative détecte automatiquement la langue d'entrée. Si l'attribut target_language est manquant, Select AI retourne une erreur.

Syntaxe

DBMS_CLOUD_AI.TRANSLATE(
   profile_name      IN VARCHAR2,
   text              IN CLOB,
   source_language   IN VARCHAR2 DEFAULT NULL,
   target_language   IN VARCHAR2 DEFAULT NULL
) RETURN CLOB;

Paramètres

Paramètre Description
profile_name

Indique le profil d'intelligence artificielle à utiliser.

Ce paramètre n'est pas obligatoire.

text

Spécifie le texte à traduire.

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

source_language Langue du texte d'entrée
target_language Langue dans laquelle le texte est traduit.

Exemple

Voir Exemple : Sélectionner la traduction de l'intelligence artificielle à explorer.

Contenu connexe

Utiliser la fonction Select AI pour générer des instructions SQL à partir d'invites en langage naturel