XML RAG 검색 도구

XML RAG 검색 도구 (XMLSearchTool)

CrewAI의 XMLSearchTool은 XML 파일 안에서 시맨틱 검색(의미 기반 검색)을 수행하는 RAG 도구예요. XML 문서를 자주 다루면서 필요한 정보를 빠르게 찾고 싶은 분께 안성맞춤이랍니다. 검색 쿼리와 선택적인 XML 파일 경로를 입력으로 받아요.

출처: 문서

본문

XMLSearchTool은 XML 파일 내에서 시맨틱 검색을 수행하도록 설계된 최첨단 RAG 도구입니다. XML 콘텐츠를 효율적으로 파싱하고 정보를 추출해야 하는 사용자에게 적합하며, 검색 쿼리와 선택적인 XML 파일 경로를 입력으로 지원해요. XML 경로를 지정하면 해당 파일의 콘텐츠에 한정해서 검색을 더욱 정밀하게 수행할 수 있으므로, 더 관련성 높은 검색 결과를 얻을 수 있습니다.

참고: 아직 도구 개선 작업이 진행 중이라, 예상치 못한 동작이나 향후 변경이 있을 수 있어요.

설치 (Installation)

XMLSearchTool을 사용하려면 먼저 crewai_tools 패키지를 설치해야 합니다. 다음 명령으로 간단히 설치할 수 있어요.

pip install 'crewai[tools]'

예시 (Example)

XMLSearchTool을 사용하는 두 가지 예시를 보여드릴게요. 첫 번째는 특정 XML 파일 안에서 검색하는 경우이고, 두 번째는 XML 경로를 미리 지정하지 않고 검색 범위에 유연성을 두는 경우입니다.

from crewai_tools import XMLSearchTool

# 에이전트가 실행 중 경로를 학습하므로
# 어떤 XML 파일의 콘텐츠에서든 검색하도록 허용
tool = XMLSearchTool()

# OR

# 특정 XML 파일 경로로 초기화하면
# 해당 문서 안에서만 검색
tool = XMLSearchTool(xml='path/to/your/xmlfile.xml')

인자 (Arguments)

  • xml: 검색하고자 하는 XML 파일의 경로예요. 도구 초기화 시에는 선택 파라미터이지만, 검색을 실행하려면 초기화 시점에 주거나 run 메서드의 인자로 반드시 제공해야 합니다.

커스텀 모델과 임베딩 (Custom model and embeddings)

기본적으로 이 도구는 임베딩과 요약(등) 모두에 OpenAI를 사용해요. 모델을 커스터마이즈하려면 다음과 같이 config 딕셔너리를 사용하면 됩니다.

from chromadb.config import Settings

tool = XMLSearchTool(
    config={
        "embedding_model": {
            "provider": "openai",
            "config": {
                "model": "text-embedding-3-small",
                # "api_key": "sk-...",
            },
        },
        "vectordb": {
            "provider": "chromadb",  # or "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),
            }
        },
    }
)

더 알아보기 (Learn more)