EventoObtenha 50% de desconto no seu ingresso para MongoDB.local Londres em outubro 2. Use o código WEB50Saiba mais >>
Desenvolvedor MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Como criar um sistema RAG usando o Claude 3 Opus e o MongoDB

Richmond Alake15 min read • Published Aug 28, 2024 • Updated Aug 28, 2024
IAPandasPythonAtlas
SNIPPET
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty

Introdução

A Anthropic, fornecedora de grandes modelos de linguagem (LLMs), apresentou recentemente três modelos de última geração classificados na família de modelos Claude 3. Este tutorial utiliza um dos modelos Claude 3 em um sistema de geração aumentada de recuperação (RAG) alimentado pelo banco de dados vetoriais MongoDB. Antes de mergulhar na implementação do sistema de geração aumentada de recuperação, aqui está uma visão geral da versão mais recente da Anthropic:
Introdução da família de modelos Claude 3:
  • Modelos: a família é composta por Claude 3 Haiku, Claude 3 Sonnet e Claude 3 Opus, cada um projetado para atender a diferentes necessidades e aplicativos.
  • Benchmarks: os modelos Claude 3 estabeleceram novos padrões em AI, destacando-se em tarefas complexas, compreensão e raciocínio.
Funcionalidades e recursos:
  • Suporte multilíngue e multimodal: os modelos Claude 3 podem gerar código e texto em um idioma diferente do inglês. Os modelos também são multimodais, com a capacidade de entender imagens.
  • Janela de contexto longa: o modelo Claude 3 inicialmente tem uma janela de contexto de 200.000 tokens, com a capacidade de estender até um milhão de tokens para casos de uso específicos.
  • Recordação quase perfeita: os modelos demonstram funcionalidades excepcionais de recuperação ao analisar grandes quantidades de texto.
Considerações de design:
  • Atributos equilibrados: o desenvolvimento dos modelos Claude 3 foi orientado por três fatores principais: velocidade, inteligência e custo-benefício. Isso oferece aos consumidores uma variedade de modelos para aproveitar diferentes casos de uso que exigem a troca de um dos fatores por um aumento em outro.
Essa é uma atualização rápida sobre a versão mais recente do Anthropic. Embora o modelo Claude 3 tenha uma grande janela de contexto, um custo substancial ainda está associado a cada chamada que atinge os limites superiores da janela de contexto fornecida. O RAG é um padrão de design que utiliza uma fonte de conhecimento para fornecer informações adicionais aos LLMs combinando semanticamente a entrada da query com os pontos de dados dentro do repositório de conhecimento.
Este tutorial implementa um chatbot solicitado a assumir o papel de um analista de tecnologia de capital de risco. O chatbot é um sistema RAG ingênuo com uma coleção de artigos de notícias de tecnologia atuando como sua fonte de conhecimento.
O que esperar deste tutorial:
  • Obtenha insights sobre a construção de um sistema de geração aumentada de recuperação integrando os modelos Claude 3 ao MongoDB para aprimorar a precisão da resposta às queries.
  • Siga um tutorial abrangente sobre como configurar seu ambiente de desenvolvimento, da instalação das bibliotecas necessárias até a configuração de um MongoDB database.
  • Aprenda métodos eficientes de tratamento de dados, incluindo a criação de índices de pesquisa vetorial e a preparação de dados para ingestão e processamento de query.
  • Entenda como empregar modelos Claude 3 dentro do sistema RAG para gerar respostas precisas com base em informações contextuais recuperadas do banco de dados.
Todo o código de implementação apresentado neste tutorial está localizado neste repositório do GitHub

Etapa 1: Variáveis de ambiente, instalação da biblioteca, carregamento de dados e preparação

