Sélectionner l'IA avec génération augmentée par extraction (RAG)

Sélectionnez l'IA avec RAG pour augmenter votre invite de langage naturel en extrayant 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 AI automatise le processus RAG (Retrieval Augmented Generation). Cette technique extrait des données de sources d'entreprise à l'aide de la recherche vectorielle d'IA et augmente les invites d'utilisateur pour le grand modèle de langage (LLM) spécifié. En tirant parti des informations des magasins de données d'entreprise, la RAG réduit les hallucinations et génère des réponses fondées.

La RAG utilise la recherche vectorielle d'IA sur un index vectoriel pour trouver des données sémantiquement similaires pour la question spécifiée. Les vecteurs stockent les processus d'intégration 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 intégrations saisissent la signification des données, ce qui permet un traitement et une analyse efficaces. Pour plus de détails sur les intégrations de vecteurs et la recherche de vecteurs IA, voir Aperçu de la recherche de vecteurs IA.

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

Rubriques

Avantages de Select AI RAG

Simplifier les interrogations, améliorer l'exactitude des réponses avec les données courantes et gagner en transparence en examinant les sources utilisées par le GML.

Select AI RAG offre les avantages suivants :
  • Simplifier les interrogations de données et augmenter la précision de la réponse : permettre aux utilisateurs d'interroger les données d'entreprise à l'aide du langage naturel et fournir 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 les cas d'hallucinations de LLM.

  • Informations à jour : Permet aux LLM d'accéder aux informations actuelles de l'entreprise à l'aide de magasins vectoriels, éliminant ainsi le besoin d'affiner des LLM coûteux et chronophages formés sur des jeux de données statiques.

  • Intégration transparente : intégrez à Oracle AI Vector Search pour un traitement rationalisé des données et une performance améliorée.

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

  • Résultats contextuels compréhensibles : A accès et extrait les sources utilisées par le LLM à partir de magasins vectoriels, assurant la transparence et la confiance dans les résultats. Permet de voir et d'extraire des données en langage naturel ou au format JSON pour faciliter l'intégration et le développement d'applications.

Créez votre Vector Store

Sélectionnez AI automatise la création et l'alimentation du magasin vectoriel en convertissant les documents d'entrée (par exemple, PDF, DOC, JSON, XML ou HTML) de votre magasin 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, voir Formats de document pris en charge.

Sélectionnez AI pour traiter automatiquement les documents à fragmenter, générer des intégrations, les stocker dans le magasin de vecteurs spécifié et mettre à jour l'index vectoriel à mesure que de nouvelles données arrivent.

Voici comment l'entrée du service de stockage d'objets est utilisée avec la RAG Select AI :

  1. Entrée : Les données sont initialement stockées dans un service de stockage d'objets.
  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 fragmentation et retourne les intégrations vectorielles.
  4. Les plongements de vecteurs sont ensuite stockés dans un magasin de vecteurs pour une utilisation avec RAG. Lorsque le contenu est ajouté, l'index vectoriel est automatiquement mis à jour.

La RAG extrait des informations pertinentes de la base de données de l'entreprise pour répondre à la question d'un utilisateur. Ces informations sont fournies au grand modèle de langue 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 à jour du magasin de vecteurs.



Sélectionnez AI pour mettre en oeuvre la RAG comme suit :
  1. Entrée : L'utilisateur pose une question (spécifie une invite) à l'aide de l'action Sélectionner l'intelligence artificielle narrate.

  2. Sélectionnez AI pour générer des plongements vectoriels de l'invite à l'aide du modèle d' plongement spécifié dans le profil AI.

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

  4. La recherche vectorielle retourne les principaux textes K similaires à l'entrée de votre instance Base de données d'IA autonome.
  5. Autonomous AI Database envoie ensuite ces principaux résultats d'interrogation K avec question d'utilisateur au LLM.
  6. Le LLM retourne sa réponse à votre instance Autonomous AI Database.
  7. Sélectionnez Autonomous AI Database pour répondre à l'utilisateur.

