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
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.
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.
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
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.
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:
$vector field
usado para armazenar embeddings de vetores.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.
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:
Vá para o Astra DB e crie um banco de dados vetorial.
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.
Aproveite o desenvolvimento!
Mais detalhes sobre como usar a API JSON podem ser encontrados na documentação.
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.