웹사이트 RAG 검색 도구(WebsiteSearchTool)

웹사이트 RAG 검색 도구(WebsiteSearchTool)

특정 웹사이트 안의 내용만 골라서 의미 검색하고 싶을 때가 있습니다. 전체 인터넷이 아니라 "내가 정한 그 사이트" 한정으로요. WebsiteSearchTool은 그런 작업을 위해 구상된 RAG(Retrieval-Augmented Generation) 계열 도구입니다. 다만 이 글을 읽는 시점에는 아직 실험 단계라는 점을 함께 알아 두어야 해요.

출처: 공식문서

본문

WebsiteSearchTool은 현재 실험 단계(experimental phase)에 있습니다. 이 도구를 제품군에 통합하기 위해 적극적으로 작업 중이며 문서도 그에 맞춰 업데이트할 예정입니다.

설명

WebsiteSearchTool은 웹사이트 콘텐츠 내에서 의미 검색을 수행하는 개념으로 설계되었습니다. RAG 같은 고급 머신러닝 모델을 활용해 지정된 URL에서 정보를 효율적으로 탐색·추출하는 것을 목표로 해요. 이 도구는 유연성을 제공해 어떤 웹사이트든 검색하거나, 관심 있는 특정 사이트에 집중할 수 있게 하려고 합니다. 참고로 현재 WebsiteSearchTool의 구현 세부사항은 개발 중이며, 설명된 기능이 아직 접근 가능하지 않을 수 있습니다.

설치

WebsiteSearchTool이 사용 가능해졌을 때 환경을 준비하려면 기반 패키지를 설치할 수 있습니다.

pip install 'crewai[tools]'

이 명령은 이 도구가 완전히 통합되면 바로 사용할 수 있도록 필요한 의존성을 설치합니다.

사용 예제

아래 예제들은 다양한 시나리오에서 WebsiteSearchTool을 어떻게 활용할 수 있는지 보여 줍니다. 이 예제들은 설명용이며 계획된 기능을 나타냅니다.

from crewai_tools import WebsiteSearchTool

# Example of initiating tool that agents can use 
# to search across any discovered websites
tool = WebsiteSearchTool()

# Example of limiting the search to the content of a specific website, 
# so now agents can only search within that website
tool = WebsiteSearchTool(website='https://example.com')

인자

  • website: 옵션. 집중 검색을 위해 웹사이트 URL을 지정합니다. 필요할 때 대상 검색을 가능하게 하는 유연성 향상용 인자입니다.

커스터마이징 옵션

기본적으로 이 도구는 임베딩과 요약(summarization) 모두에 OpenAI를 사용합니다. 모델을 바꾸려면 아래처럼 config 딕셔너리를 사용합니다.

tool = WebsiteSearchTool(
    config=dict(
        llm=dict(
            provider="ollama", # or google, openai, anthropic, llama2, ...
            config=dict(
                model="llama2",
                # temperature=0.5,
                # top_p=1,
                # stream=true,
            ),
        ),
        embedder=dict(
            provider="google-generativeai", # or openai, ollama, ...
            config=dict(
                model_name="gemini-embedding-001",
                task_type="RETRIEVAL_DOCUMENT",
                # title="Embeddings",
            ),
        ),
    )
)

더 알아보기