---
title: TXT RAG 검색
description: TXTSearchTool은 텍스트 파일의 내용 내에서 RAG(Retrieval-Augmented Generation) 검색을 수행하도록 설계되었습니다.
icon: file-lines
mode: "wide"
---

## 개요

<Note>
    저희는 도구를 계속 개선하고 있으므로, 추후에 예기치 않은 동작이나 변경이 발생할 수 있습니다.
</Note>

이 도구는 텍스트 파일의 콘텐츠 내에서 RAG(Retrieval-Augmented Generation) 검색을 수행하는 데 사용됩니다.
지정된 텍스트 파일의 콘텐츠에서 쿼리를 의미적으로 검색할 수 있어,
제공된 쿼리를 기반으로 정보를 신속하게 추출하거나 특정 텍스트 섹션을 찾는 데 매우 유용한 리소스입니다.

## 설치

`TXTSearchTool`을 사용하려면 먼저 `crewai_tools` 패키지를 설치해야 합니다.
이 작업은 Python용 패키지 관리자 pip를 사용하여 수행할 수 있습니다.
터미널 또는 명령 프롬프트를 열고 다음 명령어를 입력하세요:

```shell
pip install 'crewai[tools]'
```

이 명령어는 TXTSearchTool과 필요한 모든 종속성을 다운로드하고 설치합니다.

## 예시

다음 예시는 TXTSearchTool을 사용하여 텍스트 파일 내에서 검색하는 방법을 보여줍니다.
이 예시는 특정 텍스트 파일로 도구를 초기화하는 방법과, 해당 파일의 내용에서 검색을 수행하는 방법을 모두 포함하고 있습니다.

```python Code
from crewai_tools import TXTSearchTool

# Initialize the tool to search within any text file's content
# the agent learns about during its execution
tool = TXTSearchTool()

# OR

# Initialize the tool with a specific text file,
# so the agent can search within the given text file's content
tool = TXTSearchTool(txt='path/to/text/file.txt')
```

## 인자
- `txt` (str): **선택 사항**입니다. 검색하려는 텍스트 파일의 경로입니다.
이 인자는 도구가 특정 텍스트 파일로 초기화되지 않은 경우에만 필요합니다;
그렇지 않은 경우 검색은 처음에 제공된 텍스트 파일 내에서 수행됩니다.

## 커스텀 모델 및 임베딩

기본적으로 이 도구는 임베딩과 요약을 위해 OpenAI를 사용합니다.
모델을 커스터마이징하려면 다음과 같이 config 딕셔너리를 사용할 수 있습니다:

```python Code
from chromadb.config import Settings

tool = TXTSearchTool(
    config={
        # 필수: 임베딩 제공자 + 설정
        "embedding_model": {
            "provider": "openai",  # 또는 google-generativeai, cohere, ollama 등
            "config": {
                "model": "text-embedding-3-small",
                # "api_key": "sk-...",  # 환경변수 사용 시 생략 가능
                # 공급자별 예시: Google → model: "models/embedding-001", task_type: "retrieval_document"
            },
        },

        # 필수: 벡터DB 설정
        "vectordb": {
            "provider": "chromadb",  # 또는 "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").
            }
        },
    }
)
```
