Puedes integrar MongoDB con CrewAI para compilar agentes de IA autónomos y aplicaciones multiagente de IA con roles, herramientas y tareas especializadas. Específicamente, se puede aprovechar la MongoDB Vector Search Tool para CrewAI para permitir que los agentes de IA en sus equipos recuperen información relevante de sus datos que les ayude a completar tareas.
Empezar
Para completar un tutorial utilizando CrewAI y MongoDB, consulta Compila una aplicación RAG Agente con CrewAI y MongoDB.
Instalación
Para instalar la herramienta MongoDB Vector Search para CrewAI, ejecuta uno de los siguientes comandos según tu gestor de paquetes de Python:
pip install 'crewai-tools[mongodb]'
uv add crewai-tools --extra mongodb
Nota
La compatibilidad de la versión de Python puede variar con respecto a la documentación oficial de CrewAI. Al momento de escribir esto, el paquete crewai-tools depende de embedchain, que requiere una versión de Python entre 3.9 y 3.13.2 (inclusive).
Uso
Para usar la Herramienta de Búsqueda Vectorial de MongoDB, inicialícela y luego pásela a un agente.
Para inicializar la herramienta, debe especificar lo siguiente:
from crewai_tools import MongoDBVectorSearchTool tool = MongoDBVectorSearchTool( connection_string="<connection-string>", database_name="<database-name>", collection_name="<collection-name>", # Other optional parameters... ) # To test the tool print(tool.run(query="<test-query>")) # To use the tool in an agent rag_agent = Agent( name="rag_agent", role="You are a helpful assistant that can answer questions with the help of the MongoDBVectorSearchTool.", goal="...", backstory="...", tools=[tool], )
Opcionalmente, puedes personalizar la query de búsqueda vectorial de la herramienta especificando una instancia de MongoDBVectorSearchConfig en el constructor de la herramienta.
Para obtener más información sobre las consultas de búsqueda vectorial, consulta Ejecutar consultas de búsqueda vectorial.
from crewai_tools import MongoDBVectorSearchConfig, MongoDBVectorSearchTool # Custom query configuration query_config = MongoDBVectorSearchConfig( limit = 10, oversampling_factor = 2, ) tool = MongoDBVectorSearchTool( database_name="example_database", collection_name="example_collection", connection_string="<connection_string>", query_config=query_config, # Other optional parameters... ) # To test the tool print(tool.run(query="<test-query>")) # To use the tool in an agent rag_agent = Agent( name="rag_agent", role="You are a helpful assistant that can answer questions with the help of the MongoDBVectorSearchTool.", goal="...", backstory="...", tools=[tool], )
Parameter | Necesidad | Descripción | |
|---|---|---|---|
| Requerido | La cadena de conexión para tu instancia de MongoDB. Para obtener más información sobre cómo encontrar su cadena de conexión, consulte Conéctese a un clúster a través de las librerías de cliente. Para una implementación local, su cadena de conexión debe usar el siguiente formato: Para obtener más información sobre las cadenas de conexión, consulte Cadenas de conexión. | |
| Requerido | El nombre de la base de datos MongoDB. | |
| Requerido | El nombre de la colección de MongoDB. | |
| Opcional | Una instancia de | |
| Opcional | El modelo de embedding de OpenAI que se utiliza para generar embeddings vectoriales. El valor por defecto es | |
| Opcional | El nombre del índice de MongoDB Vector Search. Por defecto, es | |
| Opcional | El campo del documento que contiene el contenido del texto. El valor por defecto es | |
| Opcional | El campo del documento donde se almacena la incrustación vectorial. Por defecto, es | |
| Opcional | El número de dimensiones para la incrustación de vectores. Se establece como por defecto en |
Parameter | Necesidad | Descripción |
|---|---|---|
| Opcional | El número máximo de documentos para devolver. Se establece por defecto en |
| Opcional | Una expresión |
| Opcional | Una lista de etapas de agregación de MongoDB que se aplicarán después de la búsqueda vectorial. |
| Opcional | Un multiplicador para |
| bool | Si es verdadero, la incrustación vectorial de cada resultado se incluye en la salida. Por defecto, es |
Para más información, consulta la Documentación de la CrewAI MongoDB Vector Search Tool
Métodos
La clase MongoDBVectorSearchTool proporciona los siguientes métodos:
add_texts(): agrega documentos de texto a la colección de MongoDB especificada.create_vector_search_index(): Crea un índice de búsqueda vectorial en la colección.run()Ejecuta una consulta de búsqueda vectorial en tus datos.
import os from crewai_tools import MongoDBVectorSearchTool tool = MongoDBVectorSearchTool( connection_string="<connection-string>", database_name="<database-name>", collection_name="<collection-name>" ) # Example of loading text content from a local folder texts = [] for fname in os.listdir("knowledge"): path = os.path.join("knowledge", fname) if os.path.isfile(path): with open(path, "r", encoding="utf-8") as f: texts.append(f.read()) # Method to add documents to the vector store tool.add_texts(texts) # Method to create the vector search index tool.create_vector_search_index(dimensions=<number-of-dimensions>) # Method to test the tool by running a vector search query tool.run(query="<search-query>")
Parameter | Necesidad | Descripción |
|---|---|---|
| Requerido | El número de dimensiones para el vector de embedding. |
| Opcional | La métrica de similitud. Puede ser |
| Opcional | El tiempo en segundos que esperar para que el índice esté listo. Se establece por defecto en |
Para aprender más sobre los índices de búsqueda vectorial, consulta Cómo indexar campos para búsqueda vectorial.
Parameter | Necesidad | Descripción |
|---|---|---|
| Requerido | Arreglo de documentos de texto iterables para añadir. |
| Opcional | Una lista de documentos de metadatos, uno para cada documento de texto. |
| Opcional | Una lista de identificadores únicos para cada documento. |
| Opcional | El número de documentos a procesar e insertar en un solo lote. El valor por defecto es |