Sélectionner une IA avec génération augmentée de récupération (RAG)

Sélectionnez AI avec RAG pour augmenter votre invite de langage naturel en récupérant le contenu de votre magasin de vecteurs spécifié à l'aide de la recherche de similarité sémantique. Cela réduit les hallucinations en utilisant votre contenu spécifique et à jour et fournit des réponses en langage naturel plus pertinentes à vos invites.

Sélectionnez IA pour automatiser le traitement de génération augmentée de récupération (RAG). Cette technique extrait les données des sources d'entreprise à l'aide de la recherche vectorielle AI et augmente les invites utilisateur pour le modèle de langage LLM spécifié. En exploitant les informations des banques de données d'entreprise, la RAG réduit les hallucinations et génère des réponses fondées.

RAG utilise la recherche vectorielle AI sur un index vectoriel pour trouver des données sémantiques similaires pour la question spécifiée. La banque de vecteurs traite les incorporations de vecteurs, qui sont des représentations mathématiques de divers points de données tels que le texte, les images et l'audio. Ces incorporations capturent la signification des données, permettant un traitement et une analyse efficaces. Pour plus de détails sur les incorporations de vecteurs et la recherche de vecteurs AI, reportez-vous à Présentation de AI Vector Search.

Select AI s'intègre à la recherche vectorielle AI disponible dans Oracle Autonomous AI Database 26ai pour la recherche de similarité à l'aide d'intégrations vectorielles.

Rubriques

Avantages de Select AI RAG

Simplifiez les requêtes, améliorez la précision des réponses avec les données actuelles et gagnez en transparence en examinant les sources utilisées par le LLM.

Select AI RAG offre les avantages suivants :
  • Simplifiez l'interrogation des données et améliorez la précision des réponses : permettez aux utilisateurs d'interroger les données d'entreprise en langage naturel et fournissez aux LLM un contexte détaillé à partir des données d'entreprise pour générer des réponses plus précises et pertinentes, réduisant ainsi les instances d'hallucinations des LLM.

  • Informations à jour : fournissez aux LLM l'accès aux informations d'entreprise actuelles à l'aide de banques de vecteurs, ce qui élimine le besoin d'affiner les LLM entraînés sur des ensembles de données statiques, qui sont coûteux et chronophages.

  • Intégration transparente : intégration à Oracle AI Vector Search pour une gestion rationalisée des données et des performances améliorées.

  • Orchestration automatisée des données : automatisez les étapes d'orchestration avec un pipeline d'index vectoriel entièrement géré, garantissant un traitement efficace des nouvelles données.

  • Résultats contextuels compréhensibles : permet d'accéder aux sources utilisées par le LLM et de les extraire des magasins de vecteurs, garantissant ainsi la transparence et la confiance dans les résultats. Afficher et extraire des données au format texte en langage naturel ou JSON pour faciliter l'intégration et le développement d'applications.

Construisez votre magasin de vecteurs

Sélectionnez IA pour automatiser la création et l'alimentation de la banque de vecteurs en convertissant les documents d'entrée (par exemple, PDF, DOC, JSON, XML ou HTML) de votre banque d'objets en texte brut. Oracle Text prend en charge environ 150 types de fichier. Pour obtenir la liste complète de tous les formats de document pris en charge, reportez-vous à Formats de document pris en charge.

Sélectionnez AI traite automatiquement les documents pour les blocs, génère des incorporations, les stocke dans la banque de vecteurs spécifiée et met à jour l'index vectoriel à mesure que de nouvelles données arrivent.

Voici comment l'entrée d'Object Storage est utilisée avec Select AI RAG :

  1. Entrée : les données sont initialement stockées dans Object Storage.
  2. Oracle Autonomous Database extrait les données d'entrée ou le document, les fragmente et les envoie à un modèle d'intégration.
  3. Le modèle d'intégration traite les données de bloc et renvoie des incorporations vectorielles.
  4. Les incorporations vectorielles sont ensuite stockées dans un magasin de vecteurs pour une utilisation avec la RAG. A mesure que le contenu est ajouté, l'index vectoriel est automatiquement mis à jour.