Esta seção aborda as etapas realizadas para preparar a fonte do ambiente de desenvolvimento e limpar os dados utilizados como base de conhecimento para o chatbot de analista técnico de capital de risco.
Definir variáveis de ambiente:
O seguinte código instala todas as bibliotecas necessárias:
!pip install --quiet pymongo datasets pandas anthropic voyageai
Abaixo estão breves explicações das ferramentas e bibliotecas utilizadas no código de implementação:
  • anthropic: esta é a biblioteca Python oficial da Anthropic que permite o acesso a modelos de linguagem de última geração. Essa biblioteca fornece acesso aos modelos da família Claude 3, que podem compreender textos e imagens.
  • conjuntos de dados: Essa biblioteca faz parte do ecossistema Hugging Face. Ao instalar os conjuntos de dados, obtemos acesso a vários conjuntos de dados pré-processados e prontos para uso, que são essenciais para o treinamento e o ajuste fino dos modelos de aprendizado de máquina ou para a avaliação comparativa de seu desempenho.
  • pandas: esta biblioteca de ciência de dados fornece estruturas de dados e métodos robustos para manipulação, processamento e análise de dados.
  • Voyage: esta é a biblioteca oficial do cliente Python para acessar os modelos de incorporação do Voyage.
  • pyMongo: o PyMongo é um conjunto de ferramentas Python para MongoDB. Ele permite interações com um MongoDB database.
Ferramentas como Pyenv e Conda podem criar ambientes de desenvolvimento isolados para separar versões de pacotes e dependências em seus projetos. Nesses ambientes, você pode instalar versões específicas de bibliotecas, garantindo que cada projeto opere com seu próprio conjunto de dependências sem interferência. A apresentação do código de implementação neste tutorial é melhor executada em um ambiente Colab ou Notebook.
Após importar as bibliotecas necessárias, as etapas subsequentes nesta seção envolvem o carregamento do conjunto de dados que serve como base de conhecimento fundamental para o sistema RAG e o chatbot. Este conjunto de dados contém uma coleção cuidadosamente escolhida de artigos de notícias de tecnologia do HackerNoon, complementares com uma coluna adicional de incorporações. Essas incorporações foram criadas processando as descrições de cada artigo no conjunto de dados. As incorporações para este conjunto de dados foram geradas usando o modelo de incorporação do OpenAI. Eles serão removidos e substituídos usando o modelo de incorporação da VoyageAI: voyage-large-2.
O conjunto de dadoskey-news-embedding contém mais de um milhão de pontos de dados, espelhando a escala de dados normalmente encontrada em um ambiente de produção. No entanto, somente os pontos de dados500 são utilizados para este aplicativo específico, mas fique à vontade para aumentar o número de pontos de dados.
O trecho de código acima executa as seguintes etapas:
  • Importa as bibliotecas necessárias: 'datasets' para carregar o conjunto de dados e 'pandas' para manipulação de dados.
  • Carrega o conjunto de dados "MongoDB/key-news-embeddings" do Abraçando o Face, usando a divisão "trem" e ativando o modo de streaming.
  • Obtém as primeiras 500 amostras do conjunto de dados transmitido usando o método "take".
  • Converte as amostras selecionadas em um DataFrame de Pandas para facilitar a manipulação e análise.
Esse processo recupera efetivamente um subconjunto do conjunto de dados de incorporações de notícias de tecnologia e o prepara para processamento ou análise posterior usando andas. Algo a observar é que a opção de streaming permite o manuseio eficiente de grandes conjuntos de dados, carregando dados em blocos em vez de todos de uma vez, o que é particularmente útil ao trabalhar com extensos conjuntos de dados e ambientes com recursos de computação limitados.
Como fase final na preparação de dados, o trecho de código abaixo mostra a etapa para remover a coluna_id do conjunto de dados agrupado, pois ela é desnecessária para as etapas subsequentes neste tutorial. Além disso, os dados dentro da coluna de incorporação para cada ponto de dados são removidos, pois planejamos gerar novas incorporações usando o modelo de incorporação VoyageAI.

Etapa 2: Incorporando geração

Depois de preparar nosso conjunto de dados inicial, a próxima etapa crucial é gerar incorporações para nossos dados de texto. Essas incorporações nos permitirão realizar pesquisas vetoriais habilitadas pelo MongoDB posteriormente.
Este trecho de código acima executa algumas operações importantes:
  1. Importamos a biblioteca VoyageAI e inicializamos um cliente com nossa chave de API.
  2. Definimos uma função get_embedding que:
  • Verifica se há texto de entrada vazio
  • Usa o cliente VoyageAI para gerar uma incorporação usando o modelo "voyage-large-2"
  • Retorna a incorporação gerada
  1. Aplicamos esta função à coluna "descrição" do nosso DataFrame, criando uma nova coluna de "incorporação".
  2. Finalmente, exibimos as primeiras linhas do nosso DataFrame atualizado para verificar a nova coluna.
