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

Impulsionando a IA: construa um chatbot sobre seus dados com o MongoDB Atlas Vector Search e os modelos LangChain usando o padrão RAG

Arek Borucki6 min read • Published Sep 18, 2024 • Updated Sep 18, 2024
IAAtlasPesquisa vetorialPython
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Neste tutorial, mostrarei a maneira mais simples de implementar um aplicativo no estilo de chatbot de IA usando o MongoDB Atlas Vector Search com os modelos do LangChain e o padrão RAG (retrieval-augmented generation) para obter respostas de chat mais precisas.

Padrão de geração aumentada de recuperação (RAG)

O modelo de geração aumentada de recuperação (RAG) aprimora os LLMs completando-os com dados adicionais e relevantes, garantindo respostas embasadas e precisas para fins comerciais. Por meio da busca vetorial, o RAG identifica e recupera documentos pertinentes de bancos de dados, que utiliza como contexto enviado ao LLM junto com a query, melhorando assim a qualidade da resposta do LLM. Esta abordagem diminui as imprecisões ao ancorar as respostas no conteúdo factual e garante que as respostas permaneçam relevantes com os dados mais atuais. O RAG otimiza o uso de token sem expandir o limite de token de um LLM, concentrando-se nos documentos mais relevantes para informar o processo de resposta.
Diagrama de armazenamento vetorial
Para detalhar a implementação: considere um sistema de resposta a perguntas que usa um LLM como OpenAI, operando com o modelo RAG. Tudo começa com o Atlas Vector Search para identificar documentos ou trechos de texto relevantes em um banco de dados, fornecendo o contexto necessário para a pergunta. Esse contexto, juntamente com a pergunta, é então processado por meio da API do OpenAI, permitindo uma resposta mais informada e precisa.
O Atlas Vector Search desempenha um papel crucial para desenvolvedores dentro do framework de geração aumentada de recuperação. Uma tecnologia chave para canalizar dados externos para LLMs é o LangChain. Esse framework facilita o desenvolvimento de aplicativos que integram LLMs, abrangendo uma variedade de usos que se alinham às funcionalidades dos próprios modelos de linguagem. Esses usos englobam tarefas como análise e resumo de documentos, operação de chatbots e análise minuciosa do código.
O MongoDB simplificou o processo para os desenvolvedores integrarem a IA em seus aplicativos, unindo-se à LangChain para a introdução de modelos LangChain. Essa colaboração produziu um modelo de geração aumentada de recuperação que capitaliza os pontos fortes do MongoDB Atlas Vector Search junto com as tecnologias da OpenAI. O modelo oferece uma abordagem amigável ao desenvolvedor para criar e implantar aplicativos de chatbot adaptados a conjuntos de dados específicos. Os modelos LangChain servem como um framework de referência para implantação, acessível como uma REST API via LangServe.
A aliança também foi fundamental para apresentar os últimos avanços do Atlas Vector Search, principalmente o estágio de agregação $vectorSearch, agora incorporado às ofertas de Python e JavaScript da LangChain. A joint venture está comprometida com o desenvolvimento contínuo, com planos de revelar mais modelos. Esses futuros acréscimos têm o objetivo de acelerar ainda mais a capacidade dos desenvolvedores de realizar e lançar projetos criativos.

Modelos LangChain

Os modelos LangChain apresentam uma seleção de arquiteturas de referência projetadas para implantação rápida, disponíveis para qualquer usuário. Esses modelos introduzem um sistema inovador para criação, troca, atualização, aquisição e adaptação de diversas cadeias e agentes. Eles são criados em um formato uniforme para uma integração suave com o LangServe, permitindo a implantação rápida de APIs prontas para produção. Além disso, esses modelos fornecem um sandbox gratuito para fins experimentais e de desenvolvimento.
O modelo rag-mongo foi projetado especificamente para executar a geração aumentada de recuperação utilizando tecnologias MongoDB e OpenAI. Vamos dar uma olhada no modelo rag-mongo na seção a seguir deste tutorial.

Uso de modelos RAG do LangChain

Para começar, você só precisa instalar o langchain-cli.
Use a CLI LangChain para inicializar um projeto LangServe rapidamente. O aplicativo será denominado my-blog-articlee o nome do modelo também deve ser especificado. Vou nomeá-lo rag-mongo.
Isso criará um novo diretório chamado my-app com duas pastas:
  • app: é aqui que o código LangServe estará.
  • packages: é aqui que suas cadeias ou agentes ficarão.