La RAG extrait les informations pertinentes de la base de données Enterprise pour répondre à la question d'un utilisateur. Ces informations sont fournies au modèle de langage volumineux spécifié avec l'invite utilisateur. Select AI utilise ces informations d'entreprise supplémentaires pour améliorer l'invite, améliorant ainsi la réponse du LLM. La RAG peut améliorer la qualité des réponses grâce aux informations d'entreprise actualisées de la banque de vecteurs.



Sélectionnez AI implémente la RAG comme suit :
  1. Entrée : l'utilisateur pose une question (spécifie une invite) à l'aide de l'action Sélectionner AI narrate.

  2. Sélectionnez AI génère des incorporations vectorielles de l'invite à l'aide du modèle d'intégration spécifié dans le profil AI.

  3. L'index de recherche vectorielle utilise l'intégration vectorielle de la question pour trouver le contenu correspondant à partir des données d'entreprise du client (recherche de la banque de vecteurs) qui ont été indexées.

  4. La recherche vectorielle renvoie les K premiers textes similaires à l'entrée de votre instance Autonomous AI Database.
  5. Base de données d'IA autonome envoie ensuite ces résultats de requête K principaux avec une question utilisateur au LLM.
  6. Le LLM renvoie sa réponse à votre instance Autonomous AI Database.
  7. Base de données AI autonome Select AI fournit la réponse à l'utilisateur.

Utiliser DBMS_CLOUD_AI pour créer et gérer des index vectoriels

Utilisez le package DBMS_CLOUD_AI pour créer et gérer des index vectoriels et configurer des paramètres JSON de base de données vectorielle.

Une fois que vous avez créé des informations d'identification et fourni un accès réseau à la base de données vectorielle et au fournisseur d'IA, votre instance de base de données d'IA autonome utilise des profils d'IA pour configurer l'accès aux LLM. Reportez-vous à Exemple : configuration et utilisation de Select AI avec RAG pour obtenir un exemple complet de sa configuration et de son utilisation dans les instructions Select AI.

Remarques :

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 donnée. Cela désactive en effet l'action narrate pour la RAG.

Vous pouvez configurer des profils AI pour les fournisseurs répertoriés dans via le package DBMS_CLOUD_AI.

Rubriques connexes :

Utiliser des modèles de transformateur dans la base de données

Select AI RAG vous permet d'utiliser des modèles de transformateur ONNX préentraînés qui sont importés dans votre base de données dans l'instance Oracle Database 23ai pour générer des vecteurs d'intégration à partir de blocs de document et d'invites utilisateur.

Remarques :

Vous devez importer un modèle de transformateur au format ONNX préentraîné dans l'instance Oracle Database 23ai pour utiliser la RAG Select AI avec le modèle de transformateur importé dans la base de données. Vous pouvez également utiliser d'autres modèles de transformateur provenant de fournisseurs d'IA pris en charge.

Reportez-vous à Exemple : sélection d'une IA avec des modèles de transformateur dans la base de données pour explorer la fonctionnalité.

Exemple : configuration et utilisation de Select AI avec RAG

Cet exemple vous guide tout au long de la configuration des informations d'identification, de l'accès réseau et de la création d'un index vectoriel pour l'intégration des services cloud de banque de vecteurs OCI Generative AI avec OpenAI à l'aide d'Oracle Autonomous AI Database.

La configuration se termine par la création d'un profil d'IA qui utilise l'index vectoriel pour améliorer les réponses LLM. Enfin, cet exemple utilise l'action Sélectionner AI narrate, qui renvoie une réponse qui a été améliorée à l'aide des informations de la base de données vectorielle spécifiée.

L'exemple suivant montre comment créer et interroger un index vectoriel dans Oracle Database 23ai.

--Grants EXECUTE privilege to ADB_USER
GRANT EXECUTE on DBMS_CLOUD_AI to ADB_USER; 

--Grants EXECUTE privilege DBMS_CLOUD_PIPELINE to ADB_USER
GRANT EXECUTE on DBMS_CLOUD_PIPELINE to ADB_USER;

-- Create the OpenAI credential
BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'OPENAI_CRED',
        username => 'OPENAI_CRED',
        password => '<your_api_key>'
      );
END;
/

PL/SQL procedure successfully completed.

 -- Append the OpenAI endpoint
BEGIN
        DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
             host => 'api.openai.com',
             ace  => xs$ace_type(privilege_list => xs$name_list('http'),
                     principal_name => 'ADB_USER',
                     principal_type => xs_acl.ptype_db)
       );