Esse processo é essencial para preparar nossos dados para os recursos de pesquisa vetorial do Atlas. Ao gerar incorporações de alta qualidade para cada descrição, estamos capturando o significado semântica de nossos dados de texto em um formato otimizado para operações vetoriais. Isso permitirá pesquisas de similaridade mais precisas e eficientes em nosso banco de dados vetorial.
Lembre-se de que a escolha do modelo de incorporação pode afetar significativamente a qualidade dos resultados do Atlas Search. O modelo VoyageAI usado aqui é conhecido por seus recursos avançados de NLP, que devem fornecer incorporações robustas para nosso caso de uso.
Na próxima seção, veremos como usar essas incorporações para realizar pesquisas vetoriais no MongoDB.

Etapa 3: criação de banco de dados e coleção

Uma abordagem para compor uma pilha de AI com foco em lidar com grandes volumes de dados e reduzir o isolamento de dados é utilizar o mesmo provedor de banco de dados para seus dados operacionais e vetoriais. O MongoDB atua como um banco de dados operacional e um banco de dados vetorial. Ele oferece uma solução de banco de dados que armazena com eficiência queries e recupera incorporações vetoriais.
Para criar um novo MongoDB database, configure um cluster de banco de dados:
  1. Registre-se para obter uma conta gratuita do MongoDB Atlas ou os usuários existentes podem entrar no MongoDB Atlas.
  2. Selecione a opção "Database" no painel esquerdo, que navegará até a página Implantação de banco de dados com uma especificação de implantação de qualquer cluster existente. Crie um novo cluster de banco de dados clicando no botão +Criar.
  3. Para obter assistência com a configuração do cluster de banco de dados e a obtenção do identificador exclusivo de recursos (URI), consulte nosso guia para configurar um cluster MongoDB e obter sua string de conexão.
Observação: não se esqueça de colocar o IP na lista de permissões para o host Python ou 0.0.0.0/0 para qualquer IP ao criar a prova de conceitos.
Neste ponto, você criou um cluster de banco de dados, obteve uma string de conexão com o banco de dados e colocou uma referência à string de conexão no ambiente de desenvolvimento. A próxima etapa é criar um banco de dados e coletar dados por meio da interface de usuário do MongoDB Atlas.
Depois de criar um cluster, navegue até a página do cluster e crie um banco de dados e uma coleção dentro do MongoDB Atlas cluster clicando em + Criar banco de dados. O banco de dados será denominado knowledge e a coleção será denominada research_papers.
Criação de banco de dados e coleções

Etapa 3: criação do índice de pesquisa vetorial

Neste ponto, você criou um cluster, um banco de dados e uma coleção.
As etapas nesta seção são cruciais para garantir que um Atlas Search vetorial possa ser realizado usando as queries inseridas no chatbot e pesquisadas nos registros da collection hacker_noon_sync_news. O objetivo desta etapa é criar um índice vetorial do Atlas Search. Para isso, consulte o guia oficial de criação de índice do Atlas Search.
Na criação de um índice de pesquisa vetorial usando o editor JSON no MongoDB Atlas, certifique-se de que seu índice de pesquisa vetorial seja nomeado como vector_index e que a definição do índice de pesquisa vetorial seja a seguinte:

Etapa 4: ingestão de dados

Para ingerir dados no MongoDB database criado nas etapas anteriores, as seguintes operações devem ser realizadas:
  • Conecte-se ao banco de dados e à coleção.
  • Limpe a coleção de quaisquer registros existentes.
  • Converta o Pandas DataFrame do conjunto de dados em dicionários antes da ingestão.
  • Ignore dicionários no MongoDB usando uma operação em lote.
