paint-brush
Aprovechando la nueva API JSON de Astra DB para crear aplicaciones de IA basadas en JavaScriptpor@datastax
391 lecturas
391 lecturas

Aprovechando la nueva API JSON de Astra DB para crear aplicaciones de IA basadas en JavaScript

por DataStax6m2023/09/20
Read on Terminal Reader

Demasiado Largo; Para Leer

Descubra esta nueva forma de proporcionar a la enorme población de desarrolladores de JavaScript acceso a la base de datos vectorial más potente del mundo, a través de una sencilla API.
featured image - Aprovechando la nueva API JSON de Astra DB para crear aplicaciones de IA basadas en JavaScript
DataStax HackerNoon profile picture


Uno de nuestros objetivos en DataStax es permitir que todos los desarrolladores, independientemente del lenguaje que utilicen, entreguen aplicaciones de IA a producción lo más rápido posible.


Nosotros capacidades de búsqueda vectorial recientemente agregadas a DataStax Astra DB , nuestra base de datos como servicio construida sobre Apache Cassandra de código abierto, para ayudar a los desarrolladores a crear aplicaciones de IA.

Cassandra es conocida por ser la base de datos más poderosa, escalable y lista para producción. Con la incorporación de la búsqueda vectorial, Cassandra y Astra DB se han convertido en una base fundamental para crear aplicaciones Gen AI de nivel empresarial. Pero también debemos asegurarnos de que esta poderosa tecnología sea accesible y fácil de usar para el conjunto más amplio de desarrolladores, independientemente de su idioma preferido o conjunto de habilidades.


Hoy damos un gran paso en esa dirección al brindar a la enorme población de desarrolladores de JavaScript acceso a la base de datos vectorial más poderosa del mundo, a través de una API simple: presentando la API JSON para Astra DB.


¡Conozca la API JSON!

En el mundo de JavaScript, las bases de datos de documentos ocupan un lugar destacado. No es de extrañar, ya que JSON es una notación nativa en JavaScript, por lo que la capacidad de almacenar y recuperar documentos JSON hacia y desde la base de datos acelera enormemente el desarrollo.


La nueva API JSON está diseñada para proporcionar una experiencia fluida a los desarrolladores de JavaScript que crean nuevas aplicaciones de IA. Nos propusimos garantizar que, si es un desarrollador de JavaScript, pueda iniciar una instancia de Astra DB y comenzar a codificar de inmediato utilizando paradigmas y marcos con los que esté familiarizado.


Exponer Astra DB como una base de datos de documentos proporciona múltiples mejoras en la experiencia del desarrollador:


  • Piensa en términos de objetos JSON, lo que le brinda una alineación natural con el ecosistema de JavaScript.

  • No hay ningún paso de modelado de datos, ya que la propia base de datos se encarga de ello. Simplemente guarda y recupera documentos.

  • Puede comenzar a desarrollar rápidamente y concentrarse en la lógica de la aplicación en lugar de en lo que sucede en el backend.


Integración con MongooseJS

También notamos que muchos miembros de la comunidad JavaScript trabajan con bases de datos de documentos a través de bibliotecas de modelado de datos de objetos (ODM), específicamente MongooseJS. MongooseJS es un marco popular para el modelado de objetos sobre bases de datos de documentos. Con más de 2 millones de descargas semanales de NPM y casi 3,5 millones de repositorios Github dependientes , no requiere presentación.


La nueva API JSON para Astra DB es totalmente compatible con MongooseJS. Esto significa que solo se necesitan un par de líneas de código para apuntar MongooseJS a una instancia de Astra DB:


 // Import MongooseJS. const mongoose = require("mongoose"); // Import the driver for Astra DB (shipped as a part of stargate.io). const { driver } = require("stargate-mongoose"); // Tell MongooseJS to use the Astra DB driver instead of the default one. mongoose.setDriver(driver); // Connect to Astra DB. await mongoose.connect(astraDbUri, { isAstra: true, });


Una vez conectado, puede utilizar las API de MongooseJS y Astra DB se encargará del trabajo pesado de almacenar sus documentos de manera eficiente, indexarlos y escalarlos cuando sea necesario.


