JSON RAG Search
JSON RAG Search
JSONSearchTool은 JSON 파일을 검색하여 가장 관련성 높은 결과를 반환하도록 설계된 도구예요.
출처: 문서
본문
JSONSearchTool
The JSONSearchTool은 현재 실험 단계에 있습니다. 즉 이 도구는 활발히 개발 중이며, 사용자는 예상치 못한 동작이나 변경 사항을 겪을 수 있어요. 문제나 개선 제안에 대한 피드백을 적극 권장합니다.
설명 (Description)
JSONSearchTool은 JSON 파일의 내용 안에서 효율적이고 정밀한 검색을 촉진하도록 설계되었습니다. RAG(Retrieve and Generate) 검색 메커니즘을 활용하며, 특정 JSON 파일 안에서 타겟 검색을 위해 JSON 경로를 지정할 수 있게 해줍니다. 이 기능은 검색 결과의 정확성과 관련성을 크게 향상시킵니다.
설치 (Installation)
JSONSearchTool을 설치하려면 다음 pip 명령어를 사용하세요.
pip install 'crewai[tools]'
사용 예시 (Usage Examples)
JSON 파일 내에서 JSONSearchTool을 효과적으로 활용하는 방법에 대한 최신 예시입니다. 이 예시들은 코드베이스에서 확인된 현재 구현과 사용 패턴을 고려한 것입니다.
from crewai_tools import JSONSearchTool
# 일반 JSON 내용 검색
# JSON 경로를 사전에 알거나 동적으로 식별할 수 있을 때 적합합니다.
tool = JSONSearchTool()
# 특정 JSON 파일로 검색 범위 제한
# 검색 범위를 특정 JSON 파일로 제한하고 싶을 때 이 초기화 방법을 사용합니다.
tool = JSONSearchTool(json_path='./path/to/your/file.json')
인자 (Arguments)
json_path(str, optional): 검색할 JSON 파일의 경로를 지정합니다. 일반 검색용으로 초기화된 경우 이 인자는 필요하지 않습니다. 제공되면 검색을 지정된 JSON 파일로 한정합니다.
구성 옵션 (Configuration Options)
JSONSearchTool은 구성 사전을 통한 광범위한 커스터마이즈를 지원합니다. 이를 통해 사용자는 요구 사항에 따라 임베딩과 요약에 다른 모델을 선택할 수 있어요.
tool = JSONSearchTool(
config={
"llm": {
"provider": "ollama", # Other options include google, openai, anthropic, llama2, etc.
"config": {
"model": "llama2",
# Additional optional configurations can be specified here.
# temperature=0.5,
# top_p=1,
# stream=true,
},
},
"embedding_model": {
"provider": "google-generativeai", # or openai, ollama, ...
"config": {
"model_name": "gemini-embedding-001",
"task_type": "RETRIEVAL_DOCUMENT",
# Further customization options can be added here.
},
},
}
)
보안 (Security)
경로 검증 (Path Validation)
이 도구에 제공되는 파일 경로는 현재 작업 디렉터리를 기준으로 검증됩니다. 작업 디렉터리 밖으로 벗어나는 경로는 ValueError로 거부됩니다.
작업 디렉터리 밖의 경로를 허용하려면(예: 테스트나 신뢰할 수 있는 파이프라인에서) 환경 변수를 설정하세요:
CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true
URL 검증 (URL Validation)
URL 입력이 검증됩니다. file:// URI와 프라이빗·예약 IP 대역을 대상으로 하는 요청은 서버 측 요청 위조(SSRF) 공격을 막기 위해 차단됩니다.