Directrices de Oracle Database de la herramienta RAG para agentes de IA generativa
Puedes traer tus propias incrustaciones de vectores (BYO) de una versión 23ai de Oracle Database a OCI Generative AI Agents.
Para que los datos de Object Storage estén disponibles para los agentes de IA generativa, consulte Requisitos de datos para Object Storage. Para que BYO esté disponible en OCI Search ingerido e indexado con datos OpenSearch para que los agentes los utilicen, consulte RAG Tool OCI Search with OpenSearch Guidelines for Generative AI Agents.
En este tema se describe la información de soporte, las tareas previas necesarias y las directrices para utilizar Oracle Database 23ai como opción de datos para agentes de IA generativa. La información proporcionada supone que está familiarizado con las redes virtuales en la nube (VCN) y las subredes, Oracle Database 23ai y el servicio Database Tools.
Antes de utilizar un almacén de vectores de Oracle Database versión 23ai como opción de datos para agentes de IA generativa, asegúrese de comprender lo que está soportado y de realizar las tareas necesarias.
- Tipos de base de datos
-
Generative AI Agents soporta incrustaciones de vectores BYO desde:
-
Oracle Base Database 23ai: la base de datos se puede configurar en una red privada. Consulte Creación de un sistema de base de datos.
-
Oracle Autonomous Database 23ai solo de los siguientes tipos de acceso de red:
-
Solo acceso de punto final privado: la autenticación TLS mutua (mTLS) se puede activar para autenticar conexiones a la base de datos. Seleccione la casilla de control Requerir autenticación TLS mutua (mTLS) para activar la autenticación mTLS.
-
Acceso seguro desde cualquier lugar: la autenticación mTLS está activada por defecto y es necesaria.
-
-
- Bases de datos autónomas activadas para autenticación mTLS
-
Si la base de datos autónoma está activada para la autenticación mTLS, debe descargar la cartera, crear una contraseña de cartera y extraer un archivo de la cartera. Consulte Requisitos de seguridad de cartera en el paso 3. Configurar los requisitos de red y seguridad.
- Soporte de base de datos entre regiones y entre arrendamientos
-
El soporte de base de datos entre regiones y entre arrendamientos solo está disponible para Oracle Database 23ai con acceso de red privada. Esto incluye Oracle Base Database y Oracle Autonomous Database configuradas por el tipo de acceso de red Solo acceso de punto final privado. Las bases de datos autónomas con acceso público no están soportadas.
Al utilizar agentes de IA generativa en una región alojada, puede conectarse a una base de datos de acceso privado que resida en:- Otra región dentro del mismo arrendamiento. Active la conectividad creando una conexión de herramientas de base de datos en la región en la que está disponible el servicio de agente.
- Otro arrendamiento. Active la conectividad creando una conexión de herramientas de base de datos en el arrendamiento donde esté disponible el servicio de agente.
Para configurar la configuración de red, consulte Networking Requirements (Cross-region and Cross-tenancy database) en el paso 3. Configurar los requisitos de red y seguridad.
Para crear una conexión, introduzca la cadena de conexión manualmente como se describe en el Step 5. Crear conexiones de Database Tools.
Además de proporcionar al usuario acceso a todos los recursos de agentes de IA generativa, como se describe en Adding Policies Before You Can Use the Service, debe crear un grupo dinámico con acceso a secretos de almacén y herramientas de base de datos.
-
Crear un grupo dinámico y agregar las siguientes reglas de coincidencia.
ALL {resource.type='genaiagent'}
Si necesita ayuda, consulte Creación de un grupo dinámico.
-
Conceda permisos al grupo dinámico.
-
Escriba las siguientes políticas, que se pueden utilizar con el dominio de identidad por defecto:
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>
-
Utilice las siguientes políticas con un dominio de identidad no por defecto, proporcionando el nombre de dominio de Oracle Identity Cloud Service (IDCS) y el nombre de grupo dinámico:
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 no se puede acceder a la conexión de herramientas de base de datos después de escribir las políticas anteriores, puede haber un problema con el token de sesión de la entidad de recurso. Intente utilizar la siguiente configuración de política sin depender de grupos dinámicos:
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'}
Realice estas tareas si aún no configuró ni creó los recursos necesarios.
- Requisitos de Red
-
- Agregue la base de datos a la subred privada de una VCN.
- Configure las siguientes propiedades para la regla de entrada de la subred:
- Tipo de origen: CIDR
- CIDR de origen: bloque IPv4 CIDR de la VCN (como 10.0.0.0/16)
- Protocolo IP: TCP
- Rango de puertos de origen: Todo
- Rango de puertos de destino: 1521-1522
- Requisitos de red (base de datos entre regiones y entre arrendamientos)
-
Los siguientes requisitos solo son aplicables a Oracle Database 23ai con acceso de red privada. Esto incluye Oracle Base Database y Oracle Autonomous Database configuradas por el tipo de acceso de red Solo acceso de punto final privado. Las bases de datos autónomas con acceso público no están soportadas.
Configuración de Red
- Configure dos redes virtuales en la nube con CIDR no superpuestos. Para configurar los valores de red, consulte Intercambio de tráfico remoto de VCN.
- En la VCN de la base de datos, asegúrese de agregar la regla de entrada para que el CIDR de la VCN de la conexión de herramientas de base de datos acceda a los puertos de base de datos 1521-1522.
Ejemplo de base de datos entre regiones: puede conectarse a una base de datos que se encuentre en una región diferente a la que se está ejecutando el servicio Generative AI Agents. Por ejemplo:
-
El servicio de agente se está ejecutando en el arrendamiento A de la región ORD.
-
La base de datos base de Oracle u Oracle Autonomous Database con acceso de red privada se despliega en la región PHX.
-
Para acceder a la base de datos privada, configure gateways de enrutamiento dinámico (DRG) en ambas regiones y configure una conexión de herramientas de base de datos en ORD para conectarse a la base de datos en PHX.
Ejemplo de base de datos entre arrendamientos: puede conectarse a una base de datos que esté ubicada en un arrendamiento diferente del servicio Generative AI Agents. Por ejemplo:
-
El servicio de agente se está ejecutando en el arrendamiento A de la región ORD.
-
La base de datos base de Oracle u Oracle Autonomous Database con acceso de red privada se despliega en el arrendamiento B de la región PHX.
-
Para acceder a la base de datos privada, configure gateways de enrutamiento dinámico (DRG) en ambos arrendamientos y configure una conexión de herramientas de base de datos en el arrendamiento A (región ORD) para conectarse a la base de datos en el arrendamiento B (región PHX).
La configuración de red entre arrendamientos se aplica independientemente de si el servicio de base de datos y el servicio de agente están en la misma región o en diferentes regiones.
- Requisitos de seguridad de Vault
-
Se necesita un almacén en OCI Vault para almacenar secretos para la base de datos, como la contraseña de la base de datos.
Cree el almacén en el mismo compartimento que la conexión de herramientas de base de datos. Esto se aplica a las bases de datos de la misma región que el servicio Agentes de IA generativa y a las bases de datos entre regiones o entre arrendamientos.
- Crear un almacén.
- Cree una clave de cifrado maestra.
- En el almacén, cree un secreto para la contraseña de la base de datos.
- Requisitos de seguridad de cartera
-
Si la base de datos autónoma está activada para la autenticación mTLS, realice las siguientes tareas:
- Descargue la cartera y cree una contraseña de cartera. Consulte Descarga de credenciales de cliente (carteras).
- Desde el zip de cartera descargado, extraiga el archivo
ewallet.p12
y déjelo a un lado. Necesita la carteraPKCS#12
para crear la conexión de herramientas de base de datos.
En la base de datos que ha creado para utilizarla con agentes de IA generativa, cree una tabla de base de datos con determinados campos necesarios y configure una función de base de datos que devuelva resultados de búsqueda vectorial de consultas.
- Tabla de la Base de Datos
- Cree una tabla de Oracle Database 23ai con los siguientes campos:
Campos necesarios
DOCID
: ID asignado a cada registro o documentoBODY
: contenido real que desea que busque el agenteVECTOR
: vector generado a partir de un modelo de embebido basado en el contenidobody
Campos Opcionales
CHUNKID
: ID del documento fragmentado, en caso de que el documento tenga más de 512 tokens.URL
: referencia de URL para el contenido, si está disponible.TITLE
: título del contenido debody
PAGE_NUMBERS
: números de página para el contenido, si están disponibles.
- Función de Base de Datos
-
Una función es un subprograma que puede tener parámetros y devolver un valor. Debe configurar una función de base de datos que pueda devolver resultados de búsqueda vectorial de cada consulta. Estos son los requisitos:
Parámetros de Entrada
p_query
: cadena de consultatop_k
: número de resultados principales
Tipo de Retorno
SYS_REFCURSOR
Requisitos
-
El modelo de embebido que utilice para el campo de consulta de la función debe ser el mismo que el modelo de embebido que transforma el contenido
BODY
de la tabla en embebidas vectoriales. -
Los campos devueltos de la función deben coincidir con los campos obligatorios de la tabla (
DOCID
,BODY
ySCORE
) y opcionales (CHUNKID
,TITLE
yURL
).El contenido
BODY
se procesa mediante un modelo de embebido para producir unVECTOR
para cada contenido. La función calcula las distancias entre el vector de consulta y cadaVECTOR
, devolviendo las filastop_k
. El campoSCORE
representa las distancias entre el vector de consulta yVECTOR
deBODY
. -
Si los nombres de campo de retorno de la función no coinciden con los nombres de campo de tabla, debe utilizar alias en la función.
Ejemplo
A continuación se muestra un ejemplo de una función de base de datos:
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;
Puede crear conexiones reutilizables a una base de datos Oracle en OCI mediante el servicio Database Tools.
Siga estas directrices para crear una conexión para la base de datos.
- Directrices para la conexión de Oracle Base Database 23ai
-
Los agentes de IA generativa pueden acceder a Oracle Base Database 23ai a través de un punto final privado. Realice estas tareas para establecer la conexión con la base de datos.
-
Obtenga la siguiente información:
En la consola, abra el menú de navegación , seleccione Oracle Database y, a continuación, seleccione Oracle Base Database Service. Seleccione el nombre del sistema de base de datos y, a continuación, seleccione el nombre de la base de datos. Copie las siguientes propiedades para utilizarlas para la información de conexión en el siguiente paso:
- Sistema de base de datos
- Database
- Directorio Raíz de Base de Datos
-
En la parte izquierda, seleccione Bases de datos conectables y seleccione el nombre de la base de datos conectable. Seleccione Conexión de PDB y copie la cadena de conexión con el formato Larga.
Ejemplo de cadena de conexión con un formato largo:
(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)))
-
En Herramientas de base de datos, cree una conexión mediante una de las siguientes opciones:
- Utilice la opción Seleccionar base de datos para seleccionar una base de datos.
- Seleccione Oracle Base Database.
- Seleccione el sistema de base de datos, el directorio raíz de base de datos y la base de datos.
- Seleccione la base de datos de conexión.
- Utilice la opción Introducir información de base de datos para una base de datos entre regiones o entre arrendamientos e introduzca la información de conexión manualmente. En Tipo de conexión, seleccione Oracle Database.
- Utilice la opción Seleccionar base de datos para seleccionar una base de datos.
-
Complete el resto de la información con las siguientes propiedades:
- Introduzca el nombre de usuario y seleccione el rol para el usuario.
Asegúrese de que el usuario de base de datos tenga los permisos necesarios y de que pueda ejecutar la función de base de datos preparada en el Step 4. Configurar una tabla de base de datos y una función y se le asigna un rol adecuado. Por ejemplo, para el usuario
SYS
, asigne el rolSYSDBA
. - En Secreto de contraseña de usuario, seleccione el secreto si ya se ha creado. De lo contrario, seleccione Crear secreto de contraseña y cree un secreto para almacenar la contraseña en el almacén que ha creado.
- En Cadena de conexión, pegue el formato largo de la base de datos conectable que ha copiado en el paso 1 de este procedimiento.
Para una base de datos entre regiones o entre arrendamientos, introduzca la cadena de conexión.
- Seleccione la casilla de control Acceder a base de datos mediante red privada.
- Para Punto final privado, realice una de las siguientes acciones:
- Haga clic en Seleccionar punto final privado y seleccione el punto final.
- Seleccione Crear punto final privado y cree el punto final. En Subred, seleccione la subred privada de la base de datos. Asegúrese de crear el punto final privado con la misma VCN y subred que la base de datos.
- En Formato de cartera, seleccione
None
para crear una conexión sin autenticación TLS mutua (mTLS).
- Introduzca el nombre de usuario y seleccione el rol para el usuario.
-
- Directrices para la conexión de Autonomous Database 23ai
-
Los agentes de IA generativa pueden acceder a una instancia de Autonomous Database 23ai a través de un punto final privado con una conexión configurada para la autenticación TLS mutua (mTLS). Realice estas tareas para establecer una conexión con la base de datos.
-
Obtenga la siguiente información:
En la consola, abra el menú de navegación . Seleccione Oracle Database y, a continuación, seleccione Autonomous Database. Seleccione la base de datos. En la página de detalles de la base de datos, copie las siguientes propiedades para utilizarlas para la información de conexión en el siguiente paso:
- Nombre de base de datos
- (Para el acceso de red Solo acceso de punto final privado) En la sección Red:
- IP de punto final privado
- URL de punto final privado
- Seleccione Conexión de base de datos y haga lo siguiente:
- En la lista de nombres TNS, busque el nombre TNS que termina en
_high
y copie su cadena de conexión. - Solo para una base de datos que necesita autenticación TLS mutua (mTLS): descargue la cartera. Consulte Requisitos de seguridad de cartera en el paso 3. Configurar los requisitos de red y seguridad.
- En la lista de nombres TNS, busque el nombre TNS que termina en
-
En Herramientas de base de datos, cree una conexión mediante una de las siguientes opciones:
- Utilice la opción Seleccionar base de datos para seleccionar una base de datos.
- Seleccione Oracle Autonomous Database.
- Seleccione la base de datos.
- Utilice la opción Introducir información de base de datos para una base de datos entre regiones o entre arrendamientos e introduzca la cadena de conexión manualmente. En Tipo de conexión, seleccione Oracle Database.
- Utilice la opción Seleccionar base de datos para seleccionar una base de datos.
-
Complete el resto de la información con las siguientes propiedades:
- En Nombre de usuario, introduzca el usuario que tiene los permisos necesarios y puede ejecutar la función de base de datos preparada en el Step 4. Configurar una tabla de base de datos y una función.
- En Secreto de contraseña de usuario, seleccione el secreto si ya se ha creado. De lo contrario, seleccione Crear secreto de contraseña y cree un secreto para almacenar la contraseña en el almacén que ha creado.
- En Cadena de conexión, pegue la cadena de conexión que termina en
_high
, la cadena que ha copiado de la sección Conexión a base de datos de la página de detalles de la base de datos.A continuación, según el tipo de base de datos, actualice la cadena de la siguiente manera:- Base de datos de acceso privado: reduzca
retry_count
de 20 a 3 y sustituya la URL de punto final privado del host por la dirección IP del punto final privado.Ejemplo de cadena de conexión:
(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)))
Ejemplo de cadena de conexión actualizada:
(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 datos de acceso público: reduzca
retry_count
de 20 a 3.Ejemplo de cadena de conexión actualizada:
(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 datos de acceso privado: reduzca
- En Punto final privado:
- Para las bases de datos de acceso público, no se debe configurar un punto final privado.
- Para Solo acceso de punto final privado, seleccione la casilla de control Acceder a base de datos mediante una red privada. A continuación, seleccione el punto final privado o seleccione Crear punto final privado para crear un punto final y asegúrese de utilizar la misma VCN y subred privada que la base de datos.
- En Formato de cartera:
- Para una base de datos que no está activada para la autenticación mTLS, seleccione
None
. - Para una base de datos activada para la autenticación mTLS, seleccione
PKCS#12 wallet(e.g., ewallet.p12)
. A continuación, cree el secreto de contenido de cartera y el secreto de contraseña de cartera, o selecciónelos si ya ha creado los secretos.
- Para una base de datos que no está activada para la autenticación mTLS, seleccione
-