Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Geração Aumentada de Recuperação (RAG) com MongoDB

Retrieval-augmented generation (RAG) is an architecture used to augment large language models (LLMs) with additional data so that they can generate more accurate responses. You can implement RAG in your generative AI applications by combining an LLM with a retrieval system powered by MongoDB Vector Search.

To quickly try RAG with MongoDB Vector Search, use the Chatbot Demo Builder in the MongoDB Search Playground. To learn more, see Chatbot Demo Builder in Search Playground.

To implement your own RAG system with MongoDB Vector Search, see the tutorial on this page.

Ao usar LLMs, você pode encontrar as seguintes limitações:

  • Dados obsoletos: os LLMssão treinados em um conjunto de dados estático até um determinado ponto no tempo. Isso significa que eles têm uma base de conhecimento limitada e podem usar dados desatualizados.

  • Sem acesso a dados adicionais: os LLMs não têm acesso a dados locais, personalizados ou específicos de domínio. Portanto, eles podem não ter conhecimento sobre domínios específicos.

  • Alucinações: quando baseados em dados incompletos ou desatualizados, os LLMs podem gerar respostas imprecisas.

You can address these limitations by taking the following steps to implement RAG:

  1. Ingestão: armazene seus dados personalizados como vector embeddings em um banco de dados vetorial, como MongoDB. Isso permite que você crie uma base de conhecimento de dados atualizados e personalizados.

  2. Recuperação: recupere documentos semanticamente semelhantes do banco de dados com base na pergunta do usuário usando uma solução de pesquisa, como o MongoDB Vector Search. Esses documentos ampliam o LLM com dados adicionais relevantes.

  3. Geração: envie uma solicitação para o LLM. O LLM usa os documentos recuperados como contexto para gerar uma resposta mais precisa e relevante, reduzindo as alucinações.

A RAG é uma arquitetura eficaz para a criação de chatbots de IA, pois permite que os sistemas de IA forneçam respostas personalizadas e específicas de domínio. Para criar chatbots prontos para produção, configure um servidor para rotear as solicitações e construa uma interface de usuário com base na sua implementação RAG.

To implement RAG with MongoDB Vector Search, you ingest data into MongoDB, retrieve documents with MongoDB Vector Search, and generate responses using an LLM. This section describes the components of a basic, or naive, RAG implementation with MongoDB Vector Search. For step-by-step instructions, see Tutorial.

Fluxograma RAG com Vector Search do MongoDB
clique para ampliar

A ingestão de dados para RAG envolve o processamento de seus dados personalizados e o armazenamento em um banco de dados vetorial para prepará-los para a recuperação. Para criar um pipeline de ingestão básico com MongoDB como banco de dados vetorial, faça o seguinte:

  1. Prepare seus dados.

    Carregue, processe e fragmente seus dados para prepará-los para seu aplicativo RAG. A fragmentação envolve a divisão de seus dados em partes menores para uma recuperação ideal.

  2. Converta os dados em incorporações vetoriais.

    Converta seus dados em embeddings vetoriais usando um modelo de embedding. Você pode gerar embeddings automaticamente usando Automated Embedding ou gerar embeddings manualmente usando um modelo de embedding.

  3. Armazene os dados e incorporações no MongoDB.

    Para Automated Embedding, o MongoDB pesquisa vetorial armazena os embeddings em um banco de dados interno dedicado. Para embedding criado manualmente, você armazena o embedding como um campo junto com outros dados em sua coleção em seu cluster.

A criação de um sistema de recuperação envolve a pesquisa e a devolução dos documentos mais relevantes do seu banco de dados vetorial para aumentar o LLM. Para recuperar documentos relevantes com a Vector Search do MongoDB, converta a pergunta do usuário em incorporações vetoriais e execute uma query de pesquisa vetorial nos dados de sua collection do MongoDB para encontrar documentos com as incorporações mais semelhantes.