O trecho de código acima usa o PyMongo para criar um objeto de cliente MongoDB, representando a conexão com o cluster e permitindo o acesso aos seus bancos de dados e coleções. As variáveis DB_NAME e COLLECTION_NAME recebem os nomes definidos para o banco de dados e a coleção na etapa anterior. Se você tiver escolhido nomes de banco de dados e coleção diferentes, certifique-se de que eles estejam refletidos no código de implementação.
O trecho de código abaixo garante que a coleção de banco de dados atual esteja vazia executando a operaçãodelete_many() na coleção.
A ingestão de dados em uma coleção do MongoDB a partir de um DataFrame do pandas é um processo simples que pode ser realizado com eficiência convertendo o DataFrame em dicionários e, em seguida, utilizando o método insert_many na coleção para passar os registros do conjunto de dados convertidos.
O processo de ingestão de dados deve levar menos de um minuto e, quando a ingestão de dados é concluída, os IDs dos registros correspondentes do documento ingerido são retornados.
Esta seção mostra a criação de uma função personalizada de Atlas Search que aceita uma query do usuário, que corresponde às entradas do chatbot. A função também usa um segundo parâmetro, collection, que aponta para a coleção de banco de dados que contém registros nos quais a pesquisa vetorial deve ser conduzida.
A função vector_search produz um resultado de pesquisa vetorial derivado de uma série de operações descritas em um pipeline de agregação do MongoDB. Esse pipeline inclui os estágios $vectorSearch e $project e executa queries com base nas incorporações vetoriais das queries do usuário. Em seguida, ele formata os resultados, omitindo quaisquer atributos de registro desnecessários para os processos subsequentes.
O trecho de código acima realiza as seguintes operações para permitir a pesquisa semântica de artigos de notícias de tecnologia:
  1. Defina a função vector_search que recebe a string de query de um usuário e uma coleção do MongoDB como entradas e retorna uma lista de documentos que correspondem à query com base na pesquisa de similaridade de vetores.
  2. Gere uma incorporação para a query do usuário chamando a função definida anteriormente, get_embedding, que converte a string de query em uma representação vetorial.
  3. Construa um pipeline para a função agregada do MongoDB, incorporando dois estágios principais: $vectorSearch e $project.
  4. O estágio$vectorSearch executa a pesquisa vetorial real. O campo de índice especifica o índice vetorial a ser utilizado para a pesquisa vetorial, e isso deve corresponder ao nome inserido na definição do índice de pesquisa vetorial nas etapas anteriores. O campo queryVector usa a representação de incorporação da query de uso. O campo de caminho corresponde ao campo de documento que contém as incorporações. O numCandidates especifica o número de documentos de candidatos a serem considerados e o limite do número de resultados a serem retornados.
  5. O estágio $project formata os resultados para excluir o campo _id e embedding.
  6. O agregado executa o pipeline definido para obter os resultados da pesquisa vetorial. A operação final converte o cursor retornado do banco de dados em uma lista.

Etapa 6: tratamento de queries de usuários com modelos Claude 3

A seção final do tutorial descreve a sequência de operações realizadas da seguinte forma:
  • Aceite uma query de usuário na forma de uma string.
  • Utilize o modelo de incorporação VoyageAI para gerar incorporações para a query do usuário.
  • Carregue o Anthropic Claude 3— especificamente, o modelo 'claude-3-opus-20240229'— para servir como modelo base, que é o grande modelo de linguagem para o sistema RAG.
  • Execute uma pesquisa vetorial usando as incorporações da query do usuário para buscar informações relevantes da base de conhecimento, o que fornece contexto adicional para o modelo de base.
  • Envie a query do usuário e as informações adicionais coletadas para o modelo base para gerar uma resposta.
