Menu Docs
Página inicial do Docs
/ /

Construa um agente de IA com LangGraph e MongoDB Atlas

Você pode integrar o MongoDB Atlas ao LangGraph para criar agentes de IA. Este tutorial demonstra como criar um agente de IA que responde a perguntas sobre dados de amostra no MongoDB.

Especificamente, o agente usa a integração para implementar o RAG agente e a memória do agente. Ele usa pesquisa semântica e pesquisa de texto completo FERRAMENTAS para recuperar informações relevantes e responder a perguntas sobre os dados. Ele também implementa memória de curto e longo prazo usando o MongoDB , armazenando o histórico de conversas e interações importantes em coleções separadas.

O código nesta página cria um aplicação de exemplo completo . Você também pode trabalhar no código como um bloco de notas Python se preferir aprender passo a passo.

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

  • Um dos seguintes tipos de cluster MongoDB :

    • Um Atlas cluster executando o MongoDB versão 6.0.11, 7.0.2 ou posterior. Garanta que seu endereço IP esteja incluído na lista de acessodo seu projeto Atlas.

    • Um sistema local do Atlas criado utilizando o Atlas CLI. Para saber mais, consulte Criar uma implantação de Atlas local.

    • Um cluster MongoDB Community ou Enterprise com Search e Vector Search instalados.

  • Uma chave de API do Voyage AI. Para aprender mais, consulte Chave de API e cliente Python.

  • Uma chave de API da OpenAI. Você deve ter uma conta da OpenAI com créditos disponíveis para solicitações de API. Para aprender mais sobre como registrar uma conta OpenAI, consulte o website de API OpenAI.

Observação

Verifique os requisitos do pacote langchain-voyageai para garantir que você esteja usando uma versão compatível do Python.

Para configurar o ambiente, conclua as seguintes etapas:

1

Crie um novo diretório de projeto e, em seguida, instale as dependências necessárias:

mkdir langgraph-mongodb-ai-agent
cd langgraph-mongodb-ai-agent
pip install --quiet --upgrade python-dotenv langgraph langgraph-checkpoint-mongodb langgraph-store-mongodb langchain langchain-mongodb langchain-voyageai langchain-openai pymongo

Observação

Seu projeto usará a seguinte estrutura:

langgraph-mongodb-ai-agent
├── .env
├── config.py
├── search-tools.py
├── memory-tools.py
├── agent.py
├── main.py
2

Crie um arquivo .env no seu projeto e especifique as seguintes variáveis. Substitua os valores de espaço reservado por chaves de API válidas e pela string de conexão do cluster MongoDB .

VOYAGE_API_KEY = "<voyage-api-key>"
OPENAI_API_KEY = "<openai-api-key>"
MONGODB_URI = "<connection-string>"

Observação

Substitua <connection-string> pela string de conexão do seu cluster do Atlas ou da implantação local do Atlas.

Sua string de conexão deve usar o seguinte formato:

mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net

Para saber mais, consulte Conectar a um cluster via drivers.

Sua string de conexão deve usar o seguinte formato:

mongodb://localhost:<port-number>/?directConnection=true

Para saber mais, consulte Connection strings.

Para configurar o MongoDB como um banco de dados vetorial para armazenamento e recuperação, complete as seguintes etapas:

1

Para este tutorial, utilize um dos nossos conjuntos de dados de amostra como fonte de dados. Caso ainda não tenha feito isso, complete as etapas para carregar dados de amostra em seu Atlas cluster.

Especificamente, você usará o conjunto de dados embedded_movies, que contém documentos sobre filmes, incluindo as incorporações vetoriais de seus enredos.

Observação

Se você deseja usar seus próprios dados, veja Introdução ao LangChain ou Como criar incorporações vetoriais para aprender como ingerir incorporações vetoriais no Atlas.

2

Crie um arquivo denominado config.py em seu projeto. Este arquivo configura o MongoDB como o armazenamento de vetores para seu agente. Ele também cria os índices para habilitar a pesquisa vetorial e a pesquisa de texto completo nos dados de amostra.

Crie um arquivo search_tools.py em seu projeto. Neste arquivo, você define os FERRAMENTAS de pesquisa que o agente usa para executar o RAG agente.

Observação

Você pode definir qualquer ferramenta que precise para executar uma tarefa específica. Você também pode definir ferramentas para outros métodos de recuperação, como pesquisa híbrida ou recuperação de documento pai.

Crie um arquivo memory_tools.py em seu projeto. Nesse arquivo, você define as FERRAMENTAS que o agente pode usar para armazenar e recuperar interações importantes entre sessões para implementar a memória de longo prazo.

Crie um arquivo agent.py em seu projeto. Neste arquivo, você constrói o gráfico que orquestra o fluxo de trabalho do agente. Esse agente usa o componente MongoDB Checkpointer para implementar memória de curto prazo, permitindo várias conversas simultâneas com históricos separados.

