Puede 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 Cree una aplicación Agentic RAG con CrewAI y MongoDB.
Instalación
Para instalar la herramienta de búsqueda vectorial MongoDB para CrewAI, ejecute uno de los siguientes comandos según su administrador de paquetes de Python:
pip install 'crewai-tools[mongodb]'
uv add crewai-tools --extra mongodb
Nota
La compatibilidad de las versiones de Python puede variar con respecto a la documentación oficial de CrewAI. Al momento de escribir este artículo, crewai-tools El paquete 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, puede personalizar la consulta de búsqueda de vectores para 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 de vectores, consulte Ejecutar consultas de búsqueda de vectores.
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 MongoDB. | |
| Opcional | Una instancia de | |
| Opcional | El modelo de incrustación de OpenAI utilizado para generar incrustaciones vectoriales. El valor predeterminado es | |
| Opcional | Nombre del índice de búsqueda vectorial de MongoDB. El valor predeterminado es | |
| Opcional | El campo del documento que contiene el texto. El valor predeterminado es | |
| Opcional | El campo del documento donde se almacena la incrustación vectorial. El valor predeterminado es | |
| Opcional | Número de dimensiones para la incrustación vectorial. El valor predeterminado es |
Parameter | Necesidad | Descripción |
|---|---|---|
| Opcional | Número máximo de documentos a devolver. El valor predeterminado es |
| 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 de |
| bool | Si es verdadero, la incrustación vectorial de cada resultado se incluye en la salida. El valor predeterminado es |
Para obtener más información, consulte la documentación de la herramienta de búsqueda vectorial de CrewAI MongoDB.
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 sus 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 del vector de incrustación. |
| Opcional | Métrica de similitud. |
| 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, consulte Cómo indexar campos para la búsqueda vectorial.
Parameter | Necesidad | Descripción |
|---|---|---|
| Requerido | Matriz de documentos de texto iterables para agregar. |
| Opcional | Una lista de documentos de metadatos, uno para cada documento de texto. |
| Opcional | Una lista de identificaciones únicas para cada documento. |
| Opcional | Número de documentos que se procesarán e insertarán en un solo lote. El valor predeterminado es |