Para realizar a recuperação básica com o MongoDB Vector Search, faça o seguinte:

  1. Defina um índice do MongoDB Vector Search na collection que contém suas incorporações vetoriais.

  2. Escolha um dos seguintes métodos para recuperar documentos com base na pergunta do usuário:

    • Use an MongoDB Vector Search integration with a popular framework or service. These integrations include built-in libraries and tools that enable you to easily build retrieval systems with MongoDB Vector Search.

    • Construa seu próprio sistema de recuperação. Você pode definir suas próprias funções e pipelines para executar queries do MongoDB Vector Search específicas para seu caso de uso.

      To learn how to build a basic retrieval system with MongoDB Vector Search, see Tutorial.

Para gerar respostas, combine seu sistema de recuperação com um LLM. Depois de realizar uma pesquisa vetorial para recuperar documentos relevantes, você fornece a pergunta do usuário junto com os documentos relevantes como contexto para o LLM para que ele possa gerar uma resposta mais precisa.

Escolha um dos seguintes métodos para se conectar a um LLM:

  • Use an MongoDB Vector Search integration with a popular framework or service. These integrations include built-in libraries and tools to help you connect to LLMs with minimal set-up.

  • Chame a API do LLM. A maioria dos provedores de IA oferece APIs para seus modelos generativos que você pode usar para gerar respostas.

  • Carregue um LLM de código aberto. Se você não tiver chaves de API ou créditos, poderá usar um LLM de código aberto carregando-o localmente a partir do seu aplicação. Para obter um exemplo de implementação, consulte o tutorial Criar uma implementação de RAG local com Vector Search do MongoDB.

The following example demonstrates how to implement RAG with a retrieval system powered by MongoDB Vector Search. Select your preferred embedding model, LLM, and programming language to get started:

Para concluir este exemplo, você deve ter o seguinte:

Para tutoriais de RAG adicionais, consulte os seguintes recursos:

Para criar agentes de IA e implementar RAG agente, consulte Criar agentes de IA com MongoDB.

Para otimizar seus aplicativos RAG, certifique-se de usar um modelo de incorporação poderoso como Voyage AI para gerar incorporações vetoriais de alta qualidade.

Additionally, MongoDB Vector Search supports advanced retrieval systems. You can seamlessly index vector data along with your other data in your cluster. This allows you to improve your results by pre-filtering on other fields in your collection or performing hybrid search that combine semantic search with full-text search results.

O chunking divide documentos grandes em segmentos menores antes de gerar incorporações. A estratégia correta de chunking pode melhorar significativamente a qualidade da recuperação do seu aplicativo RAG.

Uma estratégia de chunking consiste nos seguintes componentes principais:

  • Técnica de divisão: Determina onde colocar os limites de partes, como limites de parágrafo, separadores específicos da linguagem de programação, tokens ou limites semânticos.

  • Tamanho da parte: número máximo de caracteres ou tokens por parte.

  • Sobreposição de parte: número de caracteres ou tokens sobrepostos entre partes adjacentes. A sobreposição ajuda a preservar o contexto entre os limites de partes.

Estratégias comuns de chunking incluem:

Estratégia
Melhor para

Token fixo

Casos de uso simples com estrutura de conteúdo uniforme.

Token fixo com sobreposição

Clustering de uso geral em que o contexto ultrapassa os limites da parte.

Recursivo

Documentos de texto onde você deseja preservar os limites de número e frase.

Recursivo específico do idioma

Código ou documentação técnica com trechos de linguagem de programação.

Semântico

Documentos sem limites estruturados claros, como redações ou conteúdo analítico.

Para experimentar estratégias de agrupamento, use o Construtor de Demonstrações do chatbot no MongoDB Search Playground, que permite experimentar o agrupamento recursivo e o agrupamento de token fixo com sobreposição.

Para obter um tutorial prático que avalia diferentes estratégias de chunking usando o **framework** de Ragas, consulte o bloco de notas Chunking Estratégias no repositório GenAI-showcase.

Você também pode usar os seguintes recursos: