CSV RAG 검색
CSVSearchTool
섹션 제목: “CSVSearchTool”이 도구는 CSV 파일의 내용 내에서 RAG(검색 기반 생성) 검색을 수행하는 데 사용됩니다. 사용자는 지정된 CSV 파일의 콘텐츠에서 쿼리를 의미적으로 검색할 수 있습니다. 이 기능은 기존의 검색 방법이 비효율적일 수 있는 대용량 CSV 데이터셋에서 정보를 추출할 때 특히 유용합니다. “Search”라는 이름이 포함된 모든 도구, 예를 들어 CSVSearchTool을 포함하여, 다양한 데이터 소스를 검색하도록 설계된 RAG 도구입니다.
crewai_tools 패키지 설치
pip install 'crewai[tools]'from crewai_tools import CSVSearchTool
# Initialize the tool with a specific CSV file.# This setup allows the agent to only search the given CSV file.tool = CSVSearchTool(csv='path/to/your/csvfile.csv')
# OR
# Initialize the tool without a specific CSV file.# Agent will need to provide the CSV path at runtime.tool = CSVSearchTool()다음 매개변수들은 CSVSearchTool의 동작을 사용자 정의하는 데 사용할 수 있습니다:
| 인자 | 타입 | 설명 |
|---|---|---|
| csv | string | 선택 사항. 검색하려는 CSV 파일의 경로입니다. 이 인자는 도구가 특정 CSV 파일 없이 초기화된 경우 필수이며, 그렇지 않은 경우 선택 사항입니다. |
커스텀 모델 및 임베딩
섹션 제목: “커스텀 모델 및 임베딩”기본적으로 이 도구는 임베딩과 요약 모두에 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", # 또는 "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), } }, })경로 유효성 검사
섹션 제목: “경로 유효성 검사”이 도구에 제공되는 파일 경로는 현재 작업 디렉터리에 대해 검증됩니다. 작업 디렉터리 외부로 확인되는 경로는 ValueError로 거부됩니다.
작업 디렉터리 외부의 경로를 허용하려면 (예: 테스트 또는 신뢰할 수 있는 파이프라인), 다음 환경 변수를 설정하세요:
CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=trueURL 유효성 검사
섹션 제목: “URL 유효성 검사”URL 입력도 검증됩니다: file:// URI와 사설 또는 예약된 IP 범위를 대상으로 하는 요청은 서버 측 요청 위조(SSRF) 공격을 방지하기 위해 차단됩니다.