Busca RAG em Diretório
DirectorySearchTool
Seção intitulada “DirectorySearchTool”Descrição
Seção intitulada “Descrição”O DirectorySearchTool permite a busca semântica dentro do conteúdo de diretórios especificados, aproveitando a metodologia de Recuperação com Geração Aumentada (RAG) para uma navegação eficiente entre arquivos. Projetada para flexibilidade, a ferramenta possibilita que usuários especifiquem dinamicamente os diretórios de busca em tempo de execução ou definam um diretório fixo durante a configuração inicial.
Instalação
Seção intitulada “Instalação”Para utilizar o DirectorySearchTool, comece instalando o pacote crewai_tools. Execute o seguinte comando no seu terminal:
pip install 'crewai[tools]'Inicialização e Uso
Seção intitulada “Inicialização e Uso”Importe o DirectorySearchTool do pacote crewai_tools para começar. Você pode inicializar a ferramenta sem especificar um diretório, permitindo definir o diretório de busca em tempo de execução. Alternativamente, a ferramenta pode ser inicializada já com um diretório predefinido.
from crewai_tools import DirectorySearchTool
# Para especificação dinâmica de diretório em tempo de execuçãotool = DirectorySearchTool()
# Para buscas em diretório fixotool = DirectorySearchTool(directory='/path/to/directory')Argumentos
Seção intitulada “Argumentos”directory: Um argumento do tipo string que especifica o diretório de busca. Este parâmetro é opcional durante a inicialização, mas obrigatório para buscas caso não tenha sido definido inicialmente.
Modelo Personalizado e Embeddings
Seção intitulada “Modelo Personalizado e Embeddings”O DirectorySearchTool utiliza OpenAI para embeddings e sumarização por padrão. As opções de personalização dessas configurações incluem a alteração do provedor de modelo e configurações, ampliando a flexibilidade para usuários avançados.
from chromadb.config import Settings
tool = DirectorySearchTool( config={ "embedding_model": { "provider": "openai", "config": { "model": "text-embedding-3-small", # "api_key": "sk-...", }, }, "vectordb": { "provider": "chromadb", # ou "qdrant" "config": { # "settings": Settings(persist_directory="/content/chroma", allow_reset=True, is_persistent=True), # from qdrant_client.models import VectorParams, Distance # "vectors_config": VectorParams(size=384, distance=Distance.COSINE), } }, })Segurança
Seção intitulada “Segurança”Validação de Caminhos
Seção intitulada “Validação de Caminhos”Os caminhos de diretório fornecidos a esta ferramenta são validados em relação ao diretório de trabalho atual. Caminhos que resolvem fora do diretório de trabalho são rejeitados com um ValueError.
Para permitir caminhos fora do diretório de trabalho (por exemplo, em testes ou pipelines confiáveis), defina a variável de ambiente:
CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true