Directory RAG Search

DirectorySearchTool은 디렉터리의 내용을 대상으로 시맨틱 검색을 수행하는 강력한 RAG(Retrieval-Augmented Generation) 도구예요.

출처: 문서

본문

DirectorySearchTool

실험 단계: DirectorySearchTool은 지속적으로 개발 중입니다. 기능과 동작이 진화할 수 있으며, 도구를 다듬는 동안 예상치 못한 동작이 발생할 수 있어요.

설명 (Description)

DirectorySearchTool은 지정한 디렉터리의 내용 안에서 시맨틱 검색을 가능하게 하며, RAG(Retrieval-Augmented Generation) 방식을 활용해 파일을 효율적으로 탐색합니다. 유연하게 설계되어 사용자가 실행 중에 검색 디렉터리를 동적으로 지정하거나 초기 설정 시 고정 디렉터리를 지정할 수 있습니다.

설치 (Installation)

DirectorySearchTool을 사용하려면 먼저 crewai_tools 패키지를 설치하세요. 터미널에서 다음 명령어를 실행합니다.

pip install 'crewai[tools]'

초기화 및 사용법 (Initialization and Usage)

시작하려면 crewai_tools 패키지에서 DirectorySearchTool을 가져옵니다. 디렉터리를 지정하지 않고 도구를 초기화하면 실행 중에 검색 디렉터리를 설정할 수 있습니다. 또는 미리 정의된 디렉터리로 도구를 초기화할 수도 있어요.

from crewai_tools import DirectorySearchTool

# 실행 중 동적으로 디렉터리를 지정하려는 경우
tool = DirectorySearchTool()

# 고정 디렉터리로 검색하려는 경우
tool = DirectorySearchTool(directory='/path/to/directory')

인자 (Arguments)

  • directory: 검색 디렉터리를 지정하는 문자열 인자입니다. 초기화 시에는 선택 사항이지만, 초기에 설정하지 않았다면 검색 시 필요합니다.

커스텀 모델 및 임베딩 (Custom Model and Embeddings)

DirectorySearchTool은 기본적으로 임베딩과 요약에 OpenAI를 사용합니다. 이러한 설정은 모델 제공자와 구성을 변경해 커스터마이즈할 수 있으며, 고급 사용자에게 더 큰 유연성을 제공합니다.

from chromadb.config import Settings

tool = DirectorySearchTool(
    config={
        "embedding_model": {
            "provider": "openai",
            "config": {
                "model": "text-embedding-3-small",
                # "api_key": "sk-...",
            },
        },
        "vectordb": {
            "provider": "chromadb",  # or "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),
            }
        },
    }
)

보안 (Security)

경로 검증 (Path Validation)

이 도구에 제공되는 디렉터리 경로는 현재 작업 디렉터리를 기준으로 검증됩니다. 작업 디렉터리 밖으로 벗어나는 경로는 ValueError로 거부됩니다.

작업 디렉터리 밖의 경로를 허용하려면(예: 테스트나 신뢰할 수 있는 파이프라인에서) 환경 변수를 설정하세요:

CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true

더 알아보기 (Learn more)