END;
/

PL/SQL procedure successfully completed.

 
-- Create the object store credential
BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'OCI_CRED',
        username => '<your_username>',
        password => '<OCI_profile_password>'
      );
END;
/

PL/SQL procedure successfully completed.

 -- Create the profile with the vector index.

BEGIN
      DBMS_CLOUD_AI.CREATE_PROFILE(
          profile_name =>'OPENAI_ORACLE',
          attributes   =>'{"provider": "openai",
            "credential_name": "OPENAI_CRED",
            "vector_index_name": "MY_INDEX",
            "temperature": 0.2,
            "max_tokens": 4096,
            "model": "gpt-3.5-turbo-1106"
          }');
END;
/

PL/SQL procedure successfully completed.

-- Set profile
EXEC DBMS_CLOUD_AI.SET_PROFILE('OPENAI_ORACLE');

PL/SQL procedure successfully completed.                                            
 
-- create a vector index with the vector store name, object store location and
-- object store credential
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": 1536,
                          "vector_distance_metric": "cosine",
                          "chunk_overlap":128,
                          "chunk_size":1024
      }');
END;
/
PL/SQL procedure successfully completed.  
                                                                                
-- After the vector index is populated, we can now query the index.




-- Set profile
EXEC DBMS_CLOUD_AI.SET_PROFILE('OPENAI_ORACLE');

PL/SQL procedure successfully completed.

-- Select AI answers the question with the knowledge available in the vector database.

set pages 1000
set linesize 150
SELECT AI narrate how can I deploy an oracle machine learning model;
RESPONSE                                                  
To deploy an Oracle Machine Learning model, you would first build your model within the Oracle database. Once your in-database models are built, they become immediately available for use, for instance, through a SQL query using the prediction operators built into the SQL language. 

The model scoring, like model building, occurs directly in the database, eliminating the need for a separate engine or environment within which the model and corresponding algorithm code operate. You can also use models from a different schema (user account) if the appropriate permissions are in place.

Sources:
  - Manage-your-models-with-Oracle-Machine-Learning-on-Autonomous-Database.txt (https://objectstorage.../v1/my_namespace/my_bucket/my_data_folder/Manage-your-models-with-Oracle-Machine-Learning-on-Autonomous-Database.txt)
  - Develop-and-deploy-machine-learning-models-using-Oracle-Autonomous-Database-Machine-Learning-and-APEX.txt (https://objectstorage.../v1/my_namespace/my_bucket/my_data_folder/Develop-and-deploy-machine-learning-models-using-Oracle-Autonomous-Database-Machine-Learning-and-APEX.txt)

Exemple : Sélectionner une IA avec des modèles de transformateur dans la base de données

Cet exemple montre comment importer un modèle de transformateur préentraîné stocké dans le stockage d'objets Oracle dans votre instance Oracle Database 23ai, puis utiliser le modèle importé dans la base de données dans le profil Select AI pour générer des incorporations vectorielles pour les blocs de document et les invites utilisateur.

Pour utiliser des modèles de transformateur dans la base de données dans votre profil Select AI, assurez-vous de disposer des éléments suivants :
  • votre modèle préentraîné importé dans votre instance Oracle Database 23ai.

  • en option, accès à Oracle Object Storage.

Import d'un modèle de transformateur préentraîné dans Oracle Database 23ai à partir d'Oracle Object Storage

Passez en revue les étapes décrites dans Importer des modèles préentraînés au format ONNX pour la génération de vecteurs dans la base de données et dans le blog Modèle de génération d'intégration prédéfini pour Oracle AI Database 26ai pour importer un modèle de transformateur préentraîné dans votre base de données.

L'exemple suivant montre comment importer un modèle de transformateur prédéfini à partir d'Oracle Object Storage dans votre base de données, puis afficher le modèle importé.

- Create a Directory object, or use an existing directory object
CREATE OR REPLACE DIRECTORY ONNX_DIR AS 'onnx_model';
 
-- Object storage bucket
VAR location_uri VARCHAR2(4000);
EXEC :location_uri := 'https://adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com/p/eLddQappgBJ7jNi6Guz9m9LOtYe2u8LWY19GfgU8flFK4N9YgP4kTlrE9Px3pE12/n/adwc4pm/b/OML-Resources/o/';
 
-- Model file name
VAR file_name VARCHAR2(512);
EXEC :file_name := 'all_MiniLM_L12_v2.onnx';
 
-- Download ONNX model from object storage into the directory object
BEGIN
  DBMS_CLOUD.GET_OBJECT(                           
        credential_name => NULL,
        directory_name  => 'ONNX_DIR',
        object_uri      => :location_uri || :file_name);
END;
/
 
-- Load the ONNX model into the database
BEGIN
  DBMS_VECTOR.LOAD_ONNX_MODEL(
        directory  => 'ONNX_DIR',
        file_name  => :file_name,
        model_name => 'MY_ONNX_MODEL');
END;
/
 
-- Verify
SELECT model_name, algorithm, mining_function
FROM user_mining_models
WHERE  model_name='MY_ONNX_MODEL';
Utiliser des modèles de transformateur dans la base de données dans certains profils AI

Ces exemples illustrent comment utiliser des modèles de transformateur dans la base de données au sein d'un profil Select AI. Un profil est configuré uniquement pour générer des incorporations vectorielles, tandis que l'autre prend en charge les actions Select AI et la création d'index vectoriels.

Reportez-vous à la section Requirements to Configure DBMS_CLOUD_AI Package pour terminer les prérequis.

Voici un exemple de génération d'intégrations vectorielles uniquement :

BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
     profile_name => 'EMBEDDING_PROFILE',
     attributes   => '{"provider" : "database",
                       "embedding_model": "MY_ONNX_MODEL"}'
  );