Uma observação importante é que as dimensões da incorporação da query do usuário correspondem às dimensões definidas na definição do índice de pesquisa vetorial no MongoDB Atlas.
A próxima etapa desta seção é importar a biblioteca do Anthropic e carregar o cliente para acessar os métodos do Anthropic para lidar com mensagens e acessar os modelos do Claude. Certifique-se de obter uma chave de API do Anthropic localizada na página de configurações no website oficial da Anthropic.
O trecho de código a seguir apresenta a função handle_user_query, que tem duas finalidades principais: Ela aproveita uma função de pesquisa vetorial personalizada definida anteriormente para consultar e recuperar informações relevantes de um MongoDB database e utiliza a API Anthropic por meio de um objeto cliente para usar um dos modelos Claude 3 para a geração de respostas a consultas.
Essa função começa executando a pesquisa vetorial em relação à coleção MongoDB especificada com base na query de entrada do usuário. Em seguida, ela passa a formatar as informações recuperadas para processamento posterior. Posteriormente, a função invoca a API da Anthropic, direcionando a solicitação para um modelo Claude 3 específico.
Abaixo está uma descrição mais detalhada das operações no trecho de código acima:
  1. Execução de pesquisa vetorial: a função começa chamando vector_search com a query do usuário e uma coleção especificada como argumentos. Isso realiza uma pesquisa na coleção, aproveitando a incorporação de vetores para encontrar informações relevantes relacionadas à query.
  2. Compilar resultados da pesquisa: search_result é inicializado como uma string vazia para agregar informações da pesquisa. Os resultados da pesquisa são compilados iterando os resultados retornados pela função vector_search, que formata os detalhes de cada item (nome da empresa, URL, data de publicação, URL do artigo e descrição) em uma string de caracteres legível por humanos, anexando essas informações a search_result com um caractere de nova linha \n no final de cada entrada.
  3. Gerar resposta usando o cliente Anthropic: Em seguida, a função constrói uma solicitação para a API Anthropic (por meio de um objeto cliente, presumivelmente uma instância da classe cliente Anthropic criada anteriormente). Ela especifica:
    O modelo a ser usado ("claude-3-opus-20240229"), que indica uma versão específica do modelo Claude 3.
    O limite máximo de token para a resposta gerada (max_tokens=1024).
    Uma descrição do sistema orienta o modelo a se comportar como um "Analista de Tecnologia de Venture Capital" com acesso a artigos e informações de empresas de tecnologia, usando isso como contexto para aconselhar.
    A mensagem real para o modelo processar, que combina a query do usuário com os resultados de pesquisa agregados como contexto.
  4. Retornar a resposta gerada e os resultados da pesquisa: ele extrai e retorna o texto da resposta do primeiro item no conteúdo da resposta junto com os resultados da pesquisa compilados.
A etapa final deste tutorial é inicializar a query, passá-la para a funçãohandle_user_query e imprimir a resposta retornada.
  1. Inicializar a query: a variável query recebe um valor de string contendo a solicitação do usuário: "Dê-me as melhores ações de tecnologia para investir e diga-me por quê." Isso serve como entrada para a funçãohandle_user_query.
  2. Execute a funçãohandle_user_query: a função usa dois parâmetros - a query do usuário e uma referência à coleção da qual as informações serão recuperadas. Ele realiza uma pesquisa vetorial para encontrar documentos relevantes na coleção e formata os resultados para uso posterior. Em seguida, ele consulta o modelo Anthropic Claude 3 , fornecendo-lhe a query e os resultados da pesquisa formatados como contexto para gerar uma resposta inteligente.
  3. Recupere as informações da resposta e da fonte: a função retorna dois dados: resposta e source_information. A resposta contém a resposta gerada pelo modelo para a query do usuário, enquanto source_information inclui dados detalhados da coleção usados para informar a resposta.
  4. Exibir resultados: por fim, o código imprime a resposta do modelo Claude 3, juntamente com as informações de origem que contribuíram para essa resposta.
Resposta do Claude 3 Opus
Os modelos Claude 3 têm o que parecem ser impressionantes capacidades de raciocínio. A partir da resposta na captura de tela, ele é capaz de considerar a linguagem expressiva como um fator em sua tomada de decisão e também fornecer uma abordagem estruturada para sua resposta.
O mais impressionante é que explica por que outras opções nos resultados da pesquisa não são candidatas à seleção final. E se você notar, a data também foi levada em consideração.
Logicamente, isso não substituirá nenhum analista de tecnologia humano em breve, mas com uma base de conhecimento mais ampla e dados em tempo real, isso poderá rapidamente se tornar um sistema co-piloto para analistas de capital de risco.
Lembre-se de que a resposta da Opus não é um conselho financeiro e é mostrada apenas para fins ilustrativos.

Conclusão

