Resumen
¿Cómo convertir datos de clientes en contexto para un chatbot RAG?
El ejemplo conecta Oracle Autonomous Database 23ai, AI Vector Search y OCI Generative AI. Parte de tablas de clientes, planes, contratos, facturación y satisfacción. Las vistas preparan texto y metadatos; el procedimiento sp_elt_insert_into_docs fragmenta el contenido, genera embeddings y lo almacena en DOCS para las búsquedas.
Se revisan DBMS_VECTOR, DBMS_VECTOR_CHAIN, UTL_TO_CHUNKS y JSON_TABLE, junto con los parámetros de industria, caso y vista. El recorrido prepara políticas de acceso, Autonomous y su wallet, API Key, VCN y una instancia Windows de OCI Compute. Después instala el chatbot; NGINX se presenta como configuración opcional.
La demo compara perfiles y casos seleccionados para observar cómo cambia el contexto recuperado. También genera clientes de prueba, actualiza sus embeddings y consulta la información desde el chat. Al final se revisan DOCS, metadatos, vistas y procedimiento dentro de Autonomous.
Inicio
El expositor introduce un caso de chatbot conectado a Oracle Autonomous Database 23ai con AI Vector Search. El recorrido combina preparación de datos de clientes, generación de embeddings y consultas con RAG.
Caso de uso y arquitectura para datos de clientes
La arquitectura centraliza la información de clientes en Autonomous Database 23ai y utiliza OCI Generative AI para generar embeddings. Una máquina virtual puede alojar el chatbot que consulta ese contenido. Se presentan los paquetes DBMS_VECTOR y DBMS_VECTOR_CHAIN para trabajar con datos vectoriales, junto con la preparación de accesos de red y permisos para los usuarios del ejemplo.
Modelo relacional, vistas y metadatos
Se parte de tablas de clientes, planes, contratos, facturación y encuestas de satisfacción. Las vistas combinan esas tablas para preparar un identificador de cliente, texto de contexto y metadatos. Estos últimos permiten filtrar las búsquedas del retriever. Después, un procedimiento consume las vistas para transformar el texto en embeddings y almacenarlo en DOCS.
Procedimiento para generar y almacenar embeddings
Se revisa el procedimiento sp_elt_insert_into_docs y su inserción en DOCS. La estructura reúne identificador, industria, caso, texto, embedding y metadatos. Los valores se construyen a partir de vistas con una estructura común de identificador de cliente, contenido textual y metadatos. La tabla destino incorpora un campo vectorial para conservar la representación del texto.
Fragmentación de texto con UTL_TO_CHUNKS
UTL_TO_CHUNKS divide el texto de las vistas en fragmentos según criterios configurables, como palabras, tamaño, solapamiento y tipo de separación. Después se utiliza JSON_TABLE para convertir el resultado en filas. El recorrido identifica datos del fragmento como su identificador, posición inicial, longitud y contenido, preparando la entrada para generar embeddings.
Generación de embeddings con OCI Generative AI
El texto fragmentado se transforma en embeddings mediante OCI Generative AI, con credenciales preparadas previamente y un modelo multilingüe. JSON_TABLE permite llevar los resultados a una estructura con identificador, texto y vector para insertarlos en DOCS. La consulta incorpora una condición para añadir valores que todavía no existan en la tabla del ejemplo.
Políticas de acceso para OCI Generative AI
Se revisan las políticas de acceso necesarias para utilizar OCI Generative AI. El expositor indica que ya están agregadas en su entorno antes de continuar con la creación de Autonomous y el resto de la integración.
Creación de Autonomous Database 23ai y wallet
Se crea una base de datos Autonomous con la carga de trabajo de data warehouse y la versión 23ai del ejemplo. Se completan el nombre, la capacidad y la contraseña, y se espera el aprovisionamiento. Después se descarga el wallet, se define la contraseña del archivo ZIP y se conserva para configurar la conexión de la aplicación.
Creación de API Key y configuración OCI
Desde el perfil del usuario se crea una API Key para la conexión de la aplicación a OCI. Se guardan la clave y la configuración generada, que se utilizarán más adelante al preparar los archivos del entorno. El recorrido relaciona esas credenciales con las autorizaciones del usuario que ejecutará la integración.
Creación de la Virtual Cloud Network
Se presenta el asistente de creación de una VCN, con nombre y segmento de red configurables. El expositor utiliza una red existente y revisa los puertos del laboratorio: 3389 para escritorio remoto y 3002 para el acceso a la aplicación. Esta preparación conecta la red elegida con la instancia que alojará el chatbot.
Creación de la instancia de OCI Compute
Se crea una instancia de OCI Compute con una imagen Windows y la VCN preparada. Una vez aprovisionada, se utiliza su dirección IP para acceder mediante escritorio remoto. En el primer inicio se cambia la contraseña generada y se entra al sistema, dejando la máquina lista para instalar los componentes de la aplicación.
Configuración opcional de NGINX y firewall
NGINX se presenta como un paso opcional para publicar el servicio local de la aplicación. Se descarga y descomprime el servidor, se sustituye su configuración por la del ejemplo y se revisa la redirección asociada al puerto 3002. Después se reinicia NGINX y se prepara una regla del firewall de Windows para el puerto utilizado por la aplicación.
Instalación y configuración del chatbot
Se copia el proyecto, se incorpora el wallet y se prepara la configuración OCI con la ruta de la clave. Después se instala Conda y se completan las variables de conexión de Autonomous, del wallet y del usuario de desarrollo. También se define la cantidad de clientes de prueba que generará el ejemplo.
El proceso de instalación crea el entorno y sus dependencias, prepara el usuario y sus permisos, las credenciales vectoriales, las tablas de casos y DOCS, las vistas y el procedimiento de embeddings. Finalmente procesa el contenido, añade un índice y deja disponible el chatbot por su dirección local o por la publicación configurada.
Demo RAG: Perfiles, casos y consultas de clientes
La demo empieza con un cliente de prueba y una pregunta sin ningún caso seleccionado; el chatbot no recupera información sobre él. Al elegir un caso se obtiene contexto para responder. Después se cambia al perfil Product Manager, que en el ejemplo tiene más casos disponibles, y se observa una respuesta con información procedente de varias vistas.
Generación de nuevos clientes y actualización de embeddings
Desde Generate Data se añade un cliente de prueba y se insertan registros en las tablas relacionadas. A continuación se ejecuta el procedimiento que transforma el contenido de las vistas en embeddings. Se selecciona el perfil y los casos para consultar al nuevo cliente, y se pide una lista de los clientes disponibles. La prueba muestra cómo la nueva información llega al contexto recuperado por el chatbot.
Revisión de la tabla DOCS y los vectores
En Database Actions se abre el esquema de desarrollo y se consulta DOCS. Se revisan industria, caso, texto, metadatos y embeddings, relacionando estos campos con los filtros y las búsquedas vectoriales. Después se inspecciona una vista: contiene el identificador del cliente, los metadatos y el texto de contexto, todavía sin la transformación a embeddings que realiza el procedimiento.
Procedimiento dinámico por industria, caso y vista
Se abre la estructura del procedimiento y se conecta con la consulta revisada al inicio del video. La ejecución recibe parámetros de industria, caso y vista para reutilizar el procesamiento sobre distintas fuentes del ejemplo. El cierre resume esta preparación como base de un chatbot conectado a Autonomous Database 23ai.
Recursos relacionados
- AI Vector Search Chatbot — Código y guía del proyecto
- Oracle AI Vector Search — Embeddings y búsqueda por similitud
- DBMS_VECTOR_CHAIN — Fragmentación y generación de embeddings
- OCI Generative AI — Modelos y capacidades
- LangChain — Integración con Oracle AI Vector Search
- NGINX para Windows — Configuración opcional