Soporte de búsqueda de vectores

Aún mejor, al desarrollar con MongooseJS respaldado por Astra DB, obtiene acceso completo a Astra DB Vector, la única base de datos diseñada para búsqueda y actualización simultáneas de datos distribuidos y cargas de trabajo de transmisión con latencia ultrabaja, así como resultados vectoriales altamente relevantes que eliminar redundancias. Como resultado, obtiene la facilidad de uso y la familiaridad de MongooseJS, combinadas con el rico soporte vectorial y la escalabilidad de Astra DB. ¡Desarrollar aplicaciones de IA en JavaScript nunca ha sido tan fácil!


Echemos un vistazo a un ejemplo sencillo de cómo utilizar la búsqueda vectorial de Astra DB dentro de una aplicación MongooseJS. En este ejemplo, crearemos una colección de películas con sus descripciones de texto y alguna otra información, como título, año de producción y género. Además, le indicaremos a MongooseJS que queremos almacenar incrustaciones de vectores para las descripciones. Así es como se verá la definición del modelo:


 const Movie = mongoose.model( "Movie", new mongoose.Schema( { title: String, year: Number, genre: String, description: String, $vector: { type: [Number], validate: (vector) => vector && vector.length === 1536, }, }, { collectionOptions: { vector: { size: 1536, function: "cosine", }, }, }, ), );


Aquellos que estén familiarizados con MongooseJS encontrarán que este es un modelo típico de MongooseJS, excepto por dos piezas adicionales que permite el controlador de Astra DB:


  1. El $vector field que se utiliza para almacenar incrustaciones de vectores.
  2. El objeto collectionOptions.vector que le dice a Astra DB cómo indexar el campo de incrustación de vectores. Con el modelo anterior, puedes insertar documentos junto con las incrustaciones:


 await Movie.insert({ title: "In the Border States", year: 1910, genre: "Drama", description: "In the Border States is a 1910 American drama film...",// Generate embedding for the description, // for example by invoking the OpenAI API. $vector: embedding("In the Border States is a 1910 American drama film..."), });


Su aplicación ahora puede proporcionar la funcionalidad para ingresar una consulta de formato libre para buscar películas por sus descripciones. Para eso, usará el mismo modelo para generar una incrustación para la consulta del usuario y usará la búsqueda vectorial de Astra DB para encontrar las entradas más relevantes en la base de datos:


 await Movie.find({}) .sort({ $vector: { $meta: embedding("Something funny") } }) .limit(3);


Por supuesto, en muchos casos, la búsqueda vectorial por sí sola no es suficiente, ya que es posible que desees combinarla con filtrado basado en otros campos del documento. Por ejemplo, así es como puedes encontrar películas relevantes similares al ejemplo anterior, pero solo mirando dramas:


 await Movie.find({ genre: "Drama" }) .sort({ $vector: { $meta: embedding("Criminals and detectives") } }) .limit(3);


Con MongooseJS y Astra DB, no está limitado a operaciones CRUD simples. Puede acompañarlos con una búsqueda de relevancia utilizando vectores, o incluso combinarlos en potentes consultas de búsqueda híbridas.


Introducción a la API JSON

La nueva API JSON se encuentra actualmente en versión preliminar pública y está disponible en Astra DB para cualquiera que quiera probarla. Siga estos tres sencillos pasos para comenzar:


  1. Vaya a Astra DB y cree una base de datos vectorial.


  2. Una vez que la base de datos esté activa, cambie a la pestaña "Conectar", elija "JSON API" como su método preferido y siga las instrucciones.




  3. ¡Disfruta desarrollando!


Puede encontrar más detalles sobre cómo utilizar la API JSON en la documentación.

¿Que sigue?

Al presentar la API JSON, nuestra visión es clara: queremos que Astra DB sea la primera opción para los desarrolladores de JavaScript que crean aplicaciones de IA. Esto es solo el comienzo: estad atentos para futuras mejoras y adiciones.


¿Tiene preguntas, comentarios o tal vez está tan entusiasmado como nosotros? Envíenos un mensaje a [email protected] .


También publicado aquí.