Tavily Extractor 도구
Tavily Extractor 도구 (TavilyExtractorTool)
CrewAI의 TavilyExtractorTool은 Tavily API를 사용해 웹 페이지에서 구조화된 콘텐츠를 추출하는 도구예요. 단일 URL 또는 URL 목록을 처리할 수 있고, 추출 심도와 이미지 포함 여부를 제어하는 옵션을 제공합니다. 웹 콘텐츠 분석·데이터 수집·모니터링에 유용하답니다.
출처: 문서
본문
TavilyExtractorTool은 Tavily API를 사용해 CrewAI 에이전트가 웹 페이지에서 구조화된 콘텐츠를 추출할 수 있게 해줍니다. 단일 URL 또는 URL 목록을 처리할 수 있으며, 추출 심도를 제어하고 이미지를 포함하는 옵션을 제공해요.
설치 (Installation)
TavilyExtractorTool을 사용하려면 tavily-python 라이브러리를 설치해야 합니다.
uv add 'crewai[tools]' tavily-python
Tavily API 키도 환경변수로 설정해야 합니다.
export TAVILY_API_KEY='your-tavily-api-key'
사용 예시 (Example Usage)
CrewAI 에이전트 안에서 TavilyExtractorTool을 초기화하고 사용하는 방법은 다음과 같습니다.
import os
from crewai import Agent, Task, Crew
from crewai_tools import TavilyExtractorTool
# 환경에 TAVILY_API_KEY가 설정되어 있는지 확인
# os.environ["TAVILY_API_KEY"] = "YOUR_API_KEY"
# 도구 초기화
tavily_tool = TavilyExtractorTool()
# 이 도구를 사용하는 에이전트 생성
extractor_agent = Agent(
role='Web Content Extractor',
goal='Extract key information from specified web pages',
backstory='You are an expert at extracting relevant content from websites using the Tavily API.',
tools=[tavily_tool],
verbose=True
)
# 에이전트를 위한 태스크 정의
extract_task = Task(
description='Extract the main content from the URL https://example.com using basic extraction depth.',
expected_output='A JSON string containing the extracted content from the URL.',
agent=extractor_agent
)
# 크루 생성 및 실행
crew = Crew(
agents=[extractor_agent],
tasks=[extract_task],
verbose=2
)
result = crew.kickoff()
print(result)
설정 옵션 (Configuration Options)
TavilyExtractorTool은 다음 인자를 받습니다.
urls(Union[List[str], str]): 필수. 데이터를 추출할 단일 URL 문자열 또는 URL 문자열 목록.include_images(Optional[bool]): 추출 결과에 이미지 포함 여부. 기본값False.extract_depth(Literal["basic", "advanced"]): 추출 심도. 더 빠른 표면 추출에는"basic", 더 종합적인 추출에는"advanced". 기본값"basic".timeout(int): 추출 요청 완료를 기다리는 최대 시간(초). 기본값60.
고급 사용법 (Advanced Usage)
여러 URL과 고급 추출 (Multiple URLs with Advanced Extraction)
# 여러 URL과 고급 추출 예시
multi_extract_task = Task(
description='Extract content from https://example.com and https://anotherexample.org using advanced extraction.',
expected_output='A JSON string containing the extracted content from both URLs.',
agent=extractor_agent
)
# 커스텀 파라미터로 도구 설정
custom_extractor = TavilyExtractorTool(
extract_depth='advanced',
include_images=True,
timeout=120
)
agent_with_custom_tool = Agent(
role="Advanced Content Extractor",
goal="Extract comprehensive content with images",
tools=[custom_extractor]
)
도구 파라미터 (Tool Parameters)
초기화 시 파라미터를 설정해 도구의 동작을 커스터마이즈할 수 있어요.
# 커스텀 설정으로 초기화
extractor_tool = TavilyExtractorTool(
extract_depth='advanced', # 더 종합적인 추출
include_images=True, # 이미지 결과 포함
timeout=90 # 커스텀 타임아웃
)
기능 (Features)
- 단일 또는 여러 URL: 하나의 URL에서 콘텐츠를 추출하거나 한 요청에서 여러 URL 처리
- 설정 가능한 심도: basic(빠름)과 advanced(종합) 추출 모드 선택
- 이미지 지원: 추출 결과에 이미지 선택적으로 포함
- 구조화된 출력: 추출된 콘텐츠를 담은 형식 좋은 JSON 반환
- 에러 처리: 네트워크 타임아웃과 추출 오류에 대한 견고한 처리
응답 형식 (Response Format)
이 도구는 제공된 URL에서 추출된 구조화된 데이터를 나타내는 JSON 문자열을 반환합니다. 정확한 구조는 페이지 콘텐츠와 사용된 extract_depth에 따라 달라집니다.
공통 응답 요소는 다음과 같습니다.
- Title: 페이지 제목
- Content: 페이지의 주요 텍스트 콘텐츠
- Images: 이미지 URL과 메타데이터 (
include_images=True인 경우) - Metadata: 작성자, 설명 등의 추가 페이지 정보
사용 사례 (Use Cases)
- 콘텐츠 분석: 경쟁사 웹사이트에서 콘텐츠 추출 및 분석
- 리서치: 분석을 위해 여러 소스에서 구조화된 데이터 수집
- 콘텐츠 마이그레이션: 마이그레이션을 위해 기존 웹사이트에서 콘텐츠 추출
- 모니터링: 변경 감지를 위한 정기적 콘텐츠 추출
- 데이터 수집: 웹 소스에서 정보의 체계적 추출
응답 구조와 사용 가능한 옵션에 대한 자세한 내용은 Tavily API 문서를 참고하세요.