END;
/

Voici un exemple d'actions générales Select AI et de génération d'index vectoriel où vous pouvez spécifier un fournisseur d'IA pris en charge. Cet exemple utilise le profil et les informations d'identification OCI Gen AI. Pour obtenir une liste des fournisseurs pris en charge, reportez-vous à . Toutefois, si vous voulez utiliser un modèle de transformateur dans la base de données pour générer des incorporations vectorielles, utilisez "database: <MY_ONNX_MODEL>" dans l'attribut embedding_model :

BEGIN                                                                        
  DBMS_CLOUD.CREATE_CREDENTIAL(                                              
    credential_name => 'GENAI_CRED',                                         
    user_ocid       => 'ocid1.user.oc1..aaaa...',
    tenancy_ocid    => 'ocid1.tenancy.oc1..aaaa...',
    private_key     => '<your_api_key>',
    fingerprint     => '<your_fingerprint>'     
  );                                                                         
END;                                                                        
/

BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
     profile_name => 'OCI_GENAI',
     attributes   => '{"provider": "oci",
                       "model": "meta.llama-3.3-70b-instruct",
                       "credential_name": "GENAI_CRED",
                       "vector_index_name": "MY_INDEX",
                       "embedding_model": "database: MY_ONNX_MODEL"}'
  );
END;
/
Utiliser Select AI avec un modèle de transformateur dans la base de données à partir d'un autre schéma

Cet exemple montre comment utiliser Select AI avec un modèle de transformateur dans la base de données si un autre propriétaire de schéma possède le modèle. Indiquez schema_name.object_name comme nom qualifié complet du modèle dans l'attribut embedding_model. Si l'utilisateur en cours est le propriétaire du schéma ou le propriétaire du modèle, vous pouvez omettre le nom du schéma.

Veillez à disposer des privilèges suivants si un autre propriétaire de schéma possède le modèle :
  • Privilège système CREATE ANY MINING MODEL
  • Privilège système SELECT ANY MINING MODEL
  • Privilège objet SELECT MINING MODEL sur le modèle spécifique

Pour accorder un privilège système, vous devez disposer du privilège système ADMIN OPTION ou du privilège système GRANT ANY PRIVILEGE.

Pour vérifier les privilèges, reportez-vous à Privilèges système pour Oracle Machine Learning for SQL.

Les instructions suivantes permettent à ADB_USER1 de noter les données et de visualiser les détails du modèle dans n'importe quel schéma tant que l'accès SELECT aux données a été accordé. Toutefois, ADB_USER1 peut uniquement créer des modèles dans le schéma ADB_USER1.

