TXT RAG 검색 도구
TXT RAG 검색 도구 (TXTSearchTool)
CrewAI의 TXTSearchTool은 텍스트 파일의 콘텐츠 안에서 RAG(Retrieval-Augmented Generation) 검색을 수행하는 도구예요. 주어진 쿼리를 기준으로 텍스트 파일에서 의미 기반 검색을 해서, 원하는 정보를 빠르게 추출하거나 특정 구간을 찾아낼 수 있답니다.
출처: 문서
본문
이 도구는 텍스트 파일의 콘텐츠 내에서 RAG 검색을 수행하는 데 사용됩니다. 지정된 텍스트 파일의 콘텐츠 안에서 쿼리를 의미 기반으로 검색할 수 있어서, 쿼리를 기준으로 정보를 빠르게 추출하거나 텍스트의 특정 부분을 찾아내는 데 매우 유용해요.
참고: 아직 도구 개선 작업이 진행 중이라, 예상치 못한 동작이나 향후 변경이 있을 수 있어요.
설치 (Installation)
TXTSearchTool을 사용하려면 먼저 crewai_tools 패키지를 설치해야 합니다. Python의 패키지 관리자인 pip를 사용해요. 터미널이나 명령 프롬프트를 열고 다음 명령을 입력하세요.
pip install 'crewai[tools]'
이 명령은 TXTSearchTool과 필요한 의존성을 함께 다운로드하고 설치합니다.
예시 (Example)
다음 예시는 TXTSearchTool을 사용해 텍스트 파일 안에서 검색하는 방법을 보여줘요. 특정 텍스트 파일로 도구를 초기화하는 방법과 그 파일의 콘텐츠 안에서 검색하는 과정을 모두 보여줍니다.
from crewai_tools import TXTSearchTool
# 에이전트가 실행 중 학습하는
# 어떤 텍스트 파일의 콘텐츠든 검색하도록 초기화
tool = TXTSearchTool()
# OR
# 특정 텍스트 파일로 초기화하면,
# 에이전트가 주어진 텍스트 파일의 콘텐츠 안에서 검색
tool = TXTSearchTool(txt='path/to/text/file.txt')
인자 (Arguments)
txt(str): 선택(Optional). 검색하고자 하는 텍스트 파일의 경로예요. 도구를 특정 텍스트 파일로 초기화하지 않은 경우에만 이 인자가 필요하며, 그렇지 않으면 처음 제공된 텍스트 파일 안에서 검색이 수행됩니다.
커스텀 모델과 임베딩 (Custom model and embeddings)
기본적으로 이 도구는 임베딩과 요약 모두에 OpenAI를 사용해요. 모델을 커스터마이즈하려면 다음과 같이 config 딕셔너리를 사용하면 됩니다.
from chromadb.config import Settings
tool = TXTSearchTool(
config={
# 필수: embeddings 제공자 + 설정
"embedding_model": {
"provider": "openai", # or google-generativeai, cohere, ollama, ...
"config": {
"model": "text-embedding-3-small",
# "api_key": "sk-...", # 환경변수가 설정되어 있다면 선택 (예: OPENAI_API_KEY 또는 EMBEDDINGS_OPENAI_API_KEY)
# Provider examples:
# Google → model_name: "gemini-embedding-001", task_type: "RETRIEVAL_DOCUMENT"
# Cohere → model: "embed-english-v3.0"
# Ollama → model: "nomic-embed-text"
},
},
# 필수: 벡터 데이터베이스 설정
"vectordb": {
"provider": "chromadb", # or "qdrant"
"config": {
# Chroma 설정 (선택적 영속화)
# "settings": Settings(
# persist_directory="/content/chroma",
# allow_reset=True,
# is_persistent=True,
# ),
# Qdrant 벡터 파라미터 예시:
# from qdrant_client.models import VectorParams, Distance
# "vectors_config": VectorParams(size=384, distance=Distance.COSINE),
# 참고: 컬렉션 이름은 도구가 관리합니다. (기본값: "rag_tool_collection").
}
},
}
)