Este tutorial apresentou as etapas essenciais para configurar seu ambiente de desenvolvimento, preparar seu conjunto de dados e integrar modelos de linguagem de última geração com um sistema de banco de dados avançado.
Ao aproveitar os pontos fortes exclusivos dos modelos Claude 3 e do MongoDB, demonstramos como criar um sistema RAG que não apenas responde com precisão às queries dos usuários, mas também compreende o contexto em profundidade. O desempenho impressionante do sistema RAG é resultado do conhecimento paramétrico da Opus e das funcionalidades de correspondência semântica facilitadas pela pesquisa vetorial.
A criação de um RAG com os modelos mais recentes do Claude 3 e do MongoDB configura uma infraestrutura de IA eficiente. Ele oferece redução de custos e baixa latência ao combinar banco de dados operacional e banco de dados vetorial em uma solução. As funcionalidades do sistema nativo RAG apresentados neste tutorial podem ser estendidas para fazer o seguinte:
  • Obtenha notícias em tempo real sobre a empresa retornadas dos resultados da pesquisa.
  • Obtenha informações adicionais extraindo texto dos URLs fornecidos nos resultados de pesquisa associados.
  • Armazene metadados adicionais antes da ingestão de dados para cada ponto de dados.
Algumas das extensões de funcionalidade propostas podem ser obtidas utilizando capacidades de chamada de função da Anthropic ou aproveitando APIs de pesquisa. A principal conclusão é que, se você pretende desenvolver um chatbot, um sistema de recomendação ou qualquer aplicativo que exija respostas diferenciadas de AI, os princípios e técnicas descritos aqui servirão como um ponto de partida valioso.
Quer aproveitar outro modelo de última geração para seu sistema RAG? Confira nosso artigo que usa o Gemma do Google juntamente com modelos de incorporação de código aberto fornecidos pelo Hugging Face.

Perguntas frequentes

1. O que são os 3 modelos Claude e como eles aprimoram um sistema RAG?
Os modelos Claude 3 (Haiku, Sonnet, Opus) são grandes modelos de linguagem de última geração desenvolvidos pela Anthropic. Eles oferecem recursos avançados como suporte multilíngue, multimodalidade e longas janelas de contexto de até um milhão de tokens. Esses modelos são integrados aos sistemas RAG para aproveitar sua capacidade de entender e gerar texto, aprimorando a precisão e a compreensão da resposta do sistema.
2. Por que o MongoDB é escolhido para um sistema RAG com tecnologia do Claude 3?
O MongoDB é usado por suas capacidades duplas como banco de dados operacional e vetorial. Ele armazena, consulta e recupera com eficiência incorporações vetoriais, tornando-o ideal para gerenciar os extensos volumes de dados e as demandas de processamento em tempo real de aplicativos de IA, como um RAG.
3. Como funciona a função de pesquisa vetorial dentro do sistema RAG?
A função de pesquisa vetorial no sistema RAG conduz uma pesquisa semântica em uma coleção do MongoDB usando as incorporações vetoriais das queries do usuário. Ela se baseia em um pipeline de agregação do MongoDB, incluindo os estágios $vectorSearch e $project, para encontrar e formatar os documentos mais relevantes com base na semelhança de queries.
4. Qual é a importância das incorporações de dados no sistema RAG?
As incorporações de dados são cruciais para combinar o conteúdo semântico das queries do usuário com o conhecimento armazenado no banco de dados. Elas transformam o texto em um espaço vetorial, permitindo que o sistema RAG realize pesquisas vetoriais e recupere informações contextualmente relevantes para informar as respostas do modelo.
5. Como o sistema RAG lida com as queries do usuário com os modelos Claude 3?
O sistema RAG processa queries de usuários gerando incorporações usando um modelo de incorporação (por exemplo, "voyage-large-2" do VoyageAI) e conduzindo um Atlas Search vetorial para buscar informações relevantes. Essas informações e a query do usuário são passadas para um modelo de Class 3 , que gera uma resposta detalhada e informada com base no contexto combinado.
Principais comentários nos fóruns
Avatar do Comentarista do Fórum
Mboh_Bless_Pearl_NchongbohMboh Bless Pearl Nchongbohlast month

Na verdade, acha que isso é fácil e direto ao ponto

Veja mais nos fóruns

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Tutorial do MongoDB Atlas Data Federation: consultas federadas e $out para AWS S3


Jan 23, 2024 | 7 min read
Artigo

Análise de consultas, parte 2: ajustando o sistema


Jan 17, 2024 | 10 min read
Tutorial

Usando o Confluent Cloud com o Atlas Stream Processing


May 02, 2024 | 5 min read
Podcast

Clusters multinuvem do MongoDB Atlas


May 16, 2022 | 25 min
Sumário
  • Introdução