Add Korean translations (#3307)
Some checks failed
Notify Downstream / notify-downstream (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled

This commit is contained in:
Daniel Barreto
2025-08-12 19:58:12 -03:00
committed by GitHub
parent 251ae00b8b
commit a0eadf783b
185 changed files with 36306 additions and 0 deletions

View File

@@ -0,0 +1,110 @@
---
title: Arxiv 논문 도구
description: ArxivPaperTool은 쿼리에 맞는 논문을 arXiv에서 검색하고, 선택적으로 PDF를 다운로드합니다.
icon: box-archive
---
# `ArxivPaperTool`
## 설명
`ArxivPaperTool`은 arXiv API를 통해 학술 논문을 검색하고 간결하고 읽기 쉬운 결과를 반환합니다. 또한 선택적으로 PDF 파일을 디스크에 다운로드할 수도 있습니다.
## 설치
이 도구는 `crewai-tools` 외에 별도의 특별한 설치가 필요하지 않습니다.
```shell
uv add crewai-tools
```
API 키가 필요하지 않습니다. 이 도구는 공개 arXiv Atom API를 사용합니다.
## 시작 단계
1. 도구를 초기화합니다.
2. `search_query`를 제공합니다 (예: "transformer neural network").
3. 선택적으로 생성자에서 `max_results`(1100)를 설정하고 PDF 다운로드를 활성화할 수 있습니다.
## 예시
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import ArxivPaperTool
tool = ArxivPaperTool(
download_pdfs=False,
save_dir="./arxiv_pdfs",
use_title_as_filename=True,
)
agent = Agent(
role="Researcher",
goal="Find relevant arXiv papers",
backstory="Expert at literature discovery",
tools=[tool],
verbose=True,
)
task = Task(
description="Search arXiv for 'transformer neural network' and list top 5 results.",
expected_output="A concise list of 5 relevant papers with titles, links, and summaries.",
agent=agent,
)
crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()
```
### 직접 사용 (Agent 없이)
```python Code
from crewai_tools import ArxivPaperTool
tool = ArxivPaperTool(
download_pdfs=True,
save_dir="./arxiv_pdfs",
)
print(tool.run(search_query="mixture of experts", max_results=3))
```
## 매개변수
### 초기화 매개변수
- `download_pdfs` (bool, 기본값 `False`): PDF를 다운로드할지 여부입니다.
- `save_dir` (str, 기본값 `./arxiv_pdfs`): PDF를 저장할 디렉터리입니다.
- `use_title_as_filename` (bool, 기본값 `False`): 논문 제목을 파일명으로 사용할지 여부입니다.
### 실행 매개변수
- `search_query` (str, 필수): arXiv 검색 쿼리입니다.
- `max_results` (int, 기본값 `5`, 범위 1100): 결과 수.
## 출력 형식
이 도구는 다음과 같이 사람이 읽을 수 있는 논문 목록을 반환합니다:
- 제목
- 링크 (초록 페이지)
- 요약/설명 (생략됨)
`download_pdfs=True`로 설정하면, PDF 파일이 디스크에 저장되며 요약에 저장된 파일이 언급됩니다.
## 사용 참고 사항
- 이 도구는 주요 메타데이터와 링크가 포함된 서식을 갖춘 텍스트를 반환합니다.
- `download_pdfs=True`인 경우, PDF는 `save_dir`에 저장됩니다.
## 문제 해결
- 네트워크 시간 초과가 발생하면 다시 시도하거나 `max_results` 값을 줄이십시오.
- 잘못된 XML 오류는 arXiv 응답 파싱 문제를 나타냅니다. 더 간단한 쿼리를 시도해 보십시오.
- 파일 시스템 오류(예: 권한 거부)는 PDF를 저장할 때 발생할 수 있습니다. `save_dir`가 쓰기 가능한지 확인하십시오.
## 관련 링크
- arXiv API 문서: https://info.arxiv.org/help/api/index.html
## 오류 처리
- 네트워크 문제, 잘못된 XML, 그리고 OS 오류는 안내 메시지로 처리됩니다.

View File

@@ -0,0 +1,96 @@
---
title: Brave Search
description: BraveSearchTool은 Brave Search API를 사용하여 인터넷을 검색하도록 설계되었습니다.
icon: searchengin
---
# `BraveSearchTool`
## 설명
이 도구는 Brave Search API를 사용하여 웹 검색을 수행하도록 설계되었습니다. 지정한 쿼리를 사용하여 인터넷을 검색하고 관련 결과를 가져올 수 있습니다. 이 도구는 결과 개수와 국가별 검색을 사용자 지정할 수 있는 기능을 지원합니다.
## 설치
이 도구를 프로젝트에 통합하려면 아래의 설치 지침을 따르세요:
```shell
pip install 'crewai[tools]'
```
## 시작 단계
`BraveSearchTool`을(를) 효과적으로 사용하려면 다음 단계를 따르세요:
1. **패키지 설치**: Python 환경에 `crewai[tools]` 패키지가 설치되어 있는지 확인합니다.
2. **API 키 획득**: https://api.search.brave.com/app/keys 에서 Brave Search API 키를 획득합니다(로그인하여 키를 생성).
3. **환경 설정**: 획득한 API 키를 `BRAVE_API_KEY`라는 환경 변수에 저장하여 도구에서 사용할 수 있도록 합니다.
## 예시
다음 예시는 도구를 초기화하고 주어진 쿼리로 검색을 실행하는 방법을 보여줍니다:
```python Code
from crewai_tools import BraveSearchTool
# 인터넷 검색 기능을 위한 도구 초기화
tool = BraveSearchTool()
# 검색 실행
results = tool.run(search_query="CrewAI agent framework")
print(results)
```
## 매개변수
`BraveSearchTool`은 다음과 같은 매개변수를 받습니다:
- **search_query**: 필수. 인터넷 검색에 사용할 검색 쿼리입니다.
- **country**: 선택. 검색 결과의 국가를 지정합니다. 기본값은 빈 문자열입니다.
- **n_results**: 선택. 반환할 검색 결과의 개수입니다. 기본값은 `10`입니다.
- **save_file**: 선택. 검색 결과를 파일로 저장할지 여부입니다. 기본값은 `False`입니다.
## 매개변수와 함께 사용하는 예시
다음은 추가 매개변수를 사용하여 도구를 활용하는 방법을 보여주는 예시입니다:
```python Code
from crewai_tools import BraveSearchTool
# Initialize the tool with custom parameters
tool = BraveSearchTool(
country="US",
n_results=5,
save_file=True
)
# Execute a search
results = tool.run(search_query="Latest AI developments")
print(results)
```
## 에이전트 통합 예시
다음은 `BraveSearchTool`을 CrewAI 에이전트와 통합하는 방법입니다:
```python Code
from crewai import Agent
from crewai.project import agent
from crewai_tools import BraveSearchTool
# Initialize the tool
brave_search_tool = BraveSearchTool()
# Define an agent with the BraveSearchTool
@agent
def researcher(self) -> Agent:
return Agent(
config=self.agents_config["researcher"],
allow_delegation=False,
tools=[brave_search_tool]
)
```
## 결론
`BraveSearchTool`을 Python 프로젝트에 통합함으로써, 사용자는 애플리케이션 내에서 직접 실시간으로 관련성 높은 인터넷 검색을 수행할 수 있습니다. 이 도구는 강력한 Brave Search API에 대한 간단한 인터페이스를 제공하여, 검색 결과를 프로그래밍적으로 손쉽게 가져오고 처리할 수 있게 해줍니다. 제공된 설정 및 사용 지침을 따르면, 이 도구를 프로젝트에 통합하는 과정이 간편하고 직관적입니다.

View File

@@ -0,0 +1,84 @@
---
title: 코드 문서 RAG 검색
description: CodeDocsSearchTool은(는) 코드 문서 내에서 의미론적 검색을 위해 설계된 강력한 RAG(Retrieval-Augmented Generation) 도구입니다.
icon: code
---
# `CodeDocsSearchTool`
<Note>
**실험적**: 저희는 도구를 계속 개선하고 있으므로, 향후 예기치 않은 동작이나 변경 사항이 발생할 수 있습니다.
</Note>
## 설명
CodeDocsSearchTool은 코드 문서 내에서 의미론적 검색을 할 수 있도록 설계된 강력한 RAG(Retrieval-Augmented Generation) 도구입니다.
이 도구를 사용하면 사용자는 코드 문서 내에서 특정 정보나 주제를 효율적으로 찾을 수 있습니다. 초기화 시 `docs_url`을 제공하면,
검색 범위를 해당 문서 사이트로 한정할 수 있습니다. 또는 특정 `docs_url`이 없는 경우,
실행 중에 알려지거나 발견된 다양한 코드 문서 전체를 대상으로 검색하므로, 다양한 문서 검색에 유연하게 활용할 수 있습니다.
## 설치
CodeDocsSearchTool을 사용하려면 먼저 pip를 통해 crewai_tools 패키지를 설치하세요:
```shell
pip install 'crewai[tools]'
```
## 예시
CodeDocsSearchTool을 다음과 같이 활용하여 코드 문서 내에서 검색을 수행할 수 있습니다:
```python Code
from crewai_tools import CodeDocsSearchTool
# URL이 알려졌거나 실행 중에 발견된 경우
# 모든 코드 문서 내용을 검색하려면:
tool = CodeDocsSearchTool()
# 또는
# 특정 문서 사이트 내에서 검색을 집중적으로 수행하려면
# 해당 사이트의 URL을 제공하세요:
tool = CodeDocsSearchTool(docs_url='https://docs.example.com/reference')
```
<Note>
'https://docs.example.com/reference'를 원하는 문서 URL로,
'How to use search tool'을 필요에 맞는 검색 쿼리로 대체하세요.
</Note>
## 인수
다음 매개변수들은 `CodeDocsSearchTool`의 동작을 사용자 지정하는 데 사용할 수 있습니다:
| 인수 | 타입 | 설명 |
|:------------------|:----------|:-----------------------------------------------------------------------------------------------------|
| **docs_url** | `string` | _선택 사항_. 검색할 코드 도큐멘테이션의 URL을 지정합니다. |
## 커스텀 모델 및 임베딩
기본적으로 이 도구는 임베딩과 요약 모두에 OpenAI를 사용합니다. 모델을 커스터마이즈하려면 아래와 같이 config 딕셔너리를 사용할 수 있습니다.
```python Code
tool = CodeDocsSearchTool(
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", # or openai, ollama, ...
config=dict(
model="models/embedding-001",
task_type="retrieval_document",
# title="Embeddings",
),
),
)
)
```

View File

@@ -0,0 +1,78 @@
---
title: Databricks SQL 쿼리 도구
description: DatabricksQueryTool은 Databricks 워크스페이스 테이블에 대해 SQL 쿼리를 실행합니다.
icon: trowel-bricks
---
# `DatabricksQueryTool`
## 설명
CLI 프로필 또는 직접 호스트/토큰 인증을 사용하여 Databricks 워크스페이스 테이블에 대해 SQL을 실행합니다.
## 설치
```shell
uv add crewai-tools[databricks-sdk]
```
## 환경 변수
- `DATABRICKS_CONFIG_PROFILE` 또는 (`DATABRICKS_HOST` + `DATABRICKS_TOKEN`)
개인 액세스 토큰을 생성하고 Databricks 작업 공간의 사용자 설정 → 개발자 메뉴에서 호스트 정보를 확인하세요.
문서: https://docs.databricks.com/ko/dev-tools/auth/pat.html
## 예시
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import DatabricksQueryTool
tool = DatabricksQueryTool(
default_catalog="main",
default_schema="default",
)
agent = Agent(
role="Data Analyst",
goal="Query Databricks",
tools=[tool],
verbose=True,
)
task = Task(
description="SELECT * FROM my_table LIMIT 10",
expected_output="10 rows",
agent=agent,
)
crew = Crew(
agents=[agent],
tasks=[task],
verbose=True,
)
result = crew.kickoff()
print(result)
```
## 매개변수
- `query` (필수): 실행할 SQL 쿼리
- `catalog` (선택): 기본 카탈로그 재정의
- `db_schema` (선택): 기본 스키마 재정의
- `warehouse_id` (선택): 기본 SQL 웨어하우스 재정의
- `row_limit` (선택): 반환할 최대 행 수 (기본값: 1000)
## 초기화 시 기본값
- `default_catalog`
- `default_schema`
- `default_warehouse_id`
### 오류 처리 및 팁
- 인증 오류: `DATABRICKS_HOST`가 `https://`로 시작하는지와 토큰이 유효한지 확인하세요.
- 권한: SQL 웨어하우스와 스키마에 토큰으로 접근할 수 있는지 확인하세요.
- 한계: 장시간 실행되는 쿼리는 에이전트 루프에서 피해야 하며, 필터나 제한을 추가하세요.

