Cómo llamar a Hugging Face AI desde una base de datos Oracle usando JavaScript
Llamar a Hugging Face AI desde una base de datos Oracle usando JavaScript.
En este artículo, te mostraré cómo crear rápidamente una aplicación completamente gratuita utilizando un programa JavaScript que se ejecuta dentro de la base de datos gratuita de Oracle y llama a Hugging Face AI, cuyos resultados se almacenan en la base de datos y luego se pueden acceder utilizando SQL, JSON, REST u cualquier otro lenguaje. Todo el código fuente está disponible aquí.
Un flujo común de aplicaciones en general y aplicaciones de IA específicamente implica que una aplicación llame a un servicio de IA y luego almacene la información en la base de datos donde se puede recuperar y procesar (por ejemplo, utilizando OML) más adelante y/o analizar y consultar posteriormente.
Al emitir el comando desde la propia base de datos, los datos se almacenan de inmediato y, por lo tanto, también son más confiables, ya que están en proceso y no requieren una llamada de red adicional para persistir. Además, al tener la lógica (e incluso el código) en la base de datos, se puede aprovechar implícita e inherentemente la alta disponibilidad, gestión, observabilidad, etc. del poder de la base de datos de Oracle.
Esta es una capacidad única de la base de datos de Oracle, ya que incluye Java y, como veremos en este blog, motores de tiempo de ejecución de JavaScript dentro de la propia base de datos.
- Agentes Orientados a Documentos Un Viaje con Bases de Datos Vectoriales, LLMs, Langchain, FastAPI y Docker
- Potencia tu Python Asyncio con Aiomultiprocess Una guía completa
- Cómo convertí una base de datos relacional regular en una base de datos vectorial para almacenar incrustaciones
Hugging Face desarrolla herramientas para construir aplicaciones utilizando aprendizaje automático. Es especialmente conocido por su biblioteca de transformers creada para aplicaciones de procesamiento de lenguaje natural y su plataforma que permite a los usuarios compartir modelos y conjuntos de datos de aprendizaje automático. Se ha vuelto extremadamente popular en los últimos años.
En resumen, haremos lo siguiente:
- Crear una cuenta y seleccionar un modelo.
- Crear la base de datos de Oracle y un usuario de base de datos.
- Agregar una billetera con un certificado para permitir llamadas HTTPS.
- Crear una tabla.
- Ejecutar un programa JavaScript en la base de datos para realizar una llamada al modelo de IA de Hugging Face y almacenar los resultados en la tabla.
- Opcionalmente, consultar estos resultados utilizando SQL, JSON, REST, etc.
Configurar una cuenta de Hugging Face y un modelo de IA
Ve a https://huggingface.co y Regístrate. Ve a tu Perfil y haz clic en el botón Configuración.
Haz clic en Access Tokens, crea un token y copia su valor para usarlo más adelante.
Haz clic en Models y selecciona un modelo. En este caso, seleccionaremos un modelo de la sección de Procesamiento de Lenguaje Natural para Responder preguntas.
Selecciona un modelo (quizás uno de los más populares), observa la información en la Tarjeta del Modelo a la izquierda y luego selecciona el menú desplegable Desplegar a la derecha.
Selecciona Inference API y luego selecciona la opción JavaScript para ver un fragmento de código de ejemplo para llamar al modelo.
Configurar la base de datos de Oracle
Podemos utilizar cualquier versión de la base de datos de Oracle a partir de la versión 21c. En la nube, podemos usar la base de datos autónoma gratuita de Oracle siempre disponible (lo cual es bueno ya que podemos exponerla a través de Internet y hacer que el juego esté verdaderamente disponible a nivel mundial/en línea en un par de minutos) o podemos usar la versión gratuita de Oracle 23c donde simplemente podemos instalarla o usar una imagen de contenedor localmente. O, por supuesto, podríamos usar el entorno local para desarrollo y la nube para producción, etc., y cualquiera de estas opciones se configura muy rápidamente.
Opción de base de datos siempre gratuita en Oracle Cloud
Puedes ir aquí para configurar una Base de Datos Autónoma Oracle Cloud Always Free. Los pasos son muy intuitivos. Simplemente selecciona Procesamiento de Transacciones Autónomo en la pantalla del menú de la Base de Datos de Oracle como se muestra a continuación y luego haz clic en el botón Crear Base de Datos Autónoma. Puedes tomar todas las opciones por defecto y simplemente proporcionar una contraseña de usuario administrador.
Opción gratuita de base de datos Oracle
Puedes ir aquí para configurar la Base de Datos Oracle Free 23c.
Usar la imagen de contenedor es muy sencillo. Simplemente puedes ejecutar la siguiente línea, reemplazando -e ORACLE_PASSWORD=Welcome12345
con una contraseña de tu elección y reemplazando -v oracle-volume:/somedirectory
con una ubicación de directorio (o omitiéndolo por completo si solo deseas tener una base de datos en memoria). Observa el parámetro --add-host docker.for.mac.host.internal:host-gateway
que permite realizar llamadas desde el contenedor. Esta es la configuración para Mac y será diferente si se ejecuta en un sistema operativo diferente.
docker pull
container-registry.oracle.com/database/free:latest; docker run --add-host docker.for.mac.host.internal:host-gateway -e ORACLE_PASSWORD=Welcome12345 -v oracle-volume:/somedirectory container-registry.oracle.com/database/free:latest
Configurar SQLcl (o Database Actions) y Conectarse
Si estás utilizando una base de datos en la nube, puedes trabajar con SQL y JavaScript haciendo clic en Database Actions y luego en SQL en la consola de OCI para administrar la base de datos en la nube.
También puedes instalar SQLcl para administrar cualquiera de las bases de datos/opciones mencionadas siguiendo los siguientes pasos:
-
Descarga e instala desde esta ubicación. Esto proporcionará un ejecutable
[SQLcl_INSTALL_DIR]/bin/sql
que utilizaremos para administrar la base de datos. Para mayor comodidad, puedes agregar[SQLcl_INSTALL_DIR]/bin
a tu PATH. -
Inicia sesión reemplazando
[SQLcl_INSTALL_DIR]
con la ubicación de tu SQLcl y reemplazandoWelcome12345
por el que proporcionaste comoORACLE_PASSWORD
al crear la base de datos.
Aquí tienes un ejemplo cuando utilizas una instalación local (por ejemplo, la imagen del contenedor de Oracle Database Free):
Y aquí tienes un ejemplo cuando utilizas una base de datos en la nube (por ejemplo, Oracle Always Free Autonomous):
Crear una Billetera
Crea una billetera para guardar el certificado para llamadas SSL/HTTPS realizadas desde JavaScript en la base de datos a Hugging Face.
Vamos a crear el archivo PEM para el certificado SSL de la API de Hugging Face, guardarlo en una billetera, subir la billetera (específicamente el archivo ewallet.p12) a la base de datos e indicar a la base de datos que lo utilice para las llamadas HTTPS. Específicamente, estaremos indicando al paquete UTL_HTTP mapeado/utilizado por el comando fetch de JavaScript en la base de datos de Oracle que lo utilice para las llamadas HTTPS.
1. Primero, obtén el certificado SSL de Hugging Face (api-infeerence.hugging.face.co:443) y guárdalo en un archivo PEM utilizando el siguiente comando.
2. Ejecuta los siguientes comandos en el prompt de SQLcl para crear una billetera, agregar el archivo PEM a ella y verificar mostrando los resultados. El argumento -cert
apunta al archivo PEM que acabas de crear anteriormente.
3. Ahora tienes un directorio de billetera que contiene un archivo ewallet.p12 que contiene el certificado de la API de Hugging Face (pem). Si aún no lo has hecho, abre otra ventana de terminal, clona o descarga los repositorios src (vinculados al comienzo de este artículo), cd al directorio raíz (huggingface-javascript-oracle) y copia el archivo ewallet.p12 en el directorio src/main/resources. En otras palabras:
4. Vuelve a la terminal de SQLcl y ejecuta/instala el archivo sql/writefile.sql desde los repositorios src.
5. Esto instalará el procedimiento almacenado write_file que llamaremos desde una pequeña utilidad de Java que subirá nuestro ewallet.p12 a la base de datos para utilizarlo en las llamadas HTTPS. En la terminal de los repositorios src (nuevamente desde el directorio raíz (huggingface-javascript-oracle)), ejecuta el siguiente comando, reemplazando los valores de conexión de la base de datos según corresponda. Por ejemplo, en el caso de la base de datos de la imagen del contenedor Oracle Free:
Deberías ver una salida como HuggingFaceFromOracleDatabaseApplication ewallet.p12 wallet uploaded to DATA_DUMP_DIR
.
6. Vuelve a la terminal de SQLcl y ejecuta el siguiente comando para obtener la ubicación de DATA_DUMP_DIR
donde se cargó el archivo ewallet.p12.
Deberías ver una salida como la siguiente.
7. sql/create_aijs_acl.sql instruirá a la base de datos (paquete UTL_HTTP) para utilizar el certificado en ewallet.p12 para realizar llamadas HTTPS al host mencionado en el principal aijs. Reemplaza los dos valores de wallet_path
en este archivo con el que se devolvió de la consulta anterior /dba_directories y reemplaza el valor [WALLET_PASSWORD]
.
wallet_path => 'file:/opt/oracle/admin/FREE/dpdump/FB9997ED60890BBDE0536402000AF33F',
[...]
'file:/opt/oracle/admin/FREE/dpdump/FB9997ED60890BBDE0536402000AF33F', '[WALLET_PASSWORD]'
8. Ahora ejecuta los siguientes archivos SQL para crear el usuario aijs
, sus concesiones necesarias y ACLs (ten en cuenta que estos se pueden ajustar aún más para una mejor seguridad).
9. Ahora conecta al usuario y crea una tabla para almacenar los resultados de la llamada a Hugging Face.
Ahora todo está listo para ejecutarse.
Ejecutar la aplicación y gestionar los resultados
Finalmente, ejecuta la consulta HuggingFace
desde el código JavaScript en la base de datos:
Luego, verifica los resultados JSON almacenados en la tabla haciendo una consulta SQL.
Al observar el código que acabamos de ejecutar, podemos ver el fragmento de JavaScript:
Los parámetros útiles y la información de depuración para Hugging Face se pueden encontrar en la documentación.
Los resultados ahora se pueden consultar, analizar, etc. utilizando SQL o JSON (simultáneamente, gracias a la nueva funcionalidad de dualidad JSON), REST o incluso la API de MongoDB.
Oracle Database es la base de datos perfecta para la Inteligencia Artificial por varias razones, particularmente porque es una base de datos vectorial con capacidades como las siguientes ya disponibles hoy:
- Tipos de datos nativos para representación y almacenamiento vectorial: RAW, BLOB, JSON
- Almacén de columnas en memoria para almacenar y buscar incrustaciones vectoriales con núcleos SIMD para un rendimiento increíble
- Marco de indexación extensible para crear índices específicos del modelo de datos (por ejemplo, texto, espacial)
- APIs de aprendizaje automático nativas de Oracle: modelado, clasificación, puntuación, agrupación, etc.
- DMLs, carga paralela, particionamiento, compresión avanzada, consulta paralela, RAC, fragmentación, etc.
También es posible llamar a Oracle OCI AI y otros servicios desde dentro de la base de datos de Oracle.
Conclusión
El artículo explicó cómo llamar a las APIs de Hugging Face desde dentro de la base de datos de Oracle utilizando JavaScript, demostrando así una combinación poderosa de características perfectamente adecuada para una amplia gama de soluciones de IA y amigable para los desarrolladores de JavaScript.
Algunos otros blogs relacionados con JavaScript en la base de datos, en general, el Motor MultiLingüe (MLE) que lo hace posible, etc. se pueden encontrar en las publicaciones de Martin Bach y esta publicación sobre la importación de módulos JavaScript ES en 23c.
Espero cualquier comentario o pregunta que puedas tener y realmente agradezco tu tiempo de lectura.
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Investigadores de la Universidad de Pekín presentan ChatLaw un modelo de lenguaje legal de código abierto de gran tamaño con bases de conocimientos externas integradas.
- 5 Idiomas mejor pagados para aprender este año
- Investigadores de Stanford presentan HyenaDNA un modelo genómico de base de largo alcance con longitudes de contexto de hasta 1 millón de tokens a una resolución de nucleótido único.
- Aprendizaje Automático Hecho Intuitivo
- Guía para principiantes para construir tus propios modelos de lenguaje grandes desde cero.
- Simplifica la creación y mantenimiento de DAG en Airflow con Hamilton en 8 minutos
- Conoce Magic123 Un novedoso proceso de conversión de imagen a 3D que utiliza una optimización en dos etapas, de áspero a refinado, para producir geometría y texturas 3D de alta calidad y alta resolución.