Pular para o conteúdo principal

DOCXSearchTool

Ainda estamos trabalhando na melhoria das ferramentas, portanto pode haver comportamentos inesperados ou alterações no futuro.

Descrição

A DOCXSearchTool é uma ferramenta RAG desenvolvida para buscas semânticas dentro de documentos DOCX. Ela permite que os usuários pesquisem e extraiam informações relevantes de arquivos DOCX de forma eficiente, utilizando buscas baseadas em consultas. Esta ferramenta é inestimável para análise de dados, gestão da informação e tarefas de pesquisa, otimizando o processo de encontrar informações específicas em grandes coleções de documentos.

Instalação

Instale o pacote crewai_tools executando o seguinte comando no seu terminal:
uv pip install docx2txt 'crewai[tools]'

Exemplo

O exemplo a seguir demonstra a inicialização da DOCXSearchTool para buscar dentro do conteúdo de qualquer arquivo DOCX ou com o caminho de um arquivo DOCX específico.
Code
from crewai_tools import DOCXSearchTool

# Inicialize a ferramenta para buscar dentro do conteúdo de qualquer arquivo DOCX
tool = DOCXSearchTool()

# OU

# Inicialize a ferramenta com um arquivo DOCX específico,
# assim o agente só poderá buscar dentro do conteúdo do arquivo DOCX especificado
tool = DOCXSearchTool(docx='path/to/your/document.docx')

Argumentos

Os seguintes parâmetros podem ser usados para customizar o comportamento da DOCXSearchTool:
ArgumentoTipoDescrição
docxstringOpcional. Um argumento que especifica o caminho para o arquivo DOCX que você deseja pesquisar. Se não for fornecido durante a inicialização, a ferramenta permite a especificação posterior do caminho de qualquer arquivo DOCX para busca.

Modelo e embeddings personalizados

Por padrão, a ferramenta utiliza o OpenAI tanto para embeddings quanto para sumarização. Para customizar o modelo, você pode usar um dicionário de configuração como no exemplo:
Code
from chromadb.config import Settings

tool = DOCXSearchTool(
    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),
            }
        },
    }
)