CSV RAG Search

CSVSearchTool은 CSV 파일의 내용을 대상으로 시맨틱 검색을 수행하는 강력한 RAG(Retrieval-Augmented Generation) 도구예요.

출처: 문서

본문

CSVSearchTool

실험 단계: 도구를 계속 개선 중이라 예상치 못한 동작이나 향후 변경 사항이 있을 수 있어요.

설명 (Description)

이 도구는 CSV 파일의 내용 안에서 RAG(Retrieval-Augmented Generation) 검색을 수행하는 데 사용됩니다. 지정한 CSV 파일의 내용을 대상으로 쿼리를 시맨틱하게 검색할 수 있어요.

특히 전통적인 검색 방법이 비효율적일 수 있는 대용량 CSV 데이터셋에서 정보를 추출할 때 유용합니다. 이름에 "Search"가 들어가는 모든 도구(CSVSearchTool 포함)는 서로 다른 데이터 소스를 검색하도록 설계된 RAG 도구입니다.

설치 (Installation)

crewai_tools 패키지를 설치하세요.

pip install 'crewai[tools]'

예시 (Example)

from crewai_tools import CSVSearchTool

# 특정 CSV 파일로 도구 초기화하기.
# 이 설정은 에이전트가 주어진 CSV 파일만 검색하도록 합니다.
tool = CSVSearchTool(csv='path/to/your/csvfile.csv')

# OR

# 특정 CSV 파일 없이 도구 초기화하기.
# 에이전트가 실행 중에 CSV 경로를 제공해야 합니다.
tool = CSVSearchTool()

인자 (Arguments)

CSVSearchTool의 동작을 커스터마이즈하는 데 사용할 수 있는 매개변수는 다음과 같습니다:

Argument Type Description
csv string 선택 사항. 검색하려는 CSV 파일의 경로입니다. 특정 CSV 파일 없이 초기화한 경우 필수 인자이며, 그 외에는 선택 사항입니다.

커스텀 모델 및 임베딩 (Custom model and embeddings)

기본적으로 이 도구는 임베딩과 요약 모두에 OpenAI를 사용합니다. 모델을 커스터마이즈하려면 다음과 같이 config 사전을 사용할 수 있어요.

from chromadb.config import Settings

tool = CSVSearchTool(
    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

URL 검증 (URL Validation)

URL 입력이 검증됩니다. file:// URI와 프라이빗·예약 IP 대역을 대상으로 하는 요청은 서버 측 요청 위조(SSRF) 공격을 막기 위해 차단됩니다.

더 알아보기 (Learn more)