Resumen
- Analiza HCL Informix VectorBlade para el almacenamiento y la búsqueda vectoriales nativos.
- Muestra cómo crear flujos de trabajo RAG con datos operativos.
- Sirve de puente entre las bases de datos tradicionales y las aplicaciones modernas de IA generativa.
- Ofrece asesoramiento especializado por parte de arquitectos y estrategas de Informix.
Capítulos
Hola a todos y gracias por conectaros a este seminario en línea. Me llamo JC y soy arquitecto jefe de Informix. Para aquellos que no me conozcan, empecé a trabajar en Informix en 1991, una época mágica en la que los dinosaurios vagaban por la Tierra.
Me contrataron para el servicio de atención al cliente, no como programador. Así que, cuando más tarde pasé al departamento de desarrollo, ya había pasado por todos los niveles del servicio de atención al cliente. Obviamente, mi trabajo ahora consiste en centrarme en la innovación.
Pero me gusta pensar que, después de pasar buena parte de mediados de los 90 con un buscapersonas en la cadera, recuperando sistemas caídos a todas horas, tanto de día como de noche, realmente me importa la calidad del software tanto como me importa la innovación. Una de las principales innovaciones que introdujo Informix por aquel entonces fue la extensibilidad. De las cuatro grandes bases de datos —Informix, Oracle, DB2 y Sybase—, Microsoft aún no era el actor importante en el que se convertiría un par de años más tarde.
Pero, de esos cuatro, IVS fue realmente el primero en permitir que un desarrollador externo creara sus propios tipos de datos y su propio código en C o Java para que se ejecutara dentro del servidor como un elemento de pleno derecho. Llamábamos «datablade» a cada conjunto relacionado de tipos definidos por el usuario y rutinas definidas por el usuario, y muchos desarrolladores sacaron el máximo partido a esta función. Nosotros también lo hicimos.
Creamos varios «datablades» propios que siguen estando disponibles y son muy populares 30 años después. Cuando descargues IVS en 2026, recibirás junto con él un «datablade» básico de búsqueda de texto, un «datablade» geoespacial y un «datablade» de series temporales. Ahora, a principios de este año, nos propusimos convertir IVS en un lugar ideal para almacenar y utilizar de forma nativa vectores, un tipo de datos complejo que, aunque técnicamente no es nuevo, sí lo es su importancia para el mundo.
Y enseguida nos dimos cuenta de que la mejor forma de hacerlo era aprovechando nuestra propia tecnología de extensibilidad. Así que, cinco meses después, aquí estamos. Lo hemos conseguido.
Y hoy presentamos el HCL Informix Vector Blade. Para empezar, quiero aclarar que este blade no funciona con un backend de IBM Informix. Solo es compatible con HCL Informix, y no es compatible con ninguna versión del servidor anterior a la 15.0.1.
Más adelante os diré cuál es exactamente la versión mínima que recomendamos. Mientras tanto, contamos con un equipo que está deseando presentároslo, así que vamos a empezar. Contamos con Jean George-Perrin, estratega de datos, «champion» de IBM y «champion» de Informix desde hace mucho tiempo —conocido como JGP—, para que nos hable de qué son los vectores y por qué son tan útiles en las aplicaciones de inteligencia artificial.
A continuación, intervendré para hablar del poder que nuestra herramienta te ofrece en este nuevo mundo, y contaremos con una demostración a cargo de Scott Norris, ingeniero de campo de Informix y un tipo excelente en todos los sentidos. Ahora bien, mientras se desarrolla todo esto, no dudéis en hacer preguntas, y el equipo hará todo lo posible por responderlas en directo. Utilizad la función de preguntas y respuestas de Zoom y su ventana en lugar del chat, si no os importa, porque es ahí donde las buscaremos.
Así que, gracias de nuevo por acompañarnos, y JGP, adelante, por favor. Muy bien.
Hola a todos. Yo también llevo ya un tiempo en el mundo de Informix. ¿De acuerdo?
Bueno, no desde hace tanto tiempo como JC, y probablemente tampoco de una forma tan destacada como él, pero empecé mi andadura con Informix allá por 1997 en una empresa llamada 4js Development Tools. Y todo empezó... Algo que me gusta contar sobre Informix es que, antes de eso, solo tenía conocimientos de bases de datos a nivel universitario, y las odiaba de verdad. Pero el karma se encargó de que acabara enganchándome.
Así que, cuando me incorporé a Actian hace un año, casi día por día, ha sido un momento realmente interesante volver a formar parte de esta fantástica familia de Informix. Y me alegra mucho ver que este seminario en línea una asistencia bastante buena para ser la 1:00 de la madrugada en Sídney.
Vale. Entonces, ¿por qué utilizamos vectores? Vale.
Así que la idea general es que los vectores son los que determinan la similitud, y esta es la mejor forma que hemos encontrado para hacerlo, al menos por ahora, a la hora de comparar cosas diferentes. ¿De acuerdo? Comparar textos o, por ejemplo, que un cachorro es un perro.
Y este es un tipo de similitud que debemos tener en cuenta para comprender mejor las indicaciones, las preguntas y el enfoque semántico de la IA. Así pues, en realidad hay dos formas de hacerlo. Los algoritmos en sí mismos, como veremos, no son nuevos.
Y siempre es lo mismo: se dice que el big data permite hacer más análisis. Ahora tenemos la potencia de cálculo necesaria para aplicar la IA tal y como siempre habíamos soñado. ¿De acuerdo?
Así que, en realidad, hay dos formas de hacerlo. La forma actual, o la más habitual, consiste en hacerlo en una base de datos NoSQL, es decir, instalar algún tipo de base de datos vectorial que hay que descargar, instalar y gestionar por separado. Es una solución independiente.
Hay que crear y mantener flujos de datos, y todos sabemos que estos son, por naturaleza, frágiles. Hay datos duplicados. Hay que aprender a manejar un nuevo sistema y un nuevo modelo de seguridad para esas bases de datos.
Y, por supuesto, como parte del ciclo de vida de todo eso, hay que hacer copias de seguridad y, por supuesto, hay que aprovisionar la infraestructura. Así es como se está haciendo ahora mismo. O bien te fías de lo que tienes.
Y si ahora utilizas Informix, probablemente sea porque ya confías en él desde hace mucho tiempo, y puedes realizar exactamente las mismas operaciones que cuando utilizabas ese motor. ¿De acuerdo? Esa es una de las ventajas de lo que JC acababa de comentar sobre estos tipos opacos, que realmente forman parte de nuestra estrategia.
Siguiente diapositiva. Bueno, todos sabemos, vale, todos sabemos que la IA es complicada, que no es fácil cuantificar el retorno de la inversión en IA. Además, cuando salió ChatGPT, nos cautivó esa magia de «hago una pregunta y obtengo una buena respuesta».
Le pido a «code code» que genere algo de código y obtengo buenas aplicaciones. Pero cuando se trata de los datos de la empresa, del conocimiento de la empresa, la verdad es que resulta muy difícil conseguir algo, ¿vale? Y esas cifras dan un poco de miedo.
¿Vale? Ya has visto ese estudio del MIT que dice que la IA general no genera ningún retorno de la inversión en el 95 % de los casos. Ya has visto que McKinsey afirma que implementar un agente es muy difícil.
Ya ves que Gartner afirma que el 40 % del programa se abandonará, ¿vale? Así que realmente hay muchos riesgos en torno a esto. El reto está ahí: ¿de verdad quieres añadir una nueva base de datos o una nueva estrategia de bases de datos además de todo eso?
Así que ese es precisamente el tipo de preguntas que te puedes plantear, ¿vale? Y si nos fijamos en el iceberg, ese iceberg que todos hemos visto... Pues bien, el 20 % de los datos es estructurado, y esa es una estimación que Gartner lleva mucho tiempo barajando.
Y el 80 % de los datos no estructurados. ¿De acuerdo? Siempre ha existido el mito de que podríamos transformar los datos no estructurados en datos estructurados, pero eso no está ocurriendo, ¿de acuerdo?
Y la cuestión es que nadie lo está haciendo. Así que una forma de hacerlo es introducir todos esos elementos no estructurados —todo ese texto, imágenes, etc., no estructurados— en una base de datos en la que puedas, sin problemas, solicitar que se analicen, igual que harías con un SQL normal. ¿De acuerdo?
Así que ese es también uno de sus puntos fuertes. Y, como decía JC, la tecnología BLADE, que ha sido el núcleo de Informix, y el diseño de la arquitectura han permitido dar soporte a muchos modelos diferentes. ¿De acuerdo?
Recuerdo que se dedicaron muchos esfuerzos a las series temporales, y eso hizo que Informix se convirtiera en una opción muy popular en el sector de las telecomunicaciones. O incluso que Informix fuera uno de los primeros motores en admitir XML de forma nativa. Eso fue cuando el XML estaba de moda.
A mí me sigue gustando el XML. Así que todo eso significa, en realidad, que no estás eligiendo una base de datos basándote en la tendencia actual de algo. ¿De acuerdo?
Algo así como: «Vaya, vamos a trabajar con datos vectoriales, así que vamos a crear una nueva base de datos para datos vectoriales». «Vaya, vamos a trabajar con datos relacionales. Vamos a crear una nueva base de datos para datos relacionales». ¿De acuerdo? Así que realmente estamos pudiendo sacar partido de los activos existentes, de los datos existentes sin necesidad de moverlos, etcétera.
Por eso, en realidad, ahora puedes disponer de este nuevo octavo modelo de datos en esta arquitectura, la arquitectura de Informix. Y eso se ve claramente cuando lo comparas con otros productos, ¿verdad? Aquí acabo de comparar cuatro bases de datos muy populares.
Así que tenemos el nuestro, nuestro querido Informix, y luego están los demás, ¿vale? Bueno, siempre nos ha ido bien porque hemos sabido hacer bien las cosas técnicas y tecnológicas gracias a la arquitectura que teníamos. Vale.
Por ejemplo, cuando se habla de replicación, esta viene prácticamente de serie, sea cual sea el tipo. Y eso marca la diferencia. Así que sí, algunas son de código abierto, otras son gratuitas, pero no se trata solo del coste de la licencia, sino también de la carga cognitiva que supone entender cómo funcionan realmente esos nuevos productos.
Y, la verdad, si lo piensas bien, no es nada nuevo para Informix. Empezamos, y recuerdo haber probado Excalibur en su día. Probablemente, como muchas otras cosas de Informix, se adelantó a su tiempo y fue un poco antes de que incorporáramos los casos de uso reales y los casos de uso más populares.
Así que ahora, con esta nueva ola de indexación, hemos conseguido convertirnos en una arquitectura vectorial muy competitiva para tus necesidades de datos. Vale. Creo que lo hemos conseguido.
Es bastante impresionante y tengo muchas ganas de compartirlo un poco con vosotros y de entender un poco mejor los detalles técnicos que JC nos va a explicar y la demostración que Scott va a hacer justo después. Bueno, JC, te dejo la palabra. Vale.
Como ya he dicho antes, la extensibilidad es algo en lo que Informix destaca especialmente. Y, sinceramente, añadir un tipo de datos vectorial nativo a IDS me llevó aproximadamente un día. Se trata simplemente de un tipo de datos definido por el usuario (UDT) opaco de tamaño variable, que depende del número de dimensiones que tenga el vector.
Y se almacena internamente, más o menos como cabría esperar. Se trata de una matriz de números flotantes de cuatro bytes precedida por un número de dimensiones. La hemos dimensionado de tal forma que, actualmente, el número máximo de dimensiones es 1536, lo que coincide con el formato de tres vectores pequeños de incrustación de texto de OpenAI.
Pero si hay demanda de vectores más grandes, podemos actualizar fácilmente el tipo, que, por cierto, se llama Lvector_embedding. Tengo mucha curiosidad por ver cómo utiliza la gente esta herramienta y qué es lo que consideran que le falta. Tenemos clientes muy creativos e ingeniosos, así que no me cabe duda de que, de todos modos, tendremos que introducir algunas mejoras interesantes en los próximos seis meses.
Crear ese tipo de datos definido por el usuario (UDT) «Lvector_embedding» y unas cuantas funciones de apoyo. Se necesitan dos rutinas de conversión que transformen un tipo «VARCHAR» en un vector y viceversa. Se necesitan rutinas de entrada/salida, así como de envío y recepción de datos a través de la red.
Esa parte fue relativamente fácil. No sé si me llevó un día, pero probablemente fue algo así como un día. Lo que resulta un poco más complicado es indexar vectores con miles de dimensiones y realizar búsquedas en ellos de forma eficiente.
Así que, en lugar de reinventar la rueda, decidimos utilizar una biblioteca de código abierto para gran parte de este trabajo pesado. Google tiene una. También hay una de Microsoft.
Pero al final, nos decidimos por LanceDB. Ahora bien, LanceDB existe como producto de base de datos independiente, pero no es eso. También cuentan con una biblioteca en C que admite un amplio subconjunto de las funcionalidades del producto independiente, y eso es lo que incorporamos al blade.
Esta biblioteca ya está bastante consolidada y ofrece una gran variedad de tipos de índices, como IVF-flat, y una interesante combinación de IVF y HNSW. Y, por supuesto, los tres métodos principales de cálculo de distancias: el euclidiano, el coseno y el producto escalar. Así pues, combinamos la biblioteca LanceDB con una capa de interfaz propia, compuesta por unos 30 UDR, en una biblioteca compartida denominada Lvector.bld.
Como todos los blades, este se instala en el directorio «extend» de Informix. Una vez instalado el blade, siempre que estés utilizando la versión 15.0.1.10 o superior de HCL Informix, se registrará automáticamente. Puedes utilizarlo con la versión .9, quizá incluso con versiones anteriores.
Sin embargo, no se registrará automáticamente de forma tan fluida en esas versiones anteriores a la 15.0.1. Y lo que esto significa es que, cuando tu aplicación llama a uno de esos 30 UDR por primera vez para una base de datos concreta, el motor realiza automáticamente un par de acciones. En primer lugar, ejecuta el script «objects.sql», que forma parte del blade, y las definiciones de esos UDR y de la UDT de incrustación Lvector se añaden a los catálogos del sistema.
Entonces, si aún no tienes en ejecución un VP de clase Lvec, se creará uno automáticamente. Obviamente, te recomendamos que añadas una línea a tu archivo de configuración, una línea de clase VP que incluya una clase Lvec con el número de VP que desees tener en ejecución. Pero, al principio, probablemente no tendrás ninguno, por lo que te crearemos uno automáticamente.
A continuación, se carga la biblioteca compartida Lvector y se vincula dinámicamente a los VP de Lvec. En ese momento, tu blade ya está activo y listo para funcionar. ¿Y qué puedes hacer con él?
Bueno, he aquí una posible opción. Puedes crear una tabla de Informix que tenga una columna de tipo Lvector_embedding, por ejemplo. Esta tabla también tendrá una columna de tipo «serial» o «big serial» que identificará de forma única cada vector, y eso es bastante importante.
Además, tiene una columna de tipo varchar llamada «metadata». De hecho, la columna tiene que llamarse «metadata». En ella se puede almacenar cualquier texto, pero normalmente se suelen introducir categorías o palabras clave con las que se quiera filtrar.
Además, la tabla podría tener columnas que contengan cualquier objeto que se haya incrustado, como una columna de tipo varchar para un fragmento de texto o una columna de tipo blob, o algo por el estilo. Esto es solo un ejemplo sencillo. Así pues, puedes cargar miles o millones de vectores en esa tabla, identificando cada vector mediante la columna «serial».
A continuación, puedes indexar y realizar búsquedas en esos vectores para encontrar los vecinos más cercanos creando una columna o una tabla Lance y sincronizándola al instante con tu tabla de Informix. De este modo, se copiarán muy rápidamente todos los vectores, los ID y los metadatos a la tabla Lance, que luego podrá indexarse y consultarse. Puedes realizar búsquedas directamente en la tabla Lance.
Lo sentimos, Nick, queremos volver atrás. No estamos en la siguiente diapositiva. Lo sentimos.
Retrocede un poco más. Una vez más. Vale.
Pasemos a la siguiente diapositiva, por favor. Aquí es donde estamos. Aquí es donde estamos.
Así pues, puedes realizar búsquedas directamente en la tabla «Lance», o bien, por supuesto, unir esa tabla con la tabla tradicional de Informix o con tantas tablas de Informix como desees para recuperar, por ejemplo, los X vecinos más cercanos a un vector determinado, además de cualquier texto, imagen u otro objeto asociado a dichos vecinos. Puedes realizar consultas híbridas. De hecho, puedes realizarlas a varios niveles.
Por ejemplo, la tabla Lance almacenará los metadatos junto con los vectores, como ya he dicho, y estos metadatos pueden, a su vez, ser indexados y utilizados para filtrar. También puedes filtrar por una o más columnas de tu tabla de Informix si estás realizando una unión. El objetivo de esto sería obtener los 10 vecinos más cercanos a un vector basándose tanto en la semántica como en algunas palabras clave, por ejemplo, pero luego recuperar esa lista de vecinos filtrando según lo que se desee de la tabla o tablas de Informix.
Este proceso de refinamiento mediante consultas híbridas puede reducir significativamente las «alucinaciones» de la IA —que, como sabemos, son un problema— y resulta muy sencillo con este Vector Blade. Entonces, ¿de dónde se obtienen todos estos vectores? ¿En qué parte de la aplicación se lleva a cabo la incrustación?
Bueno, eso depende de ti. Puedes aportar tus propias representaciones, e IDS se encargará encantado de indexarlas, buscarlas y almacenarlas junto con cualquier objeto asociado —como imágenes, sonido, texto o lo que sea—, tal y como lo ha hecho tradicionalmente. Pero, para mayor comodidad, también lo hemos incluido en el blade, un UDR llamado «L vector_embed», que toma un varchar como argumento, se conecta a OpenAI, realiza la incrustación de esa cadena y devuelve un vector de 1.536 dimensiones.
El único requisito previo es que dispongas de una clave de API de OpenAI y que facilites dicha clave a IDS mediante un nuevo parámetro de configuración. Siguiente diapositiva, por favor. A continuación, te mostramos un ejemplo ilustrado de un caso de uso específico de RAG para el «blade».
Tu organización cuenta con un montón de documentos confidenciales. Pueden ser especificaciones técnicas, documentos sobre políticas internas o cualquier cosa que sea importante para ti o para tu organización y que no quieras que se difunda en Internet. Introduces esos documentos en una aplicación que divide el texto en fragmentos, lo que significa que un modelo entrenado divide el documento en secciones superpuestas.
A continuación, cada fragmento se integra en un modelo de tu elección, y utilizas Vector Blade para almacenar e indexar los vectores resultantes junto con sus fragmentos en IDS. Siguiente diapositiva, por favor. Ahora es el momento de realizar búsquedas en esos vectores.
Supongamos que un usuario escribe una consulta en lenguaje natural en tu aplicación, que integra dicha consulta utilizando el mismo modelo. Pasas el vector resultante a IDS y solicitas, por ejemplo, los 10 vecinos más cercanos. No quieres que te devuelva vectores.
Lo que quieres son identificadores vectoriales, que luego puedes utilizar para encontrar los fragmentos asociados en una tabla de Informix. A continuación, pasas esos fragmentos de texto a un modelo de lenguaje grande (LLM), que da formato a la respuesta, la cual se muestra al usuario, algo así. Siguiente diapositiva, por favor.
Ahora bien, lo mejor de esta «blade», como ya ha mencionado JGP, es que no es más que una parte totalmente integrada del conjunto de IDS. Todas las operaciones que he descrito aquí podrían estar teniendo lugar en un rincón de tu base de datos de producción sin afectar al rendimiento de ninguna otra tarea de producción. No necesitas una base de datos independiente.
Todos tus datos relacionales pueden sumarse a la diversión, y todos se llevan bien. Siguiente diapositiva, por favor. Esto es lo que puedes hacer para empezar.
Es de suponer que ya tienes instalado y en funcionamiento HL Informix 15.0.1.10 o una versión superior, y que has descargado el archivo TAR del blade. En realidad, se trata simplemente de un archivo TAR que se instala en Informix para ampliar sus funciones. Hay que configurar algunas cosas, como tu clave API de OpenAI, si vas a crear representaciones embebidas utilizando el blade.
A continuación, debes registrar el blade en tu base de datos y ya estás listo para empezar. Puedes registrar el blade manualmente o dejar que se registre automáticamente, como ya he mencionado antes. En el directorio «Informix Direct Extend», encontrarás un subdirectorio llamado «samples», donde hemos incluido algunos scripts SQL de ejemplo que puedes consultar e incluso ejecutar.
Y en ese momento, podrías empezar a experimentar con los aproximadamente 30 UDR utilizando el acceso a la base de datos. A partir de ahí, puedes empezar a escribir tu aplicación. Siguiente diapositiva, por favor.
Se trata, pues, de un diagrama de flujo de trabajo más detallado que plantea varios aspectos adicionales. Antes de poner en marcha tu aplicación, probablemente ya hayas importado una gran cantidad de datos. Esa fase se muestra ahí abajo.
Has creado vectores para texto e imágenes y has cargado esas representaciones, junto con sus objetos asociados, en Informix mediante el blade. A continuación, has indexado los vectores. Ahora bien, cuando creas un índice en una tabla Lance que contiene vectores, eso no convierte la tabla en estática.
Puedes insertar y eliminar vectores sin ningún problema, y tus búsquedas seguirán utilizando el índice. Así pues, tras la fase de ingestión, inicias tu aplicación y un comprador busca un producto utilizando una descripción en lenguaje natural en lugar de un nombre de producto específico. «Muéstrame las bicicletas de montaña más baratas que tengan frenos de disco», por ejemplo.
Esa consulta está integrada en el modelo que hayas elegido. A continuación, el vector resultante se utiliza en una consulta de red neuronal artificial (ANN) en Informix, que devuelve los ID de los vecinos más cercanos que haya solicitado tu aplicación. Esos ID se utilizan para realizar una unión con el fin de encontrar los elementos más relevantes de tu catálogo y, a continuación, la lista se ordena por coste.
En teoría, todo eso se puede hacer en una sola consulta híbrida. A continuación, los resultados se envían al usuario, aunque también se podría utilizar un modelo de lenguaje grande (LLM) para dar formato a los resultados y ampliarlos antes de mostrarlos. Eso es más o menos lo que tenemos, y ahora Scott está listo para mostraros una demostración que simula lo mismo.
Adelante, Scott. Muy bien.
Gracias, JC. Muy bien. Voy a compartir mi pantalla.
No. Pasa a la siguiente... De hecho, Nick, pasa a la siguiente diapositiva. Lo siento.
De acuerdo. Como ha mencionado JC, queremos asegurarnos de que estamos utilizando Informix 15.01.10 o una versión superior. Por el momento, hemos realizado numerosas pruebas en Red Hat Linux.
Tienes que ir a tu cuenta de OpenAI y crear una clave. La gente pregunta si eso tiene algún coste. Y puedes conseguir una clave gratuita.
Creo que pagué unos 10 dólares, y por ese precio te dan un montón de incrustaciones. Asegúrate de tener mucho espacio. A medida que avanzábamos en este proceso, me topé con esos dos gigabytes.
Así que sería preferible que tuviera dos gigabytes o más. Y luego tu archivo. Siguiente diapositiva.
De acuerdo. Como ha mencionado JC, para llevar esto a cabo, lo que hay que hacer es que nos pidáis el archivo TAR con las incrustaciones vectoriales de las palas. Exportáis todos estos comandos a vuestro shell y, a continuación, en vuestro on-config, precargáis toda esta información.
Y luego, a medida que vayamos avanzando, registrarás el motor. Así que adelante, pasa a la siguiente diapositiva. Y aquí tienes, de nuevo, un par de ejemplos de scripts SQL.
Lo anotaré. Estamos revisando esto, así que, por favor, no os ciñáis al pie de la letra a estas diapositivas. Por eso, os enviaremos una presentación actualizada más adelante.
Siguiente diapositiva. Y un par de ejemplos generales sobre cómo realizamos algunas de las incrustaciones. De nuevo, si ves alguno de los UDR, empieza por el vector L, un guión bajo y, a continuación, el comando correspondiente.
Muy bien. Y la siguiente diapositiva. Y la siguiente diapositiva.
Y ahora voy a compartir esa demostración. Vale, voy a compartir toda mi pantalla aquí. ¿Lo veis todos?
Vale. Gracias. Sí.
Muy bien. En primer lugar, hemos mencionado que disponemos de varias muestras relacionadas con la pala. Así que me gustaría ser claro con todos y que echéis un vistazo a algunas de las muestras que hemos preparado.
Así que, básicamente, para configurar el blade vamos a crear una base de datos en la que introducir toda nuestra nueva información. Vamos a ejecutar la instrucción «prepare». Esto registra el blade para su uso.
Y luego repasaremos varias sentencias «CREATE». A ver, voy a hacerlo. Así que vamos a ponernos manos a la obra y hacerlo.
Que todo el mundo cruce los dedos para que los dioses de las bases de datos se porten bien conmigo hoy. Como veréis, tenemos un par de bases de datos aquí, así que vamos a seleccionar una y, a continuación, vamos a ejecutar algunos de nuestros ejemplos. Lo primero es simplemente la configuración.
Así que estamos ejecutando la configuración, y vamos a seguir adelante con ello. Básicamente, se trata de introducir toda la información en el blade, registrarlo y dejarlo todo listo. A continuación, voy a configurar mi clave; y, de nuevo, se trata de la clave de OpenAI.
Puedes hacerlo desde tu archivo de configuración. Lo que he observado es que cada vez que he creado una nueva base de datos, siempre he tenido que restablecer esa clave o asegurarme de que esté asociada. Así que voy a asociar esa clave y voy a ejecutar eso.
Al hacerlo, la tarjeta queda automáticamente registrada para su uso. Así que ya estamos listos para usarla. Una de las cosas que acabamos de hacer es configurar todos los UDR en la tarjeta.
Pues vamos a echarle un vistazo. Claro. Gracias, dioses de las demos.
Falta un espacio después de la palabra «from». Sí, vale. La palabra «from».
Ah, gracias. ¿Y dónde, además? Vaya.
Vale, pues... Creo que se ha estropeado el ajuste de línea. Sí. Así es como se ve en tiempo real, el código SQL de depuración de... Ah, sí.
Esto es lo que podemos hacer aquí para ganarnos la vida. Muy bien. Básicamente, esto nos va a mostrar todos los LDR asociados a esta pala.
Como ha dicho JC, tenemos varias cosas ahí: las típicas de crear tablas, compilar y sincronizar. Así que ya no estás compartiendo tu pantalla, Scott. ¿En serio?
Vale. Ya vemos tu preciosa carita. Hmm.
Veo a Scott. Veo su pantalla. Sí.
Vale. Creo que está intentando enseñarnos su demostración. No, ¿ves la pantalla?
¿Entonces no ves la pantalla? Sí, veo el acceso a la base de datos y... Vale. Sí.
¿Ah, en serio? Sí. Yo no lo veo así.
JC, me estás dejando desconcertado. Supongo que... lo siento. Por alguna razón, solo te veo a ti.
Vale. No te preocupes. Vale.
Pues vamos a salir de aquí. Y vamos a hacer una demostración básica. Básicamente, lo que vamos a hacer aquí es crear una tabla.
Vamos a crear una tabla de lances o una tabla de vectores. Se llama «Demodocs». Y solo una advertencia: si las ejecutas y sueles hacerlo una y otra vez, si eliminas la base de datos, no se eliminarán ninguna de las tablas de vectores, así que tendrás que eliminarlas también, para que puedas empezar de cero.
Pero esas son cosas con las que me he topado a medida que avanzábamos en esto. Muy bien. Así que ya existe.
Y allá vamos. A ver qué tal. ¡Venga!
Después de estar jugando con todo esto y tú... sin recoger lo que he ensuciado. Vale.
En fin. Lo que esto nos ha permitido, en realidad, es crear varias entradas vectoriales en nuestra tabla vectorial. Así que tenemos un par de palabras sobre números, y estamos haciendo eso y guardando nuestro trabajo.
Así que, si seleccionamos algo de esa tabla, deberíamos ver nuestros puntos de entrada más cercanos, que en este caso son solo tres. Ahora, claro, voy a volver a estropearlo todo, ya que está ahí. Genial.
Vale. Pues ahí se queda todo lo de prepararlo con antelación y... Sí.
A ver. Sí que lo tengo aquí abajo. Lo siento. Ese es el otro.
Vale. Espera un momento. Bueno, como ya he dicho, yo...
Sí. Todo esto está creado, por eso me da error. Vale.
Bueno... Una cosa que resulta interesante señalar mientras Scott está haciendo eso es que, en este caso, Scott no está creando su propia integración, así que ahí no se utilizan las claves de OpenAI. Vale, entonces... Correcto.
Así que, en este caso, por eso ves el vector y ves esa cadena limitada ahí. Exacto. Y no hace falta utilizar OpenAI en absoluto para usar la herramienta.
Es que... Sí... resulta más cómodo. Mm-hmm.
Ninguna de estas opciones me funciona. Entonces, ¿qué hacemos? Pido disculpas por ello.
Me he quedado en una situación un poco rara. No. Mesa.
¿Qué está pasando? Vale, la he fastidiado por completo. Bueno, sí, la verdad es que la he fastidiado.
Lo siento. DBA. Bueno, Scott, ¿no hay ninguna forma de que nos hagas una demostración de DocuLens?
Sí, DocuLens no, porque el contenedor de DocuLens se ha dañado. Ah. Pues, a menos que pueda abrirlo rapidito, entonces podremos mostrarlo.
Quizá pueda. Déjame ver. Mientras tú lo compruebas, tendremos una demostración en la fiesta de Informix de Kim, ¿verdad?
Kim, si quieres, puedes mencionar en el chat tu próximo evento en Kuala Lumpur. Así estaremos preparados para cuando llegue. Sí.
La última semana ha sido una locura para ponerlo todo en orden aquí. Y, la verdad, el DocuLens lo muestra un poco mejor, pero... Lo estoy encendiendo y quizá pueda enseñároslo en un momento.
Mi servidor se está iniciando. Ya casi está listo. Tenemos esto, una demostración de un analizador de documentos en un contenedor, en un contenedor de Docker.
Así que lo estoy iniciando. Mientras JC lo inicia. En ese primer ejemplo, y repito, no estamos recurriendo a OpenAI, sino que estamos añadiendo todas estas instrucciones a nuestra tabla de vectores.
El comando que acabo de ejecutar va a seleccionar las tres filas más cercanas de esa tabla vectorial. Y, como solo hay tres, vamos a obtener, de nuevo, las tres respuestas aquí. Vale.
Bueno, voy a intentar compartir esto. Vale. Voy a dejar de compartirlo.
Como ya he dicho, soy nuevo en Zoom, así que ya veremos cómo sale esto. Zoom solicita un acceso directo. Aceptar.
Pantallas. Voy a compartir toda mi pantalla. ¿Podemos verla, JC?
Sí. Vemos Docker. Vale.
Bueno, como ya he dicho, tengo un contenedor en ejecución con un servidor Informix y el blade en marcha. Y esto es solo una pequeña demostración que uno de mis compañeros ha preparado rápidamente para utilizar el blade, y con la que puedo subir documentos. Así que voy a subir documentos desde...
A ver. Voy a probar con una carpeta. Supongo que se trata de documentos que son propiedad de tu organización.
En mi caso, tengo algunos scripts que he escrito y algunas especificaciones de diseño de alto nivel para funciones de Informix. Y esto solo pretende simular, en cierto modo, un caso en el que tienes documentos confidenciales que no quieres que se publiquen en Internet. ¡Ups!
No ha funcionado. Bueno, parece que mi suerte es parecida a la tuya, Scott. Déjame intentarlo una vez más.
Voy a probar con un documento individual.
Sí, si lo intentaras con una sola persona, funcionaría. O con un par de personas. Así que ahora mismo es...
Ah. Es posible que mi red no esté configurada correctamente. Supongamos eso por el momento.
Lo que hacía esta demostración, sin embargo, era cargar y dividir los documentos en fragmentos, vectorizar dichos fragmentos y, a continuación, permitir realizar consultas en lenguaje natural sobre ellos, y la verdad es que funciona bastante bien. Pero, por ahora, no puedo cargar los documentos, probablemente debido a un problema de red. Así que me temo que tendremos que dejarlo estar.
Pero pasemos a... Voy a dejar de compartir mi pantalla, y pasemos a una ronda de preguntas y respuestas. Tengo aquí algunas preguntas que Scott y yo vamos a responder.
Veo que hay algo de John. Sí, tenemos un par de preguntas de la ventana de preguntas y respuestas. Voy a responderlas en un momento.
Bueno, Scott, ¿puedes decirnos cuánto cuesta la Vector Blade? Probablemente sea una pregunta obvia que la gente se hará. Claro.
Así pues, Vector Blade es gratuito con Informix 15. Por lo tanto, no supone ningún coste. De acuerdo.
Y otra pregunta es: ¿qué versión de Informix es compatible con el Vector Blade? Ya lo he comentado un poco. Tiene que ser HL Informix, y tiene que ser la 15.01.
Ahora bien, recomendamos la versión 15.01.10 o superior, ya que es en esa versión donde hemos programado el registro automático. Puedes registrar manualmente la cuchilla con una versión anterior, pero es mucho más cómodo utilizar la que permite el registro automático. No funcionará con versiones más antiguas, como la 14.10 o la 12.10.
Y, por lo tanto, si utilizas una versión anterior, esa podría ser una razón de peso para actualizarla. Así que la siguiente pregunta es: ¿IBM Informix cuenta con esta función? Esa te la dejo a ti, Scott.
Sí. Por lo tanto, IBM Informix no cuenta con el «Vector Blade», ni permitiremos que se utilice dentro de IBM Informix. De acuerdo.
¿Hay algún tutorial sencillo que me permita probar las funciones de Vector Blade? Sí. Como ya he dicho, cuando instales el blade, debes descomprimir este archivo en Informix para ampliarlo, y allí encontrarás un subdirectorio llamado «samples» que contiene cuatro scripts de ejemplo que funcionan, te lo prometo.
Sí. Y cada vez son más complejas e interesantes. La primera, por ejemplo, solo detecta la cuchilla y hace algo muy rudimentario.
Para cuando llegues al número cuatro, ya estarás utilizando disparadores para insertar filas en tu tabla de Informix y sincronizarlas automáticamente con tu tabla de Lance, y eso es más interesante. Así que... Correcto. Siguiente.
Sí. Solo quiero decir que, sí, todas funcionan, porque las he probado esta mañana y anoche, y todas me funcionaban bien antes de la sesión de hoy. Sí.
Así es la vida, supongo. Bueno, Scott, ¿cómo puedo conseguir una licencia de evaluación? Vale.
Bueno, Nick, quizá quieras publicar esto en el chat, pero disponemos de una dirección de correo electrónico a la que puedes escribirnos para solicitar una licencia de prueba, y el mensaje llegará a la responsable de producto, Emily Taylor, y a mí mismo; nos pondremos en contacto contigo y pondremos en marcha el proceso. Vale. Estoy respondiendo a algunas preguntas aquí.
John preguntó: «¿Existe algún equivalente de HCL a IBM Informix Developer Edition?». Así que tenemos estas ediciones por parte de IBM, y no solemos tener ese mismo tipo de configuración por parte de HCL. Sí. Y la respuesta a esa pregunta es que no, no la tenemos.
Siempre utilizamos la versión de HCL Informix, que es la versión Advanced Enterprise, comparable a la de IBM. Pero HCL solo ofrece soporte técnico y comercializa esa única versión. De acuerdo.
Colin pregunta: «¿Afectarán las dependencias de código abierto a los ISV y a los OEM que puedan vender soluciones basadas en Vector Blade?». Me temo que esto va más allá de mis competencias. Obviamente, LanceDB, la biblioteca C que estamos utilizando, es una biblioteca de código abierto, y contamos con una licencia Apache estándar para dicha biblioteca. Scott, o cualquier otro miembro del panel, ¿sabéis si esto tiene algún efecto en la reventa?
No. No. No.
Tendremos que volver a hablar con Colin. Podemos quedarnos con eso y darle seguimiento. Espero de verdad que no.
Pero lo investigaremos. Sí, nos encargamos del soporte técnico del producto, ¿vale? Así que no vamos a externalizar el soporte técnico si forma parte del producto, ¿no?
Exacto. Sí. Sí.
Vale, no veo que haya más preguntas, así que... Ah, tenemos otra de John. «¿Cómo esperáis conseguir nuevos clientes de HCL Informix sin una edición para desarrolladores, centrada específicamente en Vector Blade, que parecería ser un gran factor diferenciador?». Voy a dejar que responda Scott a eso.
Sí, puedo encargarme de eso. Bueno, nos damos cuenta de que cuando hacemos... Dado que solo vendemos esa única versión, y cada usuario es diferente, hemos sido muy competitivos a la hora de asegurarnos de que podamos ofrecerte ese producto. Así que, ese es un tema en el que estaría encantado de ayudarte y comprender los matices de tus entornos.
Pero, como me ha dicho varias veces mi equipo directivo, no dejes que el coste te impida cerrar un trato. Así que... Y como ha señalado Kevin: «Esa es una promesa muy seria, Scott».
¿Vale? Ah, sí. Bueno, no te imaginas todo lo que tengo que hacer a la vez entre bastidores para que todo salga bien aquí.
Así pues, según ha dicho Emily, John Ritson ha afirmado: «Cualquier usuario interesado puede obtener una licencia de prueba gratuita durante un tiempo limitado. Pero lo que se puede probar es la HCL Informix Enterprise Edition». Eso está muy bien. Mm-hmm.
Pero es por tiempo limitado. Correcto. «¿Has probado esta hoja de datos en tu idioma nativo?» Ah, entonces quizá la clave esté en que no sea en inglés.
Esa es una pregunta muy buena. De hecho, JGP me hizo esa pregunta, y tenía la intención de probar con una indicación en francés, pero nunca llegué a hacerlo. No lo he probado.
Depende... Estamos utilizando el modelo de lenguaje grande (LLM) de OpenAI y su modelo de incrustación, y supongo que no es solo para inglés, pero no lo he probado. Es una pregunta muy buena. Tendré que probarlo.
Vale. Cuando leí la pregunta de Boyko, al oír lo de «lenguaje nativo», pensé en Informix 4GL o algo así. Sí.
Pues... supongo que funcionará con 4GL. Entonces... JGP, ¿no has probado el modelo de incrustación de OpenAI ni el LLM con francés, verdad?
No, no lo he hecho. Y estoy deseando probar la cuchilla en sí. Pero últimamente he estado viajando demasiado... Sí...
para hacer eso.
Pero es una de las cosas que más me apetece hacer de mi lista de deseos. Así que, Boyko, espero estar pronunciando bien tu nombre. Boyko ha dicho que quiere que se hable búlgaro.
Eso va aún más allá. No sabría cómo probarlo, pero es posible que funcione. Como hemos podido comprobar al utilizar estas herramientas de IA, a veces hacen cosas que no esperamos que hagan.
Lo hacen mejor de lo que esperábamos. Así que tendremos que probar con muchos idiomas diferentes. Parece que las preguntas se han ido calmando un poco por aquí.
Y, obviamente, aún tenemos que solucionar algunos fallos en nuestra demostración. Pero esperamos que os hayáis hecho una idea de lo que hace Blade, que os interese probarlo y que hayáis disfrutado de nuestro seminario en línea. Supongo que seminario en línea podemos dar por concluido el seminario en línea .
Gracias a todos por haber venido. Gracias. Adiós.
Nos vemos pronto. Y que te vaya bien...