GRANT CREATE MINING MODEL TO ADB_USER1;
GRANT SELECT ANY MINING MODEL TO ADB_USER1;
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
     profile_name => 'OCI_GENAI',
     attributes   => '{"provider": "oci",
                       "credential_name": "GENAI_CRED",
                       "vector_index_name": "MY_INDEX",
                       "embedding_model": "database: ADB_USER1.MY_ONNX_MODEL"}'
  );
END;
/

L'exemple suivant montre comment indiquer un nom d'objet de modèle sensible à la casse :

BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
     profile_name => 'OCI_GENAI',
     attributes   => '{"provider": "oci",
                       "credential_name": "GENAI_CRED",
                       "model": "meta.llama-3.3-70b-instruct",
                       "vector_index_name": "MY_INDEX",
                       "embedding_model": "database: \"adb_user1\".\"my_model\""}'
  );
END;
/
Exemples de bout en bout avec différents fournisseurs d'IA

Ces exemples illustrent les étapes de bout en bout pour l'utilisation du modèle de transformateur dans la base de données avec Select AI RAG. Un profil utilise database en tant que provider créé exclusivement pour générer des vecteurs d'intégration, tandis que l'autre utilise oci en tant que provider créé pour les actions Select AI et l'index vectoriel.

Reportez-vous à la section Requirements to Configure DBMS_CLOUD_AI Package pour terminer les prérequis.

--Grant create any directory privilege to the user
GRANT CREATE ANY DIRECTORY to ADB_USER;

- Create a Directory object, or use an existing directory object
CREATE OR REPLACE DIRECTORY ONNX_DIR AS 'onnx_model';
 
-- Object storage bucket
VAR location_uri VARCHAR2(4000);
EXEC :location_uri := 'https://adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com/p/eLddQappgBJ7jNi6Guz9m9LOtYe2u8LWY19GfgU8flFK4N9YgP4kTlrE9Px3pE12/n/adwc4pm/b/OML-Resources/o/';
 
-- Model file name
VAR file_name VARCHAR2(512);
EXEC :file_name := 'all_MiniLM_L12_v2.onnx';
 
-- Download ONNX model from object storage into the directory object
BEGIN
  DBMS_CLOUD.GET_OBJECT(                           
        credential_name => NULL,
        directory_name  => 'ONNX_DIR',
        object_uri      => :location_uri || :file_name);
END;
/
 
-- Load the ONNX model into the database
BEGIN
  DBMS_VECTOR.LOAD_ONNX_MODEL(
        directory  => 'ONNX_DIR',
        file_name  => :file_name,
        model_name => 'MY_ONNX_MODEL');
END;
/
 
-- Verify
SELECT model_name, algorithm, mining_function
FROM user_mining_models
WHERE  model_name='MY_ONNX_MODEL';


--Administrator grants EXECUTE privilege to ADB_USER
GRANT EXECUTE on DBMS_CLOUD_AI to ADB_USER; 

--Administrator grants EXECUTE privilege DBMS_CLOUD_PIPELINE to ADB_USER
GRANT EXECUTE on DBMS_CLOUD_PIPELINE to ADB_USER;
 
-- Create the object store credential
BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'OCI_CRED',
        username => '<your_username>',
        password => '<OCI_profile_password>'
      );
END;
/

PL/SQL procedure successfully completed.

 -- Create the profile with Oracle Database.

BEGIN
      DBMS_CLOUD_AI.CREATE_PROFILE(
          profile_name =>'EMBEDDING_PROFILE',
          attributes   =>'{"provider": "database",
            "embedding_model": "MY_ONNX_MODEL"
          }');
END;
/

PL/SQL procedure successfully completed.

-- Set profile
EXEC DBMS_CLOUD_AI.SET_PROFILE('EMBEDDING_PROFILE');

PL/SQL procedure successfully completed.                                            
 

Cet exemple utilise oci en tant que provider.

--Grant create any directory privilege to the user
GRANT CREATE ANY DIRECTORY to ADB_USER;

- Create a Directory object, or use an existing directory object
CREATE OR REPLACE DIRECTORY ONNX_DIR AS 'onnx_model';
 
