Docs Menu
Docs Home
/ /

Compila un agente de IA con LangGraph y MongoDB Atlas

Puede integrar MongoDB Atlas con LangGraph para crear agentes de IA. Este tutorial muestra cómo crear un agente de IA que responde preguntas sobre datos de muestra en MongoDB.

En concreto, el agente utiliza la integración para implementar RAG y memoria de agente. Utiliza herramientas de búsqueda semántica y de texto completo para recuperar información relevante y responder preguntas sobre los datos. También implementa memoria a corto y largo plazo mediante MongoDB, almacenando el historial de conversaciones y las interacciones importantes en colecciones separadas.

El código de esta página crea una aplicación de ejemplo completa. También puedes trabajar con el código como... Cuaderno de Python Si prefieres aprender paso a paso.

Para completar este tutorial, debes tener lo siguiente:

  • Uno de los siguientes tipos de clúster de MongoDB:

    • Un clúster Atlas que ejecute MongoDB 6.0.11 versión, 7.0.2 o posterior. Asegúrese de que su Ladirección IP está incluida en la lista de acceso de su proyecto Atlas.

    • Una implementación local de Atlas creada usando Atlas CLI. Para obtener más información, consulta Crear una Implementación local de Atlas.

    • Un clúster de MongoDB Community o Enterprise con Search y Vector Search instalados.

  • Una clave API de Voyage AI. Para obtener más información, consulte Clave API y cliente Python.

  • Una llave de API de OpenAI. Debes tener una cuenta de OpenAI con créditos disponibles para las solicitudes de API. Para obtener más información sobre cómo registrar una cuenta de OpenAI, consulta el sitio web de la API de OpenAI.

Nota

Consulte los requisitos del paquete langchain-voyageai para asegurarse de que está utilizando una versión de Python compatible.

Para configurar el entorno, complete los siguientes pasos:

1

Cree un nuevo directorio de proyecto y luego instale las dependencias necesarias:

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

Nota

Su proyecto utilizará la siguiente estructura:

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

Crear una .env Archivo en su proyecto y especifique las siguientes variables. Reemplace los valores de marcador de posición con claves API válidas y la cadena de conexión de su clúster MongoDB.

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

Nota

Se debe sustituir <connection-string> por la cadena de conexión del clúster Atlas o de la implementación local de Atlas.

Su cadena de conexión debe usar el siguiente formato:

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

Para obtener más información,consulte Conectarse a un clúster a través de bibliotecas de cliente.

Su cadena de conexión debe usar el siguiente formato:

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

Para obtener más información, consulta Cadenas de conexión.

Para configurar MongoDB como una base de datos vectorial para almacenamiento y recuperación, complete los siguientes pasos:

1

En este tutorial, utilizará uno de nuestros conjuntos de datos de muestra como fuente de datos. Si aún no lo ha hecho, complete los pasos para cargar datos de muestra en su clúster Atlas.

En concreto, utilizará el conjunto de datos embedded_movies, que contiene documentos sobre películas, incluidas las incrustaciones vectoriales de sus gráficos.

Nota

Si desea utilizar sus propios datos, consulte Introducción a LangChain o Cómo crear incrustaciones vectoriales para aprender a ingerir incrustaciones vectoriales en Atlas.

2

Cree un archivo llamado config.py en su proyecto. Este archivo configura MongoDB como almacén de vectores para su agente. También crea los índices para habilitar la búsqueda de vectores y las consultas de texto completo en los datos de muestra.

Cree un search_tools.py archivo en su proyecto. En este archivo, defina las herramientas de búsqueda que el agente utiliza para realizar la RAG agentica.

Nota

Puede definir cualquier herramienta necesaria para realizar una tarea específica. También puede definir herramientas para otros métodos de recuperación, como la búsqueda híbrida o la recuperación de documentos principales.

Cree un memory_tools.py archivo en su proyecto. En este archivo, defina las herramientas que el agente puede usar para almacenar y recuperar interacciones importantes entre sesiones e implementar la memoria a largo plazo.

Cree un agent.py archivo en su proyecto. En este archivo, creará el gráfico que organiza el flujo de trabajo del agente. Este agente utiliza el componente MongoDB Checkpointer para implementar la memoria a corto plazo, lo que permite múltiples conversaciones simultáneas con historiales separados.

El agente utiliza el siguiente flujo de trabajo para responder a las queries:

  1. Inicio: El agente recibe una consulta del usuario.

  2. Nodo de agente: el LLM vinculado a herramientas analiza la consulta y determina si se necesitan herramientas.

  3. Nodo de herramientas (si es necesario): ejecuta las herramientas de búsqueda o de memoria adecuadas.

  4. Fin: El LLM genera una respuesta final utilizando la salida de las herramientas.

Diagrama que muestra el flujo de trabajo del agente LangGraph-MongoDB.
haga clic para ampliar

Tip

Para obtener más información sobre la persistencia, la memoria a corto plazo y el puntero de control de MongoDB, consulte los siguientes recursos:

Por último, se debe crear un archivo llamado main.py en el proyecto. Este archivo ejecuta el agente y permite interactuar con él.

Guardar el proyecto y luego ejecutar el siguiente comando. Cuando se ejecute el agente:

  • El agente inicializa el almacén de vectores y crea los índices si aún no existen.

  • Puedes introducir un ID de sesión para iniciar una nueva sesión o continuar una existente. Cada sesión se conserva y siempre puedes reanudar una conversación anterior.

  • Haz preguntas sobre películas. El agente genera una respuesta basada en tus herramientas e interacciones previas.

La siguiente salida demuestra una interacción de muestra:

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.

Volver

LangGraph

Obtén una insignia de habilidad

¡Domine "Gen IA" gratis!

Más información

En esta página