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").
            }
        },
    }
)

더 알아보기 (Learn more)