Agora, é necessário modificar o arquivomy-blog-article/app/server.py adicionando o seguinte código:
Vamos precisar inserir dados no MongoDB Atlas. Em nosso exercício, utilizamos um documento PDF acessível ao público intitulado "Melhores práticas do MongoDB Atlas" como fonte de dados para construir um espaço vetorial com texto pesquisável. Os dados serão ingeridos no namespace langchain.vectorSearchdo MongoDB.
Para fazer isso, navegue até o diretório my-blog-article/packages/rag-mongo e, no arquivo ingest.py, altere os nomes padrão do MongoDB database e da coleção. Além disso, modifique o URL do documento que você deseja usar para gerar as incorporações.
Meu ingest.py está localizado no GitHub. Observe que, se você alterar o nome do banco de dados e da coleção em ingest.py, também precisará alterá-lo em rag_mongo/chain.py. Meu chain.py também está localizado no GitHub. Em seguida, exporte sua chave de API da OpenAI e o URI do MongoDB Atlas.
Criar e inserir incorporações no MongoDB Atlas usando modelos LangChain é muito fácil. Você só precisa executar o script ingest.py. Primeiro, ele carregará um documento de um URL especificado usando o PyPDFLoader. Em seguida, ele divide o texto em partes gerenciáveis usando RecursiveCharacterTextSplitter. Por fim, o script usa a API de incorporações da OpenAI para gerar incorporações para cada parte e insere-as no namespace langchain.vectorSearch do MongoDB Atlas.
Agora é hora de inicializar o Atlas Vector Search. Faremos isso por meio da IU do Atlas. Na interface do usuário do Atlas, escolha Search e, em seguida,Create Search. Em seguida, escolha o JSON Editor para declarar os parâmetros do índice, bem como o banco de dados e a coleção onde o Atlas Vector Search será estabelecido (langchain.vectorSearch). Defina o nome do índice como default. A definição do meu índice é apresentada abaixo.
Um procedimento detalhado está disponível no GitHub.
Vamos agora dar uma olhada mais de perto no componente central do modelo LangChain rag-mongo: o script chain.py . Esse script utiliza o MongoDBAtlasVectorSearch
classe e é usado para criar um objeto — vectorstore — que interage com os recursos de pesquisa vetorial do MongoDB Atlas para pesquisas de similaridade semântica. O retriever é então configurado a partir de vectorstore para realizar essas pesquisas, especificando o tipo de pesquisa como "semelhante".
Essa configuração garante que o documento contextualmente mais relevante seja recuperado do banco de dados. Após a recuperação, o script mescla esse documento com uma query do usuário e usa a classe ChatOpenAI para processar a entrada por meio dos modelos GPT do OpenAI, criando uma resposta coerente. Para aprimorar ainda mais esse processo, a classe ChartOpenAI é inicializada com o modelo gpt-3.5-turbo-16k-0613, escolhido por seu desempenho ideal. A temperatura é definida como 0, proporcionando saídas determinísticas consistentes para uma experiência de usuário simplificada e precisa.
Essa classe permite personalizar solicitações de API, oferecendo controle sobre tentativas de repetição, limites de tokens e temperatura de resposta. Ela gerencia habilmente várias gerações de respostas, cache de respostas e operações de chamada de resposta. Além disso, facilita tarefas assíncronas para agilizar a geração de respostas e incorpora metadados e marcação para um rastreamento abrangente da execução da API.

LangServe Playground

Depois de criar e armazenar com êxito as incorporações no MongoDB Atlas, você pode começar a utilizar o LangServe Playground executando o comando langchain serve, que concede acesso ao seu chatbot.
Isso inicia o aplicativo FastAPI, com um servidor executando localmente em http://127.0.0.1:8000. Todos os modelos podem ser visualizados em http://127.0.0.1:8000/docs, e o playground pode ser acessado em http://127.0.0.1:8000/rag-mongo/playground/.
O chatbot responderá perguntas sobre as melhores práticas para usar o MongoDB Atlas com a ajuda do contexto fornecido por meio da pesquisa vetorial. Perguntas sobre outros tópicos não serão consideradas pelo chatbot.
Acesse o seguinte URL:
E comece a usar seu modelo! Você pode fazer perguntas relacionadas ao MongoDB Atlas no chat.
LangServe Playground
Ao expandir o menu Intermediate steps, você pode rastrear todo o processo de formulação de uma resposta à sua pergunta. Esse processo abrange a busca dos documentos mais pertinentes relacionados à sua query e o encaminhamento deles para a API da Open AI para servir como contexto para a query. Essa metodologia está alinhada com o padrão RAG, em que os documentos relevantes são recuperados para fornecer contexto para gerar uma resposta bem informada a uma query específica.
Também podemos usar curl para interagir com a REST API LangServe e pontos de extremidade de contato, como /rag-mongo/invoke:
Também podemos enviar solicitações em lote para a API usando o endpoint /rag-mongo/batch, por exemplo:
Para obter uma documentação abrangente e mais detalhes, visite http://127.0.0.1:8000/docs.

Resumo

Neste artigo, examinamos a sinergia do Atlas Vector Search com os modelos LangChain e o padrão RAG para melhorar significativamente a qualidade da resposta do chatbot. Ao implementar essas ferramentas, os desenvolvedores podem garantir que seus chatbots de IA forneçam respostas altamente precisas e contextualmente relevantes. Entre no futuro da tecnologia de chatbots aplicando os insights e as instruções fornecidos aqui. Eleve sua IA e envolva usuários como nunca antes. Não crie apenas chatbots – crie experiências inteligentes de conversação. Comece agora mesmo com MongoDB Atlas e LangChain!
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.
Iniciar a conversa

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

Migrar de um RDBMS para o MongoDB com a ajuda da AI: uma introdução ao conversor de query


Aug 28, 2024 | 4 min read
Tutorial

Influencie a classificação dos resultados de pesquisa com pontuações de funções no Atlas Search


Feb 03, 2023 | 5 min read
Início rápido

Construindo pipelines RAG com haystack e MongoDB Atlas


Sep 18, 2024 | 4 min read
exemplo de código

Trends Analyser


Sep 11, 2024 | 1 min read
Sumário