Puedes integrar MongoDB con CrewAIPara crear agentes de IA autónomos y aplicaciones multiagente con roles, herramientas y tareas especializadas. En concreto, puede aprovechar la herramienta de búsqueda vectorial de MongoDB para CrewAI para que los agentes de IA de sus equipos puedan recuperar información relevante de sus datos y completar sus tareas.
Empezar
Para completar un tutorial usando CrewAI y MongoDB, consulte Compile una aplicación Agentic RAG 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 con la versión de Python puede diferir de la documentación oficial de CrewAI. Al momento de redactar este documento, el crewai-tools el paquete depende de embedchain, que requiere una versión de Python entre 3.9 y 3.13.2 (incluida).
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 de su instancia de MongoDB. Para obtener más información sobre cómo encontrar su cadena de conexión, consulte Conectarse a un clúster mediante bibliotecas 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 | Número de dimensiones para la incrustación vectorial. El valor predeterminado es |
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 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 obtener más información sobre los índices de búsqueda vectorial, consulta Cómo indexar campos para la 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 |