View File

@@ -0,0 +1,52 @@
---
title: EXA 검색 웹 로더
description: EXASearchTool은 인터넷 전반에 걸쳐 텍스트의 내용에서 지정된 쿼리에 대한 시맨틱 검색을 수행하도록 설계되었습니다.
icon: globe-pointer
---
# `EXASearchTool`
## 설명
EXASearchTool은 텍스트의 내용을 기반으로 지정된 쿼리를 인터넷 전반에 걸쳐 의미론적으로 검색하도록 설계되었습니다.
사용자가 제공한 쿼리를 기반으로 가장 관련성 높은 검색 결과를 가져오고 표시하기 위해 [exa.ai](https://exa.ai/) API를 활용합니다.
## 설치
이 도구를 프로젝트에 포함하려면 아래 설치 지침을 따르세요:
```shell
pip install 'crewai[tools]'
```
## 예제
다음 예제는 도구를 초기화하고 주어진 쿼리로 검색을 실행하는 방법을 보여줍니다:
```python Code
from crewai_tools import EXASearchTool
# Initialize the tool for internet searching capabilities
tool = EXASearchTool()
```
## 시작 단계
EXASearchTool을 효과적으로 사용하려면 다음 단계를 따르세요:
<Steps>
<Step title="패키지 설치">
Python 환경에 `crewai[tools]` 패키지가 설치되어 있는지 확인하세요.
</Step>
<Step title="API 키 획득">
[exa.ai](https://exa.ai/)에서 무료 계정을 등록하여 [exa.ai](https://exa.ai/) API 키를 획득하세요.
</Step>
<Step title="환경 설정">
획득한 API 키를 도구에서 사용할 수 있도록 `EXA_API_KEY`라는 환경 변수에 저장하세요.
</Step>
</Steps>
## 결론
`EXASearchTool`을 Python 프로젝트에 통합함으로써, 사용자는 애플리케이션 내에서 실시간으로 인터넷을 직접 검색할 수 있는 능력을 얻게 됩니다.
제공된 설정 및 사용 지침을 따르면, 이 도구를 프로젝트에 포함하는 과정이 간편하고 직관적입니다.

View File

@@ -0,0 +1,85 @@
---
title: Github 검색
description: GithubSearchTool은 웹사이트를 검색하고 이를 깔끔한 마크다운 또는 구조화된 데이터로 변환하도록 설계되었습니다.
icon: github
---
# `GithubSearchTool`
<Note>
저희는 도구를 계속 개선하고 있으므로, 예기치 않은 동작이나 향후 변경 사항이 있을 수 있습니다.
</Note>
## 설명
GithubSearchTool은 GitHub 리포지토리 내에서 시맨틱 검색을 수행하기 위해 특별히 설계된 Retrieval-Augmented Generation (RAG) 도구입니다. 고도화된 시맨틱 검색 기능을 활용하여 코드, 풀 리퀘스트, 이슈, 리포지토리를 탐색하므로, 개발자, 연구자 또는 GitHub에서 정확한 정보를 필요로 하는 모든 사람에게 필수적인 도구입니다.
## 설치
GithubSearchTool을 사용하려면 먼저 Python 환경에 crewai_tools 패키지가 설치되어 있어야 합니다:
```shell
pip install 'crewai[tools]'
```
이 명령어는 GithubSearchTool과 crewai_tools 패키지에 포함된 기타 도구들을 실행하는 데 필요한 패키지를 설치합니다.
GitHub Personal Access Token은 https://github.com/settings/tokens (Developer settings → Finegrained tokens 또는 classic tokens)에서 발급받으실 수 있습니다.
## 예시
다음은 GithubSearchTool을 사용하여 GitHub 저장소 내에서 시맨틱 검색을 수행하는 방법입니다:
```python Code
from crewai_tools import GithubSearchTool
# 특정 GitHub 저장소 내에서 시맨틱 검색을 위한 도구 초기화
tool = GithubSearchTool(
github_repo='https://github.com/example/repo',
gh_token='your_github_personal_access_token',
content_types=['code', 'issue'] # 옵션: code, repo, pr, issue
)
# 또는
# 특정 GitHub 저장소 내에서 시맨틱 검색을 위한 도구를 초기화하여, agent가 실행 중에 알게 된 어떤 저장소라도 검색할 수 있도록 함
tool = GithubSearchTool(
gh_token='your_github_personal_access_token',
content_types=['code', 'issue'] # 옵션: code, repo, pr, issue
)
```
## 인자
- `github_repo` : 검색이 수행될 GitHub 저장소의 URL입니다. 이 필드는 필수이며, 검색 대상 저장소를 지정합니다.
- `gh_token` : 인증에 필요한 GitHub 개인 액세스 토큰(PAT)입니다. GitHub 계정의 설정 > 개발자 설정 > 개인 액세스 토큰에서 생성할 수 있습니다.
- `content_types` : 검색에 포함할 콘텐츠 유형을 지정합니다. 다음 옵션 중에서 콘텐츠 유형의 목록을 제공해야 합니다: 코드 내에서 검색하려면 `code`, 저장소의 일반 정보 내에서 검색하려면 `repo`, 풀 리퀘스트에서 검색하려면 `pr`, 이슈에서 검색하려면 `issue`.
이 필드는 필수이며, GitHub 저장소 내에서 특정 콘텐츠 유형에 맞춰 검색을 조정할 수 있습니다.
## 커스텀 모델 및 임베딩
기본적으로 이 도구는 임베딩과 요약 모두에 OpenAI를 사용합니다. 모델을 커스터마이징하려면 다음과 같이 config 딕셔너리를 사용할 수 있습니다.
```python Code
tool = GithubSearchTool(
config=dict(
llm=dict(
provider="ollama", # 또는 google, openai, anthropic, llama2, ...
config=dict(
model="llama2",
# temperature=0.5,
# top_p=1,
# stream=true,
),
),
embedder=dict(
provider="google", # 또는 openai, ollama, ...
config=dict(
model="models/embedding-001",
task_type="retrieval_document",
# title="Embeddings",
),
),
)
)
```

View File

@@ -0,0 +1,112 @@
---
title: Linkup 검색 도구
description: LinkupSearchTool은 Linkup API를 통해 컨텍스트 정보를 질의할 수 있도록 합니다.
icon: link
---
# `LinkupSearchTool`
## 설명
`LinkupSearchTool`은 Linkup API에 쿼리하여 컨텍스트 정보와 구조화된 결과를 가져올 수 있는 기능을 제공합니다. 이 도구는 Linkup으로부터 최신의 신뢰할 수 있는 정보를 워크플로우에 추가하는 데 이상적이며, 에이전트가 작업 중에 관련 데이터를 접근할 수 있도록 해줍니다.
## 설치
이 도구를 사용하려면 Linkup SDK를 설치해야 합니다:
```shell
uv add linkup-sdk
```
## 시작 단계
`LinkupSearchTool`을 효과적으로 사용하려면 다음 단계를 따라주세요:
1. **API 키**: Linkup API 키를 발급받으세요.
2. **환경 설정**: API 키로 환경을 설정하세요.
3. **SDK 설치**: 위의 명령어를 사용하여 Linkup SDK를 설치하세요.
## 예시
다음 예시는 도구를 초기화하고 에이전트에서 사용하는 방법을 보여줍니다:
```python Code
from crewai_tools import LinkupSearchTool
from crewai import Agent
import os
# Initialize the tool with your API key
linkup_tool = LinkupSearchTool(api_key=os.getenv("LINKUP_API_KEY"))
# Define an agent that uses the tool
@agent
def researcher(self) -> Agent:
'''
이 에이전트는 LinkupSearchTool을 사용하여 Linkup API에서
컨텍스트 정보를 가져옵니다.
'''
return Agent(
config=self.agents_config["researcher"],
tools=[linkup_tool]
)
```
## 매개변수
`LinkupSearchTool`은 다음과 같은 매개변수를 사용합니다:
### 생성자 매개변수
- **api_key**: 필수. 사용자의 Linkup API 키입니다.
### 실행 매개변수
- **query**: 필수입니다. 검색어 또는 구문입니다.
- **depth**: 선택 사항입니다. 검색 깊이입니다. 기본값은 "standard"입니다.
- **output_type**: 선택 사항입니다. 출력 유형입니다. 기본값은 "searchResults"입니다.
## 고급 사용법
더 구체적인 결과를 얻기 위해 검색 매개변수를 사용자 지정할 수 있습니다.
```python Code
# Perform a search with custom parameters
results = linkup_tool.run(
query="Women Nobel Prize Physics",
depth="deep",
output_type="searchResults"
)
```
## 반환 형식
도구는 다음과 같은 형식으로 결과를 반환합니다:
```json
{
"success": true,
"results": [
{
"name": "Result Title",
"url": "https://example.com/result",
"content": "Content of the result..."
},
// Additional results...
]
}
```
오류가 발생한 경우 응답은 다음과 같습니다:
```json
{
"success": false,
"error": "Error message"
}
```
## 오류 처리
이 도구는 API 오류를 우아하게 처리하고 구조화된 피드백을 제공합니다. API 요청이 실패할 경우, 도구는 `success: false`와 오류 메시지가 포함된 딕셔너리를 반환합니다.
## 결론
`LinkupSearchTool`은 Linkup의 컨텍스트 기반 정보 검색 기능을 CrewAI agent에 원활하게 통합할 수 있는 방법을 제공합니다. 이 도구를 활용하여 agent는 의사 결정 및 작업 수행을 향상시키기 위해 관련성 높고 최신의 정보에 접근할 수 있습니다.

View File

@@ -0,0 +1,93 @@
---
title: "개요"
description: "웹 검색을 수행하고, 저장소를 찾으며, 인터넷 전반에 걸쳐 정보를 조사합니다"
icon: "face-smile"
---
이러한 도구들은 에이전트가 웹을 검색하고, 다양한 주제를 조사하며, 검색 엔진, GitHub, YouTube 등 다양한 플랫폼에서 정보를 찾을 수 있도록 지원합니다.
## **사용 가능한 도구**
<CardGroup cols={2}>
<Card title="Serper Dev Tool" icon="google" href="/ko/tools/search-research/serperdevtool">
종합적인 웹 검색 기능을 위한 Google 검색 API 통합.
</Card>
<Card title="Brave Search Tool" icon="shield" href="/ko/tools/search-research/bravesearchtool">
Brave의 독립적인 검색 인덱스를 활용한 프라이버시 중심의 검색.
</Card>
<Card title="Exa Search Tool" icon="magnifying-glass" href="/ko/tools/search-research/exasearchtool">
특정하고 관련성 높은 콘텐츠를 찾기 위한 AI 기반 검색.
</Card>
<Card title="LinkUp Search Tool" icon="link" href="/ko/tools/search-research/linkupsearchtool">
최신 콘텐츠 인덱싱을 통한 실시간 웹 검색.
</Card>
<Card title="GitHub Search Tool" icon="github" href="/ko/tools/search-research/githubsearchtool">
GitHub 저장소, 코드, 이슈, 문서를 검색합니다.
</Card>
<Card title="Website Search Tool" icon="globe" href="/ko/tools/search-research/websitesearchtool">
특정 웹사이트 및 도메인 내에서 검색합니다.
</Card>
<Card title="Code Docs Search Tool" icon="code" href="/ko/tools/search-research/codedocssearchtool">
코드 문서와 기술 자료를 검색합니다.
</Card>
<Card title="YouTube Channel Search" icon="youtube" href="/ko/tools/search-research/youtubechannelsearchtool">
특정 콘텐츠 및 크리에이터를 찾기 위한 YouTube 채널 검색.
</Card>
<Card title="YouTube Video Search" icon="play" href="/ko/tools/search-research/youtubevideosearchtool">
주제, 키워드 또는 조건별로 YouTube 동영상을 찾고 분석합니다.
</Card>
<Card title="Tavily Search Tool" icon="magnifying-glass" href="/ko/tools/search-research/tavilysearchtool">
Tavily의 AI 기반 검색 API를 활용한 종합 웹 검색.
</Card>
<Card title="Tavily Extractor Tool" icon="file-text" href="/ko/tools/search-research/tavilyextractortool">
Tavily API를 사용하여 웹 페이지에서 구조화된 콘텐츠를 추출합니다.
</Card>
<Card title="Arxiv Paper Tool" icon="box-archive" href="/ko/tools/search-research/arxivpapertool">
arXiv에서 논문을 검색하고 선택적으로 PDF를 다운로드합니다.
</Card>
<Card title="SerpApi Google Search" icon="search" href="/ko/tools/search-research/serpapi-googlesearchtool">
구조화된 결과를 제공하는 SerpApi를 통한 Google 검색.
</Card>
<Card title="SerpApi Google Shopping" icon="cart-shopping" href="/ko/tools/search-research/serpapi-googleshoppingtool">
SerpApi를 통한 Google 쇼핑 쿼리.
</Card>
</CardGroup>
## **일반적인 사용 사례**
- **시장 조사**: 산업 트렌드와 경쟁사 분석 검색
- **콘텐츠 발견**: 관련 기사, 영상 및 자료 찾기
- **코드 연구**: 저장소 및 문서에서 솔루션 검색
- **리드 생성**: 기업 및 개인 조사
- **학술 연구**: 학술 기사 및 기술 논문 찾기
```python
from crewai_tools import SerperDevTool, GitHubSearchTool, YoutubeVideoSearchTool, TavilySearchTool, TavilyExtractorTool
# Create research tools
web_search = SerperDevTool()
code_search = GitHubSearchTool()
video_research = YoutubeVideoSearchTool()
tavily_search = TavilySearchTool()
content_extractor = TavilyExtractorTool()
# Add to your agent
agent = Agent(
role="Research Analyst",
tools=[web_search, code_search, video_research, tavily_search, content_extractor],
goal="Gather comprehensive information on any topic"
)
```

View File

@@ -0,0 +1,63 @@
---
title: SerpApi 구글 검색 도구
description: SerpApiGoogleSearchTool은 SerpApi 서비스를 사용하여 구글 검색을 수행합니다.
icon: google
---
# `SerpApiGoogleSearchTool`
## 설명
`SerpApiGoogleSearchTool`을 사용하여 SerpApi로 Google 검색을 실행하고 구조화된 결과를 가져올 수 있습니다. SerpApi API 키가 필요합니다.
## 설치
```shell
uv add crewai-tools[serpapi]
```
## 환경 변수
- `SERPAPI_API_KEY` (필수): SerpApi용 API 키입니다. https://serpapi.com/에서 생성할 수 있습니다(무료 요금제 제공).
## 예시
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import SerpApiGoogleSearchTool
tool = SerpApiGoogleSearchTool()
agent = Agent(
role="Researcher",
goal="Answer questions using Google search",
backstory="Search specialist",
tools=[tool],
verbose=True,
)
task = Task(
description="Search for the latest CrewAI releases",
expected_output="A concise list of relevant results with titles and links",
agent=agent,
)
crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()
```
## 참고 사항
- 환경 변수에 `SERPAPI_API_KEY`를 설정하세요. https://serpapi.com/ 에서 키를 생성할 수 있습니다.
- SerpApi를 통한 Google Shopping도 참조하세요: `/ko/tools/search-research/serpapi-googleshoppingtool`
## 파라미터
### 실행 파라미터
- `search_query` (str, 필수): Google 쿼리.
- `location` (str, 선택): 지리적 위치 파라미터.
## 참고 사항
- 이 도구는 SerpApi를 래핑하고 구조화된 검색 결과를 반환합니다.

View File

@@ -0,0 +1,59 @@
---
title: SerpApi 구글 쇼핑 도구
description: SerpApiGoogleShoppingTool은 SerpApi를 사용하여 구글 쇼핑 결과를 검색합니다.
icon: cart-shopping
---
# `SerpApiGoogleShoppingTool`
## 설명
`SerpApiGoogleShoppingTool`을 활용하여 SerpApi를 통해 Google 쇼핑을 쿼리하고 제품 중심 결과를 받아올 수 있습니다.
## 설치
```shell
uv add crewai-tools[serpapi]
```
## 환경 변수
- `SERPAPI_API_KEY` (필수): SerpApi용 API 키입니다. https://serpapi.com/에서 생성할 수 있습니다(무료 티어 제공).
## 예시
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import SerpApiGoogleShoppingTool
tool = SerpApiGoogleShoppingTool()
agent = Agent(
role="Shopping Researcher",
goal="Find relevant products",
backstory="Expert in product search",
tools=[tool],
verbose=True,
)
task = Task(
description="Search Google Shopping for 'wireless noise-canceling headphones'",
expected_output="Top relevant products with titles and links",
agent=agent,
)
crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()
```
## 참고 사항
- 환경 변수에 `SERPAPI_API_KEY`를 설정하세요. https://serpapi.com/ 에서 키를 생성할 수 있습니다.
- 또한 SerpApi를 통한 Google 웹 검색도 참고하세요: `/ko/tools/search-research/serpapi-googlesearchtool`
## 매개변수
### 실행 매개변수
- `search_query` (str, 필수): 제품 검색 쿼리.
- `location` (str, 선택): 지리적 위치 매개변수.

View File

@@ -0,0 +1,105 @@
---
title: Google Serper 검색
description: SerperDevTool은(는) 인터넷을 검색하여 가장 관련성 높은 결과를 반환하도록 설계되었습니다.
icon: google
---
# `SerperDevTool`
## 설명
이 도구는 인터넷 전체의 텍스트 내용에서 지정된 쿼리에 대한 시맨틱 검색을 수행하도록 설계되었습니다. 사용자가 제공한 쿼리를 기반으로 가장 관련성 높은 검색 결과를 가져와 표시하기 위해 [serper.dev](https://serper.dev) API를 활용합니다.
## 설치
`SerperDevTool`을 효과적으로 사용하려면 다음 단계를 따르십시오:
1. **패키지 설치**: Python 환경에 `crewai[tools]` 패키지가 설치되어 있는지 확인하세요.
2. **API 키 획득**: https://serper.dev/ (무료 플랜 제공)에서 `serper.dev` API 키를 획득하세요.
3. **환경 변수 설정**: 획득한 API 키를 `SERPER_API_KEY`라는 환경 변수에 저장하여 도구에서 사용할 수 있게 하세요.
이 도구를 프로젝트에 통합하려면 아래의 설치 지침을 따르십시오:
```shell
pip install 'crewai[tools]'
```
## 예제
다음 예제는 도구를 초기화하고 주어진 쿼리로 검색을 실행하는 방법을 보여줍니다:
```python Code
from crewai_tools import SerperDevTool
# Initialize the tool for internet searching capabilities
tool = SerperDevTool()
```
## 매개변수
`SerperDevTool`은 API에 전달될 여러 매개변수를 제공합니다:
- **search_url**: 검색 API의 URL 엔드포인트입니다. (기본값은 `https://google.serper.dev/search`)
- **country**: 선택 사항. 검색 결과에 사용할 국가를 지정합니다.
- **location**: 선택 사항. 검색 결과에 사용할 위치를 지정합니다.
- **locale**: 선택 사항. 검색 결과에 사용할 로케일을 지정합니다.
- **n_results**: 반환할 검색 결과의 개수입니다. 기본값은 `10`입니다.
`country`, `location`, `locale`, `search_url`의 값은 [Serper Playground](https://serper.dev/playground)에서 확인할 수 있습니다.
## 매개변수를 활용한 예시
다음은 추가 매개변수를 사용하여 도구를 활용하는 방법을 보여주는 예시입니다:
```python Code
from crewai_tools import SerperDevTool
tool = SerperDevTool(
search_url="https://google.serper.dev/scholar",
n_results=2,
)
print(tool.run(search_query="ChatGPT"))
# Using Tool: Search the internet
# Search results: Title: Role of chat gpt in public health
# Link: https://link.springer.com/article/10.1007/s10439-023-03172-7
# Snippet: … ChatGPT in public health. In this overview, we will examine the potential uses of ChatGPT in
# ---
# Title: Potential use of chat gpt in global warming
# Link: https://link.springer.com/article/10.1007/s10439-023-03171-8
# Snippet: … as ChatGPT, have the potential to play a critical role in advancing our understanding of climate
# ---
```
```python Code
from crewai_tools import SerperDevTool
tool = SerperDevTool(
country="fr",
locale="fr",
location="Paris, Paris, Ile-de-France, France",
n_results=2,
)
print(tool.run(search_query="Jeux Olympiques"))
# Using Tool: Search the internet
# Search results: Title: Jeux Olympiques de Paris 2024 - Actualités, calendriers, résultats
# Link: https://olympics.com/fr/paris-2024
# Snippet: Quels sont les sports présents aux Jeux Olympiques de Paris 2024 ? · Athlétisme · Aviron · Badminton · Basketball · Basketball 3x3 · Boxe · Breaking · Canoë ...
# ---
# Title: Billetterie Officielle de Paris 2024 - Jeux Olympiques et Paralympiques
# Link: https://tickets.paris2024.org/
# Snippet: Achetez vos billets exclusivement sur le site officiel de la billetterie de Paris 2024 pour participer au plus grand événement sportif au monde.
# ---
```
## 결론
`SerperDevTool`을 Python 프로젝트에 통합함으로써, 사용자는 애플리케이션에서 직접 인터넷 전반에 걸친 실시간 및 관련성 높은 검색을 수행할 수 있는 능력을 갖게 됩니다.
업데이트된 매개변수들은 보다 맞춤화되고 지역화된 검색 결과를 제공합니다. 제공된 설정 및 사용 지침을 준수함으로써, 이 도구를 프로젝트에 통합하는 과정이 간소화되고 직관적으로 이루어집니다.

View File

@@ -0,0 +1,139 @@
---
title: "Tavily 추출기 도구"
description: "Tavily API를 사용하여 웹 페이지에서 구조화된 콘텐츠를 추출합니다"
icon: square-poll-horizontal
---
`TavilyExtractorTool`은 CrewAI 에이전트가 Tavily API를 사용하여 웹 페이지에서 구조화된 콘텐츠를 추출할 수 있도록 합니다. 이 도구는 단일 URL 또는 URL 목록을 처리할 수 있으며, 추출 깊이를 제어하고 이미지를 포함하는 등의 옵션을 제공합니다.
## 설치
`TavilyExtractorTool`을 사용하려면 `tavily-python` 라이브러리를 설치해야 합니다:
```shell
pip install 'crewai[tools]' tavily-python
```
또한 Tavily API 키를 환경 변수로 설정해야 합니다:
```bash
export TAVILY_API_KEY='your-tavily-api-key'
```
## 예제 사용법
다음은 CrewAI agent 내에서 `TavilyExtractorTool`을 초기화하고 사용하는 방법입니다:
```python
import os
from crewai import Agent, Task, Crew
from crewai_tools import TavilyExtractorTool
# Ensure TAVILY_API_KEY is set in your environment
# os.environ["TAVILY_API_KEY"] = "YOUR_API_KEY"
# Initialize the tool
tavily_tool = TavilyExtractorTool()
# Create an agent that uses the tool
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
)
# Define a task for the agent
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
)
# Create and run the crew
crew = Crew(
agents=[extractor_agent],
tasks=[extract_task],
verbose=2
)
result = crew.kickoff()
print(result)
```
## 구성 옵션
`TavilyExtractorTool`은 다음과 같은 인자를 받습니다:
- `urls` (Union[List[str], str]): **필수**. 데이터를 추출할 단일 URL 문자열 또는 URL 문자열의 리스트.
- `include_images` (Optional[bool]): 추출 결과에 이미지를 포함할지 여부. 기본값은 `False`입니다.
- `extract_depth` (Literal["basic", "advanced"]): 추출의 깊이. 더 빠르고 표면적인 추출에는 `"basic"`을, 더 포괄적인 추출에는 `"advanced"`를 사용합니다. 기본값은 `"basic"`입니다.
- `timeout` (int): 추출 요청이 완료될 때까지 대기하는 최대 시간(초)입니다. 기본값은 `60`입니다.
## 고급 사용법
### 여러 URL과 고급 추출 기능
```python
# Example with multiple URLs and advanced extraction
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
)
# Configure the tool with custom parameters
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]
)
```
### 도구 매개변수
도구의 동작을 초기화 시 매개변수를 설정하여 사용자 정의할 수 있습니다:
```python
# 사용자 정의 설정으로 초기화
extractor_tool = TavilyExtractorTool(
extract_depth='advanced', # 보다 포괄적인 추출
include_images=True, # 이미지 결과 포함
timeout=90 # 사용자 정의 타임아웃
)
```
## 기능
- **단일 또는 여러 URL**: 하나의 URL에서 콘텐츠를 추출하거나 한 번의 요청으로 여러 URL을 처리할 수 있습니다
- **구성 가능한 깊이**: 기본(빠른) 및 고급(포괄적인) 추출 모드 중에서 선택할 수 있습니다
- **이미지 지원**: 원할 경우 추출 결과에 이미지를 포함할 수 있습니다
- **구조화된 출력**: 추출된 콘텐츠가 잘 포맷된 JSON으로 반환됩니다
- **오류 처리**: 네트워크 시간 초과 및 추출 오류에 대한 견고한 처리
## 응답 형식
도구는 제공된 URL에서 추출한 구조화된 데이터를 나타내는 JSON 문자열을 반환합니다. 정확한 구조는 페이지의 내용과 사용된 `extract_depth`에 따라 달라집니다.
일반적인 응답 요소는 다음과 같습니다:
- **Title**: 페이지 제목
- **Content**: 페이지의 주요 텍스트 내용
- **Images**: 이미지 URL 및 메타데이터 (`include_images=True`인 경우)
- **Metadata**: 저자, 설명 등 추가적인 페이지 정보
## 사용 사례
- **콘텐츠 분석**: 경쟁사 웹사이트에서 콘텐츠를 추출하고 분석
- **연구**: 다양한 소스에서 구조화된 데이터를 수집하여 분석
- **콘텐츠 마이그레이션**: 기존 웹사이트에서 콘텐츠를 추출하여 마이그레이션
- **모니터링**: 변경 감지를 위해 정기적으로 콘텐츠 추출
- **데이터 수집**: 웹 소스에서 정보를 체계적으로 추출
응답 구조와 사용 가능한 옵션에 대한 자세한 정보는 [Tavily API 문서](https://docs.tavily.com/docs/tavily-api/python-sdk#extract)를 참고하세요.

View File

@@ -0,0 +1,124 @@
---
title: "Tavily 검색 도구"
description: "Tavily Search API를 사용하여 종합적인 웹 검색 수행"
icon: "magnifying-glass"
---
`TavilySearchTool`은 Tavily Search API에 대한 인터페이스를 제공하여 CrewAI 에이전트가 포괄적인 웹 검색을 수행할 수 있도록 합니다. 이 도구는 검색 깊이, 주제, 시간 범위, 포함/제외 도메인, 그리고 결과에 직접 답변, 원시 콘텐츠, 이미지 포함 여부 등을 지정할 수 있게 해줍니다.
## 설치
`TavilySearchTool`을 사용하려면 `tavily-python` 라이브러리를 설치해야 합니다:
```shell
pip install 'crewai[tools]' tavily-python
```
## 환경 변수
Tavily API 키가 환경 변수로 설정되어 있는지 확인하세요:
```bash
export TAVILY_API_KEY='your_tavily_api_key'
```
https://app.tavily.com/에서 API 키를 발급받으세요(회원가입 후 키를 생성하면 됩니다).
## 예제 사용법
다음은 CrewAI agent 내에서 `TavilySearchTool`을 초기화하고 사용하는 방법입니다:
```python
import os
from crewai import Agent, Task, Crew
from crewai_tools import TavilySearchTool
# Ensure the TAVILY_API_KEY environment variable is set
# os.environ["TAVILY_API_KEY"] = "YOUR_TAVILY_API_KEY"
# Initialize the tool
tavily_tool = TavilySearchTool()
# Create an agent that uses the tool
researcher = Agent(
role='Market Researcher',
goal='Find information about the latest AI trends',
backstory='An expert market researcher specializing in technology.',
tools=[tavily_tool],
verbose=True
)
# Create a task for the agent
research_task = Task(
description='Search for the top 3 AI trends in 2024.',
expected_output='A JSON report summarizing the top 3 AI trends found.',
agent=researcher
)
# Form the crew and kick it off
crew = Crew(
agents=[researcher],
tasks=[research_task],
verbose=2
)
result = crew.kickoff()
print(result)
```
## 구성 옵션
`TavilySearchTool`은 초기화 시 또는 `run` 메서드를 호출할 때 다음과 같은 인자를 받습니다:
- `query` (str): **필수**. 검색 쿼리 문자열입니다.
- `search_depth` (Literal["basic", "advanced"], 선택): 검색의 심도입니다. 기본값은 `"basic"`입니다.
- `topic` (Literal["general", "news", "finance"], 선택): 검색을 집중할 주제입니다. 기본값은 `"general"`입니다.
- `time_range` (Literal["day", "week", "month", "year"], 선택): 검색을 위한 시간 범위입니다. 기본값은 `None`입니다.
- `days` (int, 선택): 과거 며칠까지 검색할지 지정합니다. `time_range`가 설정되지 않은 경우에 해당합니다. 기본값은 `7`입니다.
- `max_results` (int, 선택): 반환할 최대 검색 결과 수입니다. 기본값은 `5`입니다.
- `include_domains` (Sequence[str], 선택): 검색 시 우선순위를 둘 도메인 목록입니다. 기본값은 `None`입니다.
- `exclude_domains` (Sequence[str], 선택): 검색에서 제외할 도메인 목록입니다. 기본값은 `None`입니다.
- `include_answer` (Union[bool, Literal["basic", "advanced"]], 선택): 검색 결과로부터 직접적으로 생성된 답변을 포함할지 여부입니다. 기본값은 `False`입니다.
- `include_raw_content` (bool, 선택): 검색된 페이지의 원시 HTML 콘텐츠를 포함할지 여부입니다. 기본값은 `False`입니다.
- `include_images` (bool, 선택): 이미지 결과를 포함할지 여부입니다. 기본값은 `False`입니다.
- `timeout` (int, 선택): 요청의 타임아웃(초)입니다. 기본값은 `60`입니다.
## 고급 사용법
도구를 사용자 지정 매개변수로 구성할 수 있습니다:
```python
# Example: Initialize with specific parameters
custom_tavily_tool = TavilySearchTool(
search_depth='advanced',
max_results=10,
include_answer=True
)
# The agent will use these defaults
agent_with_custom_tool = Agent(
role="Advanced Researcher",
goal="Conduct detailed research with comprehensive results",
tools=[custom_tavily_tool]
)
```
## 기능
- **포괄적 검색**: Tavily의 강력한 검색 인덱스에 접근
- **설정 가능한 깊이**: 기본 및 고급 검색 모드 선택 가능
- **주제 필터링**: 일반, 뉴스, 금융 주제에 집중하여 검색
- **시간 범위 제어**: 결과를 특정 기간으로 제한
- **도메인 제어**: 특정 도메인을 포함하거나 제외 가능
- **직접 답변**: 검색 결과에서 통합된 답변 제공
- **콘텐츠 필터링**: 자동 콘텐츠 잘라내기를 통해 컨텍스트 윈도우 문제 방지
## 응답 형식
이 도구는 다음을 포함하는 JSON 문자열로 검색 결과를 반환합니다:
- 제목, URL, 본문 요약이 포함된 검색 결과
- 선택적으로 쿼리에 대한 직접 답변
- 선택적으로 이미지 결과
- 선택적으로 원시 HTML 콘텐츠(활성화된 경우)
각 결과의 콘텐츠는 컨텍스트 윈도우 문제를 방지하면서 가장 관련성 높은 정보를 유지하도록 자동으로 잘립니다.

View File

@@ -0,0 +1,77 @@
---
title: 웹사이트 RAG 검색
description: WebsiteSearchTool은(는) 웹사이트의 콘텐츠 내에서 RAG(Retrieval-Augmented Generation) 검색을 수행하도록 설계되었습니다.
icon: globe-stand
---
# `WebsiteSearchTool`
<Note>
WebsiteSearchTool은 현재 실험 단계에 있습니다. 저희는 이 도구를 제품군에 통합하기 위해 적극적으로 작업 중이며, 이에 따라 문서를 업데이트할 예정입니다.
</Note>
## 설명
WebsiteSearchTool은 웹사이트 내용 내에서 의미론적 검색을 수행하기 위한 개념으로 설계되었습니다.
이 도구는 Retrieval-Augmented Generation(RAG)과 같은 첨단 머신러닝 모델을 활용하여 지정된 URL에서 정보를 효율적으로 탐색하고 추출하는 것을 목표로 합니다.
사용자가 모든 웹사이트에서 검색을 수행하거나 관심 있는 특정 웹사이트에 집중할 수 있도록 유연성을 제공하는 것이 목적입니다.
현재 WebsiteSearchTool의 구현 세부 사항은 개발 중에 있으며, 설명된 기능들이 아직 제공되지 않을 수 있으니 참고 바랍니다.
## 설치
WebsiteSearchTool이 출시될 때 환경을 미리 준비하려면, 기본 패키지를 다음과 같이 설치할 수 있습니다:
```shell
pip install 'crewai[tools]'
```
이 명령어는 도구가 완전히 통합된 이후 즉시 사용할 수 있도록 필요한 종속성들을 설치합니다.
## 사용 예시
아래는 다양한 시나리오에서 WebsiteSearchTool을 어떻게 활용할 수 있는지에 대한 예시입니다. 참고로, 이 예시는 설명을 위한 것이며 계획된 기능을 나타냅니다:
```python Code
from crewai_tools import WebsiteSearchTool
# 에이전트가 사용할 수 있도록 도구를 초기화하는 예제
# 발견된 모든 웹사이트에서 검색할 수 있음
tool = WebsiteSearchTool()
# 특정 웹사이트의 콘텐츠로 검색을 제한하는 예제
# 이제 에이전트는 해당 웹사이트 내에서만 검색할 수 있음
tool = WebsiteSearchTool(website='https://example.com')
```
## 인자
- `website`: 선택적으로 웹사이트 URL을 지정하여 집중적인 검색을 수행할 수 있도록 하는 인자입니다. 이 인자는 필요에 따라 타겟팅된 검색을 가능하게 하여 도구의 유연성을 높이기 위해 설계되었습니다.
## 커스터마이즈 옵션
기본적으로 이 도구는 임베딩과 요약 모두에 OpenAI를 사용합니다. 모델을 커스터마이즈하려면 다음과 같이 config 딕셔너리를 사용할 수 있습니다:
```python Code
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", # or openai, ollama, ...
config=dict(
model="models/embedding-001",
task_type="retrieval_document",
# title="Embeddings",
),
),
)
)
```

View File

@@ -0,0 +1,194 @@
---
title: YouTube 채널 RAG 검색
description: YoutubeChannelSearchTool은 YouTube 채널의 콘텐츠 내에서 RAG(검색 증강 생성) 검색을 수행하도록 설계되었습니다.
icon: youtube
---
# `YoutubeChannelSearchTool`
<Note>
저희는 여전히 도구를 개선하고 있으므로, 향후 예기치 않은 동작이나 변경 사항이 발생할 수 있습니다.
</Note>
## 설명
이 도구는 특정 Youtube 채널의 콘텐츠 내에서 시맨틱 검색을 수행하도록 설계되었습니다.
RAG(Retrieval-Augmented Generation) 방법론을 활용하여 관련성 높은 검색 결과를 제공하며,
영상을 일일이 찾아보지 않고도 정보를 추출하거나 특정 콘텐츠를 찾는 데 매우 유용합니다.
이 도구는 Youtube 채널 내에서의 검색 과정을 간소화하여, 연구자, 콘텐츠 제작자, 그리고 특정 정보나 주제를 찾는 시청자들에게 적합합니다.
## 설치
YoutubeChannelSearchTool을 사용하려면 `crewai_tools` 패키지를 설치해야 합니다. 설치하려면 셸에서 다음 명령어를 실행하세요:
```shell
pip install 'crewai[tools]'
```
## 예제
다음 예제는 CrewAI 에이전트와 함께 `YoutubeChannelSearchTool`을 사용하는 방법을 보여줍니다:
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import YoutubeChannelSearchTool
# 전체 YouTube 채널 검색을 위한 도구를 초기화합니다
youtube_channel_tool = YoutubeChannelSearchTool()
# 도구를 사용하는 에이전트 정의
channel_researcher = Agent(
role="Channel Researcher",
goal="YouTube 채널에서 관련 정보를 추출하기",
backstory="YouTube 채널 콘텐츠 분석을 전문으로 하는 전문가 연구원입니다.",
tools=[youtube_channel_tool],
verbose=True,
)
# 특정 채널에서 정보를 검색하기 위한 예시 작업
research_task = Task(
description="YouTube 채널 {youtube_channel_handle}에서 머신러닝 튜토리얼에 대한 정보를 검색하세요.",
expected_output="채널에서 제공되는 주요 머신러닝 튜토리얼 요약.",
agent=channel_researcher,
)
# crew 생성 및 실행
crew = Crew(agents=[channel_researcher], tasks=[research_task])
result = crew.kickoff(inputs={"youtube_channel_handle": "@exampleChannel"})
```
특정 YouTube 채널 핸들로 도구를 초기화할 수도 있습니다:
```python Code
# 특정 YouTube 채널 핸들로 도구를 초기화합니다
youtube_channel_tool = YoutubeChannelSearchTool(
youtube_channel_handle='@exampleChannel'
)
# 도구를 사용하는 에이전트 정의
channel_researcher = Agent(
role="Channel Researcher",
goal="특정 YouTube 채널에서 관련 정보 추출",
backstory="YouTube 채널 콘텐츠 분석을 전문으로 하는 전문가 연구원입니다.",
tools=[youtube_channel_tool],
verbose=True,
)
```
## 파라미터
`YoutubeChannelSearchTool`은 다음 파라미터를 허용합니다:
- **youtube_channel_handle**: 선택 사항. 검색할 YouTube 채널의 핸들입니다. 초기화 시 제공되면, 에이전트가 도구를 사용할 때 별도로 입력할 필요가 없습니다. 핸들이 '@'로 시작하지 않으면 자동으로 추가됩니다.
- **config**: 선택 사항. LLM 및 임베더 설정을 포함한 기본 RAG 시스템의 구성입니다.
- **summarize**: 선택 사항. 검색된 콘텐츠를 요약할지 여부입니다. 기본값은 `False`입니다.
에이전트와 함께 도구를 사용할 때 에이전트가 제공해야 하는 값은 다음과 같습니다:
- **search_query**: 필수. 채널 콘텐츠에서 관련 정보를 찾기 위한 검색어입니다.
- **youtube_channel_handle**: 초기화 시 제공하지 않은 경우에만 필수. 검색할 YouTube 채널의 핸들입니다.
## 커스텀 모델 및 임베딩
기본적으로, 해당 도구는 임베딩과 요약 모두에 OpenAI를 사용합니다. 모델을 사용자 정의하려면 아래와 같이 config 딕셔너리를 사용할 수 있습니다:
```python Code
youtube_channel_tool = YoutubeChannelSearchTool(
config=dict(
llm=dict(
provider="ollama", # 또는 google, openai, anthropic, llama2, ...
config=dict(
model="llama2",
# temperature=0.5,
# top_p=1,
# stream=true,
),
),
embedder=dict(
provider="google", # 또는 openai, ollama, ...
config=dict(
model="models/embedding-001",
task_type="retrieval_document",
# title="Embeddings",
),
),
)
)
```
## 에이전트 통합 예시
다음은 `YoutubeChannelSearchTool`을 CrewAI 에이전트와 통합하는 방법에 대한 좀 더 자세한 예시입니다:
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import YoutubeChannelSearchTool
# Initialize the tool
youtube_channel_tool = YoutubeChannelSearchTool()
# Define an agent that uses the tool
channel_researcher = Agent(
role="Channel Researcher",
goal="Extract and analyze information from YouTube channels",
backstory="""You are an expert channel researcher who specializes in extracting
and analyzing information from YouTube channels. You have a keen eye for detail
and can quickly identify key points and insights from video content across an entire channel.""",
tools=[youtube_channel_tool],
verbose=True,
)
# Create a task for the agent
research_task = Task(
description="""
Search for information about data science projects and tutorials
in the YouTube channel {youtube_channel_handle}.
Focus on:
1. Key data science techniques covered
2. Popular tutorial series
3. Most viewed or recommended videos
Provide a comprehensive summary of these points.
""",
expected_output="A detailed summary of data science content available on the channel.",
agent=channel_researcher,
)
# Run the task
crew = Crew(agents=[channel_researcher], tasks=[research_task])
result = crew.kickoff(inputs={"youtube_channel_handle": "@exampleDataScienceChannel"})
```
## 구현 세부사항
`YoutubeChannelSearchTool`은 Retrieval-Augmented Generation의 기본 기능을 제공하는 `RagTool`의 하위 클래스로 구현되었습니다:
```python Code
class YoutubeChannelSearchTool(RagTool):
name: str = "Search a Youtube Channels content"
description: str = "A tool that can be used to semantic search a query from a Youtube Channels content."
args_schema: Type[BaseModel] = YoutubeChannelSearchToolSchema
def __init__(self, youtube_channel_handle: Optional[str] = None, **kwargs):
super().__init__(**kwargs)
if youtube_channel_handle is not None:
kwargs["data_type"] = DataType.YOUTUBE_CHANNEL
self.add(youtube_channel_handle)
self.description = f"A tool that can be used to semantic search a query the {youtube_channel_handle} Youtube Channels content."
self.args_schema = FixedYoutubeChannelSearchToolSchema
self._generate_description()
def add(
self,
youtube_channel_handle: str,
**kwargs: Any,
) -> None:
if not youtube_channel_handle.startswith("@"):
youtube_channel_handle = f"@{youtube_channel_handle}"
super().add(youtube_channel_handle, **kwargs)
```
## 결론
`YoutubeChannelSearchTool`은 RAG 기법을 활용하여 YouTube 채널 콘텐츠에서 정보를 검색하고 추출하는 강력한 방법을 제공합니다. 에이전트가 채널 전체의 영상을 대상으로 검색할 수 있도록 하여, 그렇지 않으면 수행하기 어려운 정보 추출 및 분석 작업을 용이하게 해줍니다. 이 도구는 특히 YouTube 채널에서의 연구, 콘텐츠 분석, 지식 추출에 유용합니다.

View File

@@ -0,0 +1,187 @@
---
title: YouTube 동영상 RAG 검색
description: YoutubeVideoSearchTool은 YouTube 동영상의 콘텐츠 내에서 RAG(Retrieval-Augmented Generation) 검색을 수행하도록 설계되었습니다.
icon: youtube
---
# `YoutubeVideoSearchTool`
<Note>
우리는 도구를 계속 개선하고 있으므로, 향후 예기치 않은 동작이나 변경이 있을 수 있습니다.
</Note>
## 설명
이 도구는 `crewai_tools` 패키지의 일부로, Youtube 동영상 콘텐츠 내에서 의미 기반 검색을 수행하도록 설계되었으며 Retrieval-Augmented Generation (RAG) 기술을 활용합니다.
이 도구는 패키지 내 여러 "검색" 도구 중 하나로, 다양한 소스에 대해 RAG를 활용합니다.
YoutubeVideoSearchTool은 검색에 유연성을 제공합니다. 사용자는 특정 동영상 URL을 지정하지 않고도 Youtube 동영상 콘텐츠 전반에 걸쳐 검색할 수 있으며,
URL을 제공하여 특정 Youtube 동영상에 대해 검색을 제한할 수도 있습니다.
## 설치
`YoutubeVideoSearchTool`을 사용하려면 먼저 `crewai_tools` 패키지를 설치해야 합니다.
이 패키지에는 데이터 분석 및 처리 작업을 향상시키기 위해 설계된 다양한 유틸리티와 함께 `YoutubeVideoSearchTool`이 포함되어 있습니다.
터미널에서 다음 명령어를 실행하여 패키지를 설치하세요:
```shell
pip install 'crewai[tools]'
```
## 예시
다음 예시는 `YoutubeVideoSearchTool`을 CrewAI agent와 함께 사용하는 방법을 보여줍니다.
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import YoutubeVideoSearchTool
# Initialize the tool for general YouTube video searches
youtube_search_tool = YoutubeVideoSearchTool()
# Define an agent that uses the tool
video_researcher = Agent(
role="Video Researcher",
goal="Extract relevant information from YouTube videos",
backstory="An expert researcher who specializes in analyzing video content.",
tools=[youtube_search_tool],
verbose=True,
)
# Example task to search for information in a specific video
research_task = Task(
description="Search for information about machine learning frameworks in the YouTube video at {youtube_video_url}",
expected_output="A summary of the key machine learning frameworks mentioned in the video.",
agent=video_researcher,
)
# Create and run the crew
crew = Crew(agents=[video_researcher], tasks=[research_task])
result = crew.kickoff(inputs={"youtube_video_url": "https://youtube.com/watch?v=example"})
```
도구를 특정 YouTube 동영상 URL로 초기화할 수도 있습니다:
```python Code
# Initialize the tool with a specific YouTube video URL
youtube_search_tool = YoutubeVideoSearchTool(
youtube_video_url='https://youtube.com/watch?v=example'
)
# Define an agent that uses the tool
video_researcher = Agent(
role="Video Researcher",
goal="Extract relevant information from a specific YouTube video",
backstory="An expert researcher who specializes in analyzing video content.",
tools=[youtube_search_tool],
verbose=True,
)
```
## 매개변수
`YoutubeVideoSearchTool`은(는) 다음과 같은 매개변수를 허용합니다:
- **youtube_video_url**: 선택 사항. 검색할 YouTube 비디오의 URL입니다. 초기화 시 제공되면, 에이전트가 도구를 사용할 때 해당 URL을 지정할 필요가 없습니다.
- **config**: 선택 사항. LLM 및 임베더 설정을 포함한 기본 RAG 시스템의 구성입니다.
- **summarize**: 선택 사항. 검색된 콘텐츠를 요약할지 여부입니다. 기본값은 `False`입니다.
에이전트와 함께 도구를 사용할 때 에이전트가 제공해야 하는 항목:
- **search_query**: 필수. 비디오 콘텐츠에서 관련 정보를 찾기 위한 검색 질의입니다.
- **youtube_video_url**: 초기화 시 제공되지 않은 경우에만 필수. 검색할 YouTube 비디오의 URL입니다.
## 사용자 지정 모델 및 임베딩
기본적으로 이 도구는 임베딩과 요약 모두에 OpenAI를 사용합니다. 모델을 사용자 지정하려면 다음과 같이 config 딕셔너리를 사용할 수 있습니다:
```python Code
youtube_search_tool = YoutubeVideoSearchTool(
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", # or openai, ollama, ...
config=dict(
model="models/embedding-001",
task_type="retrieval_document",
# title="Embeddings",
),
),
)
)
```
## 에이전트 통합 예시
아래는 `YoutubeVideoSearchTool`을 CrewAI 에이전트와 통합하는 방법에 대한 보다 자세한 예제입니다.
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import YoutubeVideoSearchTool
# Initialize the tool
youtube_search_tool = YoutubeVideoSearchTool()
# Define an agent that uses the tool
video_researcher = Agent(
role="Video Researcher",
goal="Extract and analyze information from YouTube videos",
backstory="""You are an expert video researcher who specializes in extracting
and analyzing information from YouTube videos. You have a keen eye for detail
and can quickly identify key points and insights from video content.""",
tools=[youtube_search_tool],
verbose=True,
)
# Create a task for the agent
research_task = Task(
description="""
Search for information about recent advancements in artificial intelligence
in the YouTube video at {youtube_video_url}.
Focus on:
1. Key AI technologies mentioned
2. Real-world applications discussed
3. Future predictions made by the speaker
Provide a comprehensive summary of these points.
""",
expected_output="A detailed summary of AI advancements, applications, and future predictions from the video.",
agent=video_researcher,
)
# Run the task
crew = Crew(agents=[video_researcher], tasks=[research_task])
result = crew.kickoff(inputs={"youtube_video_url": "https://youtube.com/watch?v=example"})
```
## 구현 세부사항
`YoutubeVideoSearchTool`은 Retrieval-Augmented Generation의 기본 기능을 제공하는 `RagTool`의 하위 클래스로 구현됩니다.
```python Code
class YoutubeVideoSearchTool(RagTool):
name: str = "Search a Youtube Video content"
description: str = "A tool that can be used to semantic search a query from a Youtube Video content."
args_schema: Type[BaseModel] = YoutubeVideoSearchToolSchema
def __init__(self, youtube_video_url: Optional[str] = None, **kwargs):
super().__init__(**kwargs)
if youtube_video_url is not None:
kwargs["data_type"] = DataType.YOUTUBE_VIDEO
self.add(youtube_video_url)
self.description = f"A tool that can be used to semantic search a query the {youtube_video_url} Youtube Video content."
self.args_schema = FixedYoutubeVideoSearchToolSchema
self._generate_description()
```
## 결론
`YoutubeVideoSearchTool`은 RAG 기술을 사용하여 YouTube 비디오 콘텐츠에서 정보를 검색하고 추출할 수 있는 강력한 방법을 제공합니다. 이 도구를 통해 에이전트는 비디오 콘텐츠 내에서 검색을 수행할 수 있으므로, 그렇지 않으면 수행하기 어려운 정보 추출 및 분석 작업을 용이하게 할 수 있습니다. 이 도구는 특히 연구, 콘텐츠 분석, 그리고 비디오 소스에서 지식 추출을 위해 매우 유용합니다.