Utiliser DBMS_CLOUD_AI pour créer et gérer des index de vecteur

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

Après avoir créé des données d'identification et fourni un accès réseau à la base de données vectorielle et au fournisseur d'IA, votre instance Base de données d'IA autonome utilise des profils d'IA pour configurer l'accès aux LLM. Voir Exemple : Configurer et utiliser Sélectionner l'IA avec la RAG pour un exemple complet sur sa configuration et son utilisation dans les énoncés Sélectionner l'IA.

Note :

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 pour la RAG.

Vous pouvez configurer des profils d'intelligence artificielle pour les fournisseurs répertoriés dans au moyen de l'ensemble DBMS_CLOUD_AI.

Voir aussi :

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

La fonction RAG de l'IA 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 fragments de document et d'invites d'utilisateur.

Note :

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

Voir Exemple : Sélectionner l'intelligence artificielle avec des modèles de transformateur dans la base de données pour explorer la fonction.

Exemple : Configurer et utiliser Select AI avec RAG

Cet exemple vous guide tout au long de la configuration des données d'identification, de la configuration de l'accès au réseau et de la création d'un index vectoriel pour l'intégration des services en nuage de magasin vectoriel d'IA générative pour OCI 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 Select AI narrate, qui retourne une réponse améliorée à l'aide des informations de la base de données vectorielle spécifiée.

L'exemple suivant illustre la création et l'interrogation d'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 l'intelligence artificielle avec les modèles de transformateur de 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 Sélectionner l'IA pour générer des intégrations vectorielles pour les fragments de document et les invites d'utilisateur.

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

  • facultativement, l'accès au stockage d'objets Oracle.

Importer un modèle de transformateur préentraîné dans Oracle Database 23ai à partir du service de stockage d'objets Oracle

Consultez les étapes sous 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 le blogue 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 obtenu à partir du stockage d'objets Oracle 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 d'intelligence artificielle

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

Consultez les exigences de configuration de l'ensemble DBMS_CLOUD_AI pour terminer les préalables.

Voici un exemple pour générer uniquement des plongements vectoriels :

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

Voici un exemple de sélection générale d'actions d'IA et de génération d'index vectoriels dans lequel vous pouvez spécifier un fournisseur d'IA pris en charge. Cet exemple utilise le profil et les données d'identification OCI Gen AI. Voir pour obtenir la liste des fournisseurs pris en charge. Toutefois, si vous voulez utiliser le modèle de transformateur de base de données pour générer des intégrations 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 responsable de schéma est responsable du modèle. Spécifiez schema_name.object_name comme nom complet du modèle dans l'attribut embedding_model. Si l'utilisateur courant est le propriétaire du schéma ou le propriétaire du modèle, vous pouvez omettre le nom du schéma.

Assurez-vous d'avoir les privilèges suivants si un autre propriétaire de schéma est propriétaire du modèle :
  • Privilège système CREATE ANY MINING MODEL
  • Privilège système SELECT ANY MINING MODEL
  • Privilège d'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.

Voir Privilèges système pour Oracle Machine Learning for SQL pour vérifier les privilèges.

Les énoncés suivants permettent à ADB_USER1 de noter les données et de voir les détails du modèle dans n'importe quel schéma tant que l'accès SELECT a été accordé aux données. Toutefois, ADB_USER1 ne peut créer des modèles que 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 spécifier 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 de l'utilisation du modèle de transformateur dans la base de données avec Select AI RAG. Un profil utilise database comme provider créé exclusivement pour générer des vecteurs d'intégration, tandis que l'autre profil utilise oci comme provider créé pour les actions Sélectionner l'intelligence artificielle ainsi que l'index vectoriel.

Consultez les exigences de configuration de l'ensemble DBMS_CLOUD_AI pour terminer les préalables.

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