Instructions Oracle Database de l'outil RAG pour les agents d'IA générative
Vous pouvez utiliser vos propres intégrations vectorielles (BYO) à partir d'une version 23ai d'Oracle Database vers des agents OCI Generative AI.
Pour que les données dans Object Storage soient disponibles pour les agents d'IA générative, reportez-vous à Exigences en matière de données pour Object Storage. Afin de rendre disponible la recherche OCI ingérée et indexée BYO avec des données OpenSearch pour les agents à utiliser, reportez-vous à Recherche OCI de l'outil RAG avec des directives OpenSearch pour les agents d'IA générative.
Cette rubrique décrit les informations d'assistance, les tâches prérequises et les instructions relatives à l'utilisation d'Oracle Database 23ai en tant qu'option de données pour les agents Generative AI. Les informations fournies supposent que vous êtes familiarisé avec les réseaux cloud virtuels et les sous-réseaux, Oracle Database 23ai et le service Database Tools.
Avant d'utiliser une banque de vecteurs Oracle Database version 23ai en tant qu'option de données pour les agents d'IA générative, assurez-vous que vous comprenez ce qui est pris en charge et effectuez toutes les tâches requises.
- Types de base de données
-
Les agents d'IA générative prennent en charge les intégrations de vecteurs BYO à partir des éléments suivants :
-
Oracle Base Database 23ai : la base de données peut être configurée sur un réseau privé. Reportez-vous à Création d'un système de base de données.
-
Oracle Autonomous Database 23ai des types d'accès réseau suivants uniquement :
-
Accès à l'adresse privée uniquement : l'authentification TLS mutuelle (mTLS) peut être activée pour authentifier les connexions à la base de données. Cochez la case Exiger une authentification TLS mutuelle (mTLS) pour activer l'authentification mTLS.
-
Accès sécurisé à partir de n'importe quel emplacement : l'authentification mTLS est activée par défaut et requise.
Reportez-vous à Création d'une instance Autonomous Database.
-
-
- Bases de données autonomes activées pour l'authentification mTLS
-
Si la base de données autonome est activée pour l'authentification TLS mutuelle, vous devez télécharger le portefeuille, créer un mot de passe de portefeuille et extraire un fichier du portefeuille. Reportez-vous à la section Wallet Security Requirements à l'étape 3. Configuration de la mise en réseau et des exigences de sécurité.
- Prise en charge des bases de données inter-région et inter-locations
-
La prise en charge des bases de données inter-régions et inter-locations n'est disponible que pour Oracle Database 23ai avec accès au réseau privé. Cela inclut Oracle Base Database et Oracle Autonomous Database configurés par le type d'accès réseau Accès à l'adresse privée uniquement. Les bases de données autonomes avec accès public ne sont pas prises en charge.
Lorsque vous utilisez des agents d'IA générative dans une région hébergée, vous pouvez vous connecter à une base de données à accès privé qui réside dans :- Une autre région dans la même location. Activez la connectivité en créant une connexion aux outils de base de données dans la région où le service d'agent est disponible.
- Une autre location. Activez la connectivité en créant une connexion aux outils de base de données dans la location où le service d'agent est disponible.
Pour configurer les paramètres réseau, reportez-vous à Exigences réseau (base de données inter-région et inter-locations) à l'étape 3. Configuration de la mise en réseau et des exigences de sécurité.
Pour créer une connexion, entrez la chaîne de connexion manuellement, comme décrit à l'Step 5. Création de connexions Database Tools.
En plus de donner à l'utilisateur l'accès à toutes les ressources des agents d'IA générative, comme décrit dans Ajout de stratégies pour pouvoir utiliser le service, vous devez créer un groupe dynamique avec accès aux clés secrètes de coffre et aux outils de base de données.
-
Créez un groupe dynamique et ajoutez la règle de mise en correspondance suivante.
ALL {resource.type='genaiagent'}
Si vous avez besoin d'aide, reportez-vous à Création d'un groupe dynamique.
-
Accordez des droits d'accès au groupe dynamique.
-
Ecrivez les stratégies suivantes, qui peuvent être utilisées avec le domaine d'identité par défaut :
allow dynamic-group <dynamic-group-name> to read database-tools-family in compartment <compartment-name> allow dynamic-group <dynamic-group-name> to read secret-bundle in compartment <compartment-name>
-
Utilisez les stratégies suivantes avec un domaine d'identité qui n'est pas par défaut, en fournissant le nom de domaine Oracle Identity Cloud Service (IDCS) et le nom de groupe dynamique :
allow dynamic-group '<idcs-domain-name>/<dynamic-group-name>' to read database-tools-family in compartment <compartment-name> allow dynamic-group '<idcs-domain-name>/<dynamic-group-name>' to read secret-bundle in compartment <compartment-name>
-
Si la connexion aux outils de base de données est inaccessible après avoir écrit les stratégies précédentes, il peut y avoir un problème avec le jeton de session de principal de ressource. Essayez d'utiliser les paramètres de stratégie suivants sans dépendre de groupes dynamiques :
allow any-user to read database-tools-family in compartment <compartment-name> where any {request.principal.type='genaiagent'}
allow any-user to read secret-bundle in compartment <compartment-name> where any {request.principal.type='genaiagent'}
Effectuez ces tâches si vous n'avez pas encore configuré ou créé les ressources requises.
- Configuration réseau requise
-
- Ajoutez la base de données au sous-réseau privé d'un VCN.
- Configurez les propriétés suivantes pour la règle entrante du sous-réseau :
- Type de source : CIDR
- Source CIDR: The VCN's IPv4 CIDR Block (such as 10.0.0.0/16)
- Protocole IP : TCP
- Plage de ports source : Tout
- Plage de ports de destination : 1521-1522
- Configuration réseau requise (base de données inter-région et inter-locations)
-
Les exigences suivantes s'appliquent uniquement à Oracle Database 23ai avec accès au réseau privé. Cela inclut Oracle Base Database et Oracle Autonomous Database configurés par le type d'accès réseau Accès à l'adresse privée uniquement. Les bases de données autonomes avec accès public ne sont pas prises en charge.
Paramètres réseau
- Configurez deux réseaux cloud virtuels avec des CIDR qui ne se chevauchent pas. Pour configurer les paramètres réseau, reportez-vous à Appairage VCN distant.
- Dans le VCN de la base de données, assurez-vous d'ajouter la règle entrante pour le CIDR VCN de la connexion aux outils de base de données afin d'accéder aux ports de base de données 1521-1522.
Exemple de base de données inter-région : vous pouvez vous connecter à une base de données située dans une région différente de celle dans laquelle le service Agents d'IA générative est exécuté. Exemples :
-
Le service d'agent est en cours d'exécution dans la location A de la région ORD.
-
La base de données Oracle Base ou Oracle Autonomous Database avec accès au réseau privé est déployée dans la région PHX.
-
Pour accéder à la base de données privée, configurez des passerelles de routage dynamique dans les deux régions et configurez une connexion aux outils de base de données dans ORD pour vous connecter à la base de données dans PHX.
Exemple de base de données inter-locations : vous pouvez vous connecter à une base de données située dans une location différente du service Agents Generative AI. Exemples :
-
Le service d'agent est en cours d'exécution dans la location A de la région ORD.
-
La base de données Oracle Base ou Oracle Autonomous Database avec accès au réseau privé est déployée dans la location B dans la région PHX.
-
Pour accéder à la base de données privée, configurez des passerelles de routage dynamique dans les deux locations et configurez une connexion aux outils de base de données dans la location A (région ORD) pour vous connecter à la base de données dans la location B (région PHX).
La configuration réseau inter-locations s'applique que le service de base de données et le service d'agent se trouvent dans la même région ou dans des régions différentes.
- Exigences de sécurité du coffre
-
Un coffre dans OCI Vault est requis pour stocker les clés secrètes de la base de données, telles que le mot de passe de la base de données.
Créez le coffre dans le même compartiment que la connexion Database Tools. Cela s'applique aux bases de données de la même région que le service Generative AI Agents, ainsi qu'aux bases de données inter-région ou inter-locations.
- Créer un coffre.
- Créez une clé de cryptage maître.
- Dans le coffre, créez une clé secrète pour le mot de passe de base de données.
- Conditions de sécurité du portefeuille
-
Si la base de données autonome est activée pour l'authentification mTLS, effectuez les tâches suivantes :
- Téléchargez le portefeuille et créez-en un. Reportez-vous à Téléchargement des informations d'identification client (portefeuilles).
- A partir du fichier ZIP de portefeuille téléchargé, extrayez le fichier
ewallet.p12
et mettez-le de côté. Vous avez besoin du portefeuillePKCS#12
pour créer la connexion aux outils de base de données.
Dans la base de données que vous avez créée pour l'utiliser avec les agents d'IA générative, créez une table de base de données avec certains champs obligatoires et configurez une fonction de base de données qui renvoie des résultats de recherche vectorielle à partir de requêtes.
- Table de base de données
- Créez une table Oracle Database 23ai avec les champs suivants :
Champs obligatoires
DOCID
: ID affecté à chaque enregistrement ou documentBODY
: contenu réel que l'agent doit rechercherVECTOR
: vecteur généré à partir d'un modèle d'intégration basé sur le contenubody
Champs facultatifs
CHUNKID
: ID du document découpé en blocs, au cas où le document dépasse 512 jetons.URL
: référence d'URL pour le contenu, si disponible.TITLE
: titre du contenubody
PAGE_NUMBERS
: numéros de page du contenu, le cas échéant.
- Fonction de base de données
-
Une fonction est un sous-programme qui peut admettre des paramètres et renvoyer une valeur. Vous devez configurer une fonction de base de données qui peut renvoyer des résultats de recherche vectorielle à partir de chaque requête. Voici les exigences :
Paramètres d'entrée
p_query
: chaîne de requêtetop_k
: nombre de résultats principaux
Type renvoyé
SYS_REFCURSOR
Exigences
-
Le modèle d'intégration que vous utilisez pour le champ de requête de la fonction doit être identique au modèle d'intégration qui transforme le contenu
BODY
de la table en incorporations vectorielles. -
Les champs renvoyés par la fonction doivent correspondre aux champs obligatoires de la table (
DOCID
,BODY
etSCORE
) et facultatifs (CHUNKID
,TITLE
etURL
).Le contenu
BODY
est traité par un modèle d'incorporation afin de produire une valeurVECTOR
pour chaque contenu. La fonction calcule les distances entre le vecteur de requête et chaqueVECTOR
, en renvoyant les lignestop_k
. Le champSCORE
représente les distances entre le vecteur de requête etVECTOR
à partir deBODY
. -
Si les noms de champ de retour de la fonction ne correspondent pas aux noms de champ de table, vous devez utiliser des alias dans la fonction.
Exemple
Voici un exemple de fonction de base de données :
create or replace FUNCTION RETRIEVAL_FUNC (p_query IN VARCHAR2,top_k IN NUMBER) RETURN SYS_REFCURSOR IS v_results SYS_REFCURSOR; query_vec VECTOR; BEGIN query_vec := dbms_vector.utl_to_embedding( p_query, json('{ "provider": "OCIGenAI", "credential_name": "OCI_VECTOR_CREDENTIAL", "url": "https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/embedText", "model": "cohere.embed-english-v3.0" }') ); OPEN v_results FOR select l.id as DOCID, lv.chunk_id as CHUNKID, l.file_name as TITLE, 'https://objectstorage.us-chicago-1.oraclecloud.com/n/{namespace}/b/{bucket_name}/o/' || l.file_name as URL, lv.chunk_txt as BODY, vector_distance(embed_vector, query_vec) AS SCORE from legislation_vector lv, legislation l where l.id = lv.id order by SCORE fetch first top_k rows only; RETURN v_results; END;
Vous pouvez créer des connexions réutilisables à une base de données Oracle dans OCI à l'aide du service Database Tools.
Suivez ces instructions pour créer une connexion à votre base de données.
- Instructions relatives à la connexion à Oracle Base Database 23ai
-
Les agents d'IA générative peuvent accéder à une base de données Oracle Base Database 23ai via une adresse privée. Effectuez ces tâches pour établir la connexion à la base de données.
-
Obtenez les informations suivantes :
Dans la console, ouvrez le menu de navigation et sélectionnez Oracle Database, puis Oracle Base Database Service. Sélectionnez le nom du système de base de données, puis le nom de la base de données. Copiez les propriétés suivantes à utiliser pour les informations de connexion à l'étape suivante :
- Système de base de données
- Base de données
- Répertoire de base de la base de données
-
Sur le côté gauche, sélectionnez Bases de données pluggables et sélectionnez le nom de la base de données pluggable. Sélectionnez Connexion de base de données pluggable et copiez la chaîne de connexion au format Long.
Exemple de chaîne de connexion au format long :
(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3) (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.0.62)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME=xxx_pdb1.xxx.dbsvcn.oraclevcn.com)))
-
Dans Database Tools, créez une connexion à l'aide de l'une des options suivantes :
- Utilisez l'option Sélectionner une base de données pour sélectionner une base de données.
- Sélectionnez Oracle Base Database.
- Sélectionnez le système, le répertoire de base et la base de données.
- Sélectionnez la base de données pluggable.
- Utilisez l'option Entrer les informations de base de données pour une base de données inter-région ou inter-locations et entrez les informations de connexion manuellement. Pour Type de connexion, sélectionnez Oracle Database.
- Utilisez l'option Sélectionner une base de données pour sélectionner une base de données.
-
Renseignez le reste des informations avec les propriétés suivantes :
- Saisissez le nom utilisateur et sélectionnez le rôle de l'utilisateur.
Assurez-vous que l'utilisateur de base de données dispose des droits d'accès nécessaires et qu'il peut exécuter la fonction de base de données préparée à l'étape 4. Configurez une table de base de données et une fonction. Un rôle approprié lui est affecté. Par exemple, pour l'utilisateur
SYS
, affectez le rôleSYSDBA
. - Pour Clé secrète de mot de passe utilisateur, sélectionnez la clé secrète si elle est déjà créée. Sinon, sélectionnez Créer une clé secrète de mot de passe et créez une clé secrète pour stocker le mot de passe dans le coffre que vous avez créé.
- Pour Chaîne de connexion, collez le format long de la base de données pluggable que vous avez copiée à l'étape 1 de cette procédure.
Pour une base de données inter-région ou inter-locations, entrez la chaîne de connexion.
- Cochez la case Accéder à la base de données via un réseau privé.
- Pour Adresse privée, effectuez l'une des opérations suivantes :
- Cliquez sur Sélectionner une adresse privée et sélectionnez l'adresse.
- Sélectionnez Créer une adresse privée et créez l'adresse. Pour Sous-réseau, sélectionnez le sous-réseau privé de la base de données. Assurez-vous de créer l'adresse privée en utilisant le même VCN et le même sous-réseau que la base de données.
- Pour Format de portefeuille, sélectionnez
None
afin de créer une connexion sans authentification TLS mutuelle (mTLS).
- Saisissez le nom utilisateur et sélectionnez le rôle de l'utilisateur.
-
- Instructions relatives à la connexion à Autonomous Database 23ai
-
Les agents d'IA générative peuvent accéder à une instance Autonomous Database 23ai via une adresse privée avec une connexion configurée pour l'authentification TLS mutuelle (mTLS). Effectuez ces tâches pour établir une connexion de base de données.
-
Obtenez les informations suivantes :
Dans la console, ouvrez le menu de navigation . Sélectionnez Oracle Database, puis Autonomous Database. Sélectionnez la base de données. Dans la page de détails de la base de données, copiez les propriétés suivantes à utiliser pour les informations de connexion à l'étape suivante :
- Nom de base de données
- (Pour l'accès réseau Accès à l'adresse privée uniquement) Sous la section Réseau :
- Adresse IP de l'adresse privée
- URL de l'adresse privée
- Sélectionnez Connexion à la base de données et procédez comme suit :
- Dans la liste des noms TNS, recherchez le nom TNS qui se termine par
_high
et copiez sa chaîne de connexion. - Uniquement pour une base de données nécessitant une authentification TLS mutuelle : téléchargez le portefeuille. Reportez-vous à la section Wallet Security Requirements à l'étape 3. Configuration de la mise en réseau et des exigences de sécurité.
- Dans la liste des noms TNS, recherchez le nom TNS qui se termine par
-
Dans Database Tools, créez une connexion à l'aide de l'une des options suivantes :
- Utilisez l'option Sélectionner une base de données pour sélectionner une base de données.
- Sélectionnez Oracle Autonomous Database.
- Sélectionnez la base de données.
- Utilisez l'option Entrer les informations de base de données pour une base de données inter-région ou inter-locations et entrez la chaîne de connexion manuellement. Pour Type de connexion, sélectionnez Oracle Database.
- Utilisez l'option Sélectionner une base de données pour sélectionner une base de données.
-
Renseignez le reste des informations avec les propriétés suivantes :
- Dans Nom utilisateur, entrez l'utilisateur qui dispose des droits d'accès nécessaires et peut exécuter la fonction de base de données préparée à l'étape 4. Configurer une table de base de données et une fonction.
- Pour Clé secrète de mot de passe utilisateur, sélectionnez la clé secrète si elle est déjà créée. Sinon, sélectionnez Créer une clé secrète de mot de passe et créez une clé secrète pour stocker le mot de passe dans le coffre que vous avez créé.
- Pour Chaîne de connexion, collez la chaîne de connexion qui se termine par
_high
, la chaîne que vous avez copiée à partir de la section Connexion à la base de données de la page de détails de la base de données.Ensuite, selon le type de base de données, mettez à jour la chaîne comme suit :- Base de données d'accès privé : réduisez
retry_count
de 20 à 3, et remplacez l'URL de l'adresse privée de l'hôte par l'adresse IP de l'adresse privée.Exemple de chaîne de connexion :
(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522) (host=<private-endpoint-URL>)(connect_data=(service_name=xxx_high.adb.oraclecloud.com)) (security=(ssl_server_dn_match=no)))
Exemple de chaîne de connexion mise à jour :
(description= (retry_count=3)(retry_delay=3)(address=(protocol=tcps)(port=1522) (host=<private-endpoint-IP>)(connect_data=(service_name=xxx_high.adb.oraclecloud.com)) (security=(ssl_server_dn_match=no)))
- Base de données d'accès public : réduisez
retry_count
de 20 à 3.Exemple de chaîne de connexion mise à jour :
(description= (retry_count=3)(retry_delay=3)(address=(protocol=tcps)(port=1522) (host=<name>)(connect_data=(service_name=xxx_high.adb.oraclecloud.com)) (security=(ssl_server_dn_match=yes)))
- Base de données d'accès privé : réduisez
- Pour Adresse privée :
- Pour les bases de données d'accès public, aucune adresse privée ne doit être configurée.
- Pour Accès à l'adresse privée uniquement, cochez la case Accéder à la base de données via un réseau privé. Sélectionnez ensuite l'adresse privée, ou sélectionnez Créer une adresse privée pour créer une adresse, en vous assurant d'utiliser le même VCN et le même sous-réseau privé que la base de données.
- Pour le format de portefeuille :
- Pour une base de données qui n'est pas activée pour l'authentification mTLS, sélectionnez
None
. - Pour une base de données activée pour l'authentification mTLS, sélectionnez
PKCS#12 wallet(e.g., ewallet.p12)
. Créez ensuite la clé secrète de contenu de portefeuille et la clé secrète de mot de passe de portefeuille, ou sélectionnez-les si vous avez déjà créé les clés secrètes.
- Pour une base de données qui n'est pas activée pour l'authentification mTLS, sélectionnez
-