paint-brush
Aproveitando a nova API JSON do Astra DB para criar aplicativos de IA baseados em JavaScriptpor@datastax
391 leituras
391 leituras

Aproveitando a nova API JSON do Astra DB para criar aplicativos de IA baseados em JavaScript

por DataStax6m2023/09/20
Read on Terminal Reader

Muito longo; Para ler

Confira esta nova maneira de fornecer à enorme população de desenvolvedores JavaScript acesso ao banco de dados vetorial mais poderoso do mundo, por meio de uma API simples.
featured image - Aproveitando a nova API JSON do Astra DB para criar aplicativos de IA baseados em JavaScript
DataStax HackerNoon profile picture


Um dos nossos objetivos na DataStax é permitir que cada desenvolvedor – independentemente da linguagem em que eles constroem – entregue aplicativos de IA para produção o mais rápido possível.


Nós recentemente adicionou recursos de pesquisa vetorial ao DataStax Astra DB , nosso banco de dados como serviço desenvolvido no Apache Cassandra de código aberto, para ajudar os desenvolvedores a criar aplicativos de IA.

Cassandra é conhecido por ser o banco de dados mais poderoso, escalonável e pronto para produção. Com a adição da pesquisa vetorial, Cassandra e Astra DB se tornaram uma base crítica para a construção de aplicativos Gen AI de nível empresarial. Mas também precisamos de garantir que esta poderosa tecnologia é acessível e fácil de utilizar para o mais vasto conjunto de programadores, independentemente da sua linguagem preferida ou conjunto de competências.


Hoje damos um grande passo nessa direção, fornecendo à enorme população de desenvolvedores JavaScript acesso ao banco de dados vetorial mais poderoso do mundo, por meio de uma API simples: introduzindo a API JSON para Astra DB.


Conheça a API JSON!

No mundo JavaScript, os bancos de dados de documentos são proeminentes. Não é nenhuma surpresa, já que JSON é uma notação nativa em JavaScript, portanto, a capacidade de armazenar e recuperar documentos JSON de e para o banco de dados acelera tremendamente o desenvolvimento.


A nova API JSON foi projetada para fornecer uma experiência de desenvolvedor tranquila para desenvolvedores de JavaScript que criam novos aplicativos de IA. Nosso objetivo é garantir que, se você for um desenvolvedor JavaScript, possa iniciar uma instância do Astra DB e começar a codificar imediatamente usando paradigmas e estruturas com os quais está familiarizado.


Expor o Astra DB como um banco de dados de documentos proporciona diversas melhorias na experiência do desenvolvedor:


  • Você pensa em termos de objetos JSON, o que proporciona um alinhamento natural com o ecossistema JavaScript.

  • Não há etapa de modelagem de dados, pois ela é feita pelo próprio banco de dados. Você acabou de salvar e recuperar documentos.

  • Você pode começar a desenvolver rapidamente e focar na lógica do aplicativo, e não no que está acontecendo no back-end.


Integração com MongooseJS

Também notamos que muitos membros da comunidade JavaScript trabalham com bancos de dados de documentos por meio de bibliotecas de modelagem de dados de objetos (ODM), especificamente MongooseJS. MongooseJS é uma estrutura popular para modelagem de objetos em bancos de dados de documentos. Com mais de 2 milhões de downloads semanais de NPM e quase 3,5 milhões de repositórios dependentes do Github , não requer uma introdução.


A nova API JSON para Astra DB é totalmente compatível com MongooseJS. Isso significa que são necessárias apenas algumas linhas de código para apontar o MongooseJS para uma instância do 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, });


Uma vez conectado, você pode usar APIs MongooseJS, e o Astra DB cuidará do trabalho pesado de armazenar seus documentos de maneira eficiente, indexá-los e dimensioná-los quando necessário.


Suporte para pesquisa vetorial

Melhor ainda, ao desenvolver com MongooseJS apoiado pelo Astra DB, você obtém acesso total ao Astra DB Vector, o único banco de dados projetado para pesquisa e atualização simultâneas em dados distribuídos e cargas de trabalho de streaming com latência ultrabaixa, bem como resultados de vetores altamente relevantes que eliminar redundâncias. Como resultado, você obtém a facilidade de uso e a familiaridade do MongooseJS, combinadas com o rico suporte vetorial e a escalabilidade do Astra DB. Desenvolver aplicações de IA em JavaScript nunca foi tão fácil!


Vamos dar uma olhada em um exemplo simples de como usar a pesquisa vetorial do Astra DB em um aplicativo MongooseJS. Neste exemplo, criaremos uma coleção de filmes com suas descrições em texto e algumas outras informações, como título, ano de produção e gênero. Além disso, instruiremos o MongooseJS que queremos armazenar embeddings de vetores para as descrições. Esta é a aparência da definição do 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", }, }, }, ), );


Aqueles familiarizados com o MongooseJS acharão que este é um modelo típico do MongooseJS, exceto por duas peças adicionais que o driver do Astra DB permite:


  1. O $vector field usado para armazenar embeddings de vetores.
  2. O objeto collectionOptions.vector que informa ao Astra DB como indexar o campo de incorporação de vetor. Com o modelo acima, você pode inserir documentos junto com os embeddings:


 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..."), });


Seu aplicativo agora pode fornecer funcionalidade para inserir uma consulta de formato livre para pesquisar filmes por suas descrições. Para isso, você utilizará o mesmo modelo para gerar um embedding para a consulta do usuário, e utilizará a busca vetorial do Astra DB para encontrar as entradas mais relevantes no banco de dados:


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


É claro que, em muitos casos, a pesquisa vetorial por si só não é suficiente, pois você pode querer combiná-la com a filtragem baseada em outros campos do documento. Por exemplo, aqui está como você pode encontrar filmes relevantes semelhantes ao exemplo anterior, mas apenas olhando para dramas:


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


Com MongooseJS e Astra DB, você não está limitado a simples operações CRUD. Você pode acompanhá-los com pesquisas de relevância usando vetores ou até mesmo combinar os dois em poderosas consultas de pesquisa híbridas.


Introdução à API JSON

A nova API JSON está atualmente em versão prévia pública e disponível no Astra DB para quem quiser experimentá-la. Siga estas três etapas simples para começar:


  1. Vá para o Astra DB e crie um banco de dados vetorial.


  2. Assim que o banco de dados estiver ativo, mude para a guia “Conectar”, escolha “API JSON” como seu método preferido e siga as instruções.




  3. Aproveite o desenvolvimento!


Mais detalhes sobre como usar a API JSON podem ser encontrados na documentação.

Qual é o próximo?

Ao apresentar a API JSON, nossa visão é clara: queremos que o Astra DB seja a primeira escolha para desenvolvedores JavaScript que criam aplicativos de IA. Este é apenas o começo – fique atento para novas melhorias e adições.


Tem perguntas, comentários ou talvez esteja tão animado quanto nós? Envie-nos uma mensagem para [email protected] .


Também publicado aqui.