Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Compila un agente de IA con LangGraph y MongoDB Atlas

Puedes 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.

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

El código en esta página compila una aplicación de ejemplo completa. También puedes trabajar con el código como un Python notebook 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 de Atlas ejecutando la versión 6.0.11 de MongoDB, 7.0.2, o posterior. Asegúrate de que tu La dirección IP está incluida en la lista de accesode tu 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 IA. Para aprender más, consulta Clave API y cliente de 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

Consulta los requisitos del paquete langchain-voyageai para asegurar que esté utilizando una versión compatible de Python.

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 un(a) .env archivo en su proyecto y especifique las siguientes variables. Sustituya los valores de los marcadores de posición por claves válidas de API y la cadena de conexión de su clúster de 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, consulta Conectar a un clúster a través de bibliotecas de clientes.

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

Para este tutorial, utilizarás uno de nuestros conjuntos de datos de muestra como fuente de datos. Si no lo has hecho aún, completa los pasos para cargar datos de muestra en tu clúster de Atlas.

En concreto, utilizarás el conjunto de datos embedded_movies, que contiene documentos sobre películas, incluidos los vectores de incrustación de sus tramas.

Nota

Si desea usar sus propios datos, consulte LangChain Get Started o Cómo crear incrustaciones vectoriales para aprender cómo introducir 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.

Crea un archivo search_tools.py en tu proyecto. En este archivo, se definen las herramientas de búsqueda que el agente utiliza para realizar agentic RAG.

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.

Crea un archivo memory_tools.py en tu proyecto. En este archivo, se definen las herramientas que el agente puede utilizar para almacenar y recuperar interacciones importantes a lo largo de sesiones, a fin de implementar memoria a largo plazo.

Crea un archivo agent.py en tu proyecto. En este archivo, se crea el grafo que gestiona el flujo de trabajo del agente. Este agente utiliza el componente MongoDB Checkpointer para implementar memoria a corto plazo, permitiendo múltiples conversaciones concurrentes con historiales separados.

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

  1. Inicio: El agente recibe una query.

  2. Nodo de agente: El LLM vinculado a la herramienta analiza la query y determina si se necesitan herramientas.

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

  4. Final: 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 acerca de la persistencia, la memoria a corto plazo y el verificador de puntos de control de MongoDB, consulta 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 estos aún no existen.

  • Puedes ingresar un ID de sesión para iniciar una nueva sesión o continuar una sesión existente. Cada sesión se guarda y siempre puedes retomar una conversación anterior.

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

La siguiente salida muestra un ejemplo de interacción:

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