O agente usa o seguinte fluxo de trabalho para responder às queries:

  1. Início: o agente recebe uma query do usuário.

  2. Nó do agente: o LLM vinculado à ferramenta analisa a query e determina se os FERRAMENTAS são necessários.

  3. Nó FERRAMENTAS (se necessário): Executa a pesquisa ou memória FERRAMENTAS apropriada.

  4. End: o LLM gera uma resposta final usando a saída do FERRAMENTAS.

Diagrama que mostra o fluxo de trabalho do agente LangGraph-MongoDB.
clique para ampliar

Dica

Para saber mais sobre persistência, memória de curto prazo e o checkpointer do MongoDB , consulte os seguintes recursos:

Por fim, crie um arquivo chamado main.py em seu projeto. Esse arquivo executa o agente e permite a interação com ele.

Salve seu projeto e execute o seguinte comando. Quando você executar o agente:

  • O agente inicializa o armazenamento de vetor e cria os índices se eles ainda não existirem.

  • Você pode inserir uma ID de sessão para iniciar uma nova sessão ou continuar uma sessão existente. Cada sessão é persistente e você sempre pode retomar uma conversa anterior.

  • Faça perguntas sobre filmes. O agente gera uma resposta com base em suas FERRAMENTAS e interações anteriores.

A seguinte saída demonstra uma interação de amostra:

python main.py
Creating vector search index...
Vector search index created successfully!
Creating search index...
Search index created successfully!
Enter a session ID: 123
Ask me about movies! Type 'quit' to exit.
Your query: What are some movies that take place in the ocean?
🔧 Agent chose to use tool(s): plot_search
→ Executing plot_search
Answer: Here are some movies that take place in the ocean:
1. **20,000 Leagues Under the Sea** - A marine biologist, his daughter, and a mysterious Captain Nemo explore the ocean aboard an incredible submarine.
2. **Deep Rising** - A group of armed hijackers board a luxury ocean liner in the South Pacific Ocean, only to fight man-eating, tentacled sea creatures.
... (truncated)
Your query: What is the plot of the Titanic?
🔧 Agent chose to use tool(s): title_search
→ Executing title_search
Answer: The plot of *Titanic* involves the romantic entanglements of two couples aboard the doomed ship's maiden voyage
... (truncated)
Your query: What movies are like the movie I just mentioned?
🔧 Agent chose to use tool(s): plot_search
→ Executing plot_search
Answer: Here are some movies similar to *Titanic*:
1. **The Poseidon Adventure** - A group of passengers struggles to survive when their ocean liner capsizes at sea.
2. **Pearl Harbor** - Focused on romance and friendship amidst the backdrop of a historical tragedy, following two best friends and their love lives during wartime.
... (truncated)
Your query: I don't like sad movies.
🔧 Agent chose to use tool(s): save_memory
→ Executing save_memory
Answer: Got it—I'll keep that in mind. Let me know if you'd like recommendations that focus more on uplifting or happy themes!
(In different session)
Enter a session ID: 456
Your query: Recommend me a movie based on what you know about me.
🔧 Agent chose to use tool(s): retrieve_memories
→ Executing retrieve_memories
Answer: Based on what I know about you—you don't like sad movies—I'd recommend a fun, uplifting, or action-packed film. Would you be interested in a comedy, adventure, or family-friendly movie?
Your query: Sure!
🔧 Agent chose to use tool(s): plot_search, plot_search, plot_search
→ Executing plot_search
→ Executing plot_search
→ Executing plot_search
Answer: Here are some movie recommendations from various uplifting genres that suit your preferences:
### Comedy:
1. **Showtime** (2002): A spoof of buddy cop movies where two very different cops are forced to team up on a new reality-based TV cop show. It's packed with laughs and action!
2. **The Big Bus** (1976): A hilarious disaster film parody featuring a nuclear-powered bus going nonstop from New York to Denver, plagued by absurd disasters.
### Adventure:
1. **Journey to the Center of the Earth** (2008): A scientist, his nephew, and their mountain guide discover a fantastic and dangerous lost world at the earth's core.
2. **Jason and the Argonauts** (1963): One of the most legendary adventures in mythology, brought to life in this epic saga of good versus evil.
### Family-Friendly:
1. **The Incredibles** (2004): A family of undercover superheroes is forced into action to save the world while living in quiet suburban life.
2. **Mary Poppins** (1964): A magical nanny brings joy and transformation to a cold banker's unhappy family.
3. **Chitty Chitty Bang Bang** (1968): A whimsical adventure featuring an inventor, his magical car, and a rescue mission filled with fantasy.

Voltar

LangGraph

Receber um selo de habilidade

Mestre "Gen AI" de grátis!

Saiba mais

Nesta página