Você pode integrar o MongoDB ao CrewAI para criar agentes de IA autônomos e aplicativos de vários agentes com funções, ferramentas e tarefas especializadas. Especificamente, você pode aproveitar a Ferramenta de Vector Search do MongoDB para CrewAI para permitir que os agentes de IA em suas equipes recuperem informações relevantes de seus dados para ajudá-los a concluir as tarefas.
Começar
Para concluir um tutorial usando CrewAI e MongoDB, consulte Criar um aplicativo Agentic RAG com CrewAI e MongoDB.
Instalação
Para instalar a Ferramenta de Vector Search MongoDB para CrewAI, execute um dos seguintes comandos, dependendo do seu gerenciador de pacote Python:
pip install 'crewai-tools[mongodb]'
uv add crewai-tools --extra mongodb
Observação
A compatibilidade da versão do Python pode variar da documentação oficial do CrewAI. No momento da escrita, o pacote crewai-tools
depende do embedchain
, que exige uma versão do Python entre 3.9 e 3.13.2 (inclusive).
Uso
Para usar a Ferramenta de Vector Search MongoDB , inicialize-a e passe-a para um agente}.
Para inicializar a ferramenta, você deve especificar o seguinte:
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, você pode personalizar a query de pesquisa vetorial para a ferramenta especificando uma instância do MongoDBVectorSearchConfig
para o construtor da ferramenta.
Para aprender mais sobre queries de pesquisa vetorial, consulte Executar queries de pesquisa vetorial.
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], )
Parâmetro | necessidade | Descrição | |
---|---|---|---|
| Obrigatório | A string de conexão para sua instância MongoDB . Para saber mais sobre como encontrar sua string de conexão, consulte Conectar-se a um cluster por meio de drivers. ObservaçãoPara um sistema local, sua string de conexão deve usar o seguinte formato:
Para saber mais sobre connection strings, consulte Connection strings. | |
| Obrigatório | O nome do banco de MongoDB database. | |
| Obrigatório | O nome da coleção MongoDB . | |
| Opcional | Uma instância de | |
| Opcional | O modelo de incorporação OpenAI usado para gerar incorporações vetoriais. Padrão é | |
| Opcional | O nome do índice do Atlas Vector Search . Padrão é | |
| Opcional | O campo do documento que contém o conteúdo de texto. Padrão é | |
| Opcional | O campo do documento onde a incorporação do vetor é armazenada. Padrão é | |
| Opcional | O número de dimensões para a incorporação do vetor. Padrão é |
Parâmetro | necessidade | Descrição |
---|---|---|
| Opcional | O número máximo de documentos a retornar. O padrão é |
| Opcional | Uma expressão |
| Opcional | Uma lista de estágios de agregação MongoDB a serem aplicados após a pesquisa vetorial. |
| Opcional | Um multiplicador para |
| bool | Se verdadeiro, a incorporação do vetor de cada resultado será incluída na saída. Padrão é |
Dica
Consulte também os documentos da ferramenta de Vector Search CrewAI MongoDB
Métodos
A classe MongoDBVectorSearchTool
fornece os seguintes métodos:
add_texts()
: adiciona documentos de texto à coleção MongoDB especificada.create_vector_search_index()
: cria um índice de pesquisa vetorial na coleção.run()
: executa uma query de pesquisa vetorial em seus dados.
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>")
Parâmetro | necessidade | Descrição |
---|---|---|
| Obrigatório | O número de dimensões para o vetor de incorporação. |
| Opcional | A métrica de similaridade. |
| Opcional | O tempo, em segundos, para aguardar até que o índice fique pronto. Padrão é |
Para saber mais sobre índices de pesquisa vetorial, consulte Como indexar campos para Vector Search.
Parâmetro | necessidade | Descrição |
---|---|---|
| Obrigatório | Array de documentos de texto iteráveis para adicionar. |
| Opcional | Uma lista de documentos de metadados, um para cada documento de texto. |
| Opcional | Uma lista de IDs exclusivos para cada documento. |
| Opcional | O número de documentos a processar e inserir em um único lote. Padrão é |