-- Object storage bucket
VAR location_uri VARCHAR2(4000);
EXEC :location_uri := 'https://adwc4pm.objectstorage.us-ashburn-1.oci.customer-oci.com/p/eLddQappgBJ7jNi6Guz9m9LOtYe2u8LWY19GfgU8flFK4N9YgP4kTlrE9Px3pE12/n/adwc4pm/b/OML-Resources/o/';
 
-- Model file name
VAR file_name VARCHAR2(512);
EXEC :file_name := 'all_MiniLM_L12_v2.onnx';
 
-- Download ONNX model from object storage into the directory object
BEGIN
  DBMS_CLOUD.GET_OBJECT(                           
        credential_name => NULL,
        directory_name  => 'ONNX_DIR',
        object_uri      => :location_uri || :file_name);
END;
/
 
-- Load the ONNX model into the database
BEGIN
  DBMS_VECTOR.LOAD_ONNX_MODEL(
        directory  => 'ONNX_DIR',
        file_name  => :file_name,
        model_name => 'MY_ONNX_MODEL');
END;
/
 
-- Verify
SELECT model_name, algorithm, mining_function
FROM user_mining_models
WHERE  model_name='MY_ONNX_MODEL';


–-Administrator Grants EXECUTE privilege to ADB_USER
GRANT EXECUTE on DBMS_CLOUD_AI to ADB_USER; 

--Administrator Grants EXECUTE privilege DBMS_CLOUD_PIPELINE to ADB_USER
GRANT EXECUTE on DBMS_CLOUD_PIPELINE to ADB_USER;

-- Create the object store credential
BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'OCI_CRED',
        username => '<your_username>',
        password => '<OCI_profile_password>'
      );
END;
/
--Create GenAI credentials
BEGIN                                                                        
  DBMS_CLOUD.CREATE_CREDENTIAL(                                              
    credential_name => 'GENAI_CRED',                                         
    user_ocid       => 'ocid1.user.oc1..aaaa...',
    tenancy_ocid    => 'ocid1.tenancy.oc1..aaaa...',
    private_key     => '<your_api_key>',
    fingerprint     => '<your_fingerprint>'     
  );                                                                         
END;                                                                        
/
--Create OCI AI profile
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
     profile_name => 'OCI_GENAI',
     attributes   => '{"provider": "oci",
                       "model": "meta.llama-3.3-70b-instruct",
                       "credential_name": "GENAI_CRED",
                       "vector_index_name": "MY_INDEX",
                       "embedding_model": "database: MY_ONNX_MODEL"}'
  );
END;
/

-- Set profile
EXEC DBMS_CLOUD_AI.SET_PROFILE('OCI_GENAI');

PL/SQL procedure successfully completed.                                            
 
-- create a vector index with the vector store name, object store location and
-- object store credential
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": "OCI_GENAI",
                          "vector_dimension": 384,
                          "vector_distance_metric": "cosine",
                          "chunk_overlap":128,
                          "chunk_size":1024
      }');
END;
/
PL/SQL procedure successfully completed.  
                                                                               

-- Set profile
EXEC DBMS_CLOUD_AI.SET_PROFILE('OCI_GENAI');

PL/SQL procedure successfully completed.

-- Select AI answers the question with the knowledge available in the vector database.

set pages 1000
set linesize 150
SELECT AI narrate how can I deploy an oracle machine learning model;
RESPONSE                                                  
To deploy an Oracle Machine Learning model, you would first build your model within the Oracle database. Once your in-database models are 
built, they become immediately available for use, for instance, through a SQL query using the prediction operators built into the SQL 
language. 

The model scoring, like model building, occurs directly in the database, eliminating the need for a separate engine or environment within 
which the model and corresponding algorithm code operate. You can also use models from a different schema (user account) if the appropriate 
permissions are in place.

Sources:
  - Manage-your-models-with-Oracle-Machine-Learning-on-Autonomous-Database.txt (https://objectstorage.../v1/my_namespace/my_bucket/
my_data_folder/Manage-your-models-with-Oracle-Machine-Learning-on-Autonomous-Database.txt)
  - Develop-and-deploy-machine-learning-models-using-Oracle-Autonomous-Database-Machine-Learning-and-APEX.txt 
(https://objectstorage.../v1/my_namespace/my_bucket/my_data_folder/Develop-and-deploy-machine-learning-models-using-Oracle-Autonomous-
Database-Machine-Learning-and-APEX.txt)