mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-11 00:58:30 +00:00
Add Korean translations (#3307)
This commit is contained in:
110
docs/ko/tools/search-research/arxivpapertool.mdx
Normal file
110
docs/ko/tools/search-research/arxivpapertool.mdx
Normal 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`(1–100)를 설정하고 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`, 범위 1–100): 결과 수.
|
||||
|
||||
## 출력 형식
|
||||
|
||||
이 도구는 다음과 같이 사람이 읽을 수 있는 논문 목록을 반환합니다:
|
||||
- 제목
|
||||
- 링크 (초록 페이지)
|
||||
- 요약/설명 (생략됨)
|
||||
|
||||
`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 오류는 안내 메시지로 처리됩니다.
|
||||
96
docs/ko/tools/search-research/bravesearchtool.mdx
Normal file
96
docs/ko/tools/search-research/bravesearchtool.mdx
Normal 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에 대한 간단한 인터페이스를 제공하여, 검색 결과를 프로그래밍적으로 손쉽게 가져오고 처리할 수 있게 해줍니다. 제공된 설정 및 사용 지침을 따르면, 이 도구를 프로젝트에 통합하는 과정이 간편하고 직관적입니다.
|
||||
84
docs/ko/tools/search-research/codedocssearchtool.mdx
Normal file
84
docs/ko/tools/search-research/codedocssearchtool.mdx
Normal 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",
|
||||
),
|
||||
),
|
||||
)
|
||||
)
|
||||
```
|
||||
78
docs/ko/tools/search-research/databricks-query-tool.mdx
Normal file
78
docs/ko/tools/search-research/databricks-query-tool.mdx
Normal 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 웨어하우스와 스키마에 토큰으로 접근할 수 있는지 확인하세요.
|
||||
- 한계: 장시간 실행되는 쿼리는 에이전트 루프에서 피해야 하며, 필터나 제한을 추가하세요.
|
||||
52
docs/ko/tools/search-research/exasearchtool.mdx
Normal file
52
docs/ko/tools/search-research/exasearchtool.mdx
Normal 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 프로젝트에 통합함으로써, 사용자는 애플리케이션 내에서 실시간으로 인터넷을 직접 검색할 수 있는 능력을 얻게 됩니다.
|
||||
제공된 설정 및 사용 지침을 따르면, 이 도구를 프로젝트에 포함하는 과정이 간편하고 직관적입니다.
|
||||
85
docs/ko/tools/search-research/githubsearchtool.mdx
Normal file
85
docs/ko/tools/search-research/githubsearchtool.mdx
Normal 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 → Fine‑grained 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",
|
||||
),
|
||||
),
|
||||
)
|
||||
)
|
||||
```
|
||||
112
docs/ko/tools/search-research/linkupsearchtool.mdx
Normal file
112
docs/ko/tools/search-research/linkupsearchtool.mdx
Normal 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는 의사 결정 및 작업 수행을 향상시키기 위해 관련성 높고 최신의 정보에 접근할 수 있습니다.
|
||||
93
docs/ko/tools/search-research/overview.mdx
Normal file
93
docs/ko/tools/search-research/overview.mdx
Normal 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"
|
||||
)
|
||||
```
|
||||
63
docs/ko/tools/search-research/serpapi-googlesearchtool.mdx
Normal file
63
docs/ko/tools/search-research/serpapi-googlesearchtool.mdx
Normal 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를 래핑하고 구조화된 검색 결과를 반환합니다.
|
||||
59
docs/ko/tools/search-research/serpapi-googleshoppingtool.mdx
Normal file
59
docs/ko/tools/search-research/serpapi-googleshoppingtool.mdx
Normal 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, 선택): 지리적 위치 매개변수.
|
||||
105
docs/ko/tools/search-research/serperdevtool.mdx
Normal file
105
docs/ko/tools/search-research/serperdevtool.mdx
Normal 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 프로젝트에 통합함으로써, 사용자는 애플리케이션에서 직접 인터넷 전반에 걸친 실시간 및 관련성 높은 검색을 수행할 수 있는 능력을 갖게 됩니다.
|
||||
업데이트된 매개변수들은 보다 맞춤화되고 지역화된 검색 결과를 제공합니다. 제공된 설정 및 사용 지침을 준수함으로써, 이 도구를 프로젝트에 통합하는 과정이 간소화되고 직관적으로 이루어집니다.
|
||||
139
docs/ko/tools/search-research/tavilyextractortool.mdx
Normal file
139
docs/ko/tools/search-research/tavilyextractortool.mdx
Normal 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)를 참고하세요.
|
||||
124
docs/ko/tools/search-research/tavilysearchtool.mdx
Normal file
124
docs/ko/tools/search-research/tavilysearchtool.mdx
Normal 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 콘텐츠(활성화된 경우)
|
||||
|
||||
각 결과의 콘텐츠는 컨텍스트 윈도우 문제를 방지하면서 가장 관련성 높은 정보를 유지하도록 자동으로 잘립니다.
|
||||
77
docs/ko/tools/search-research/websitesearchtool.mdx
Normal file
77
docs/ko/tools/search-research/websitesearchtool.mdx
Normal 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",
|
||||
),
|
||||
),
|
||||
)
|
||||
)
|
||||
```
|
||||
194
docs/ko/tools/search-research/youtubechannelsearchtool.mdx
Normal file
194
docs/ko/tools/search-research/youtubechannelsearchtool.mdx
Normal 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 채널에서의 연구, 콘텐츠 분석, 지식 추출에 유용합니다.
|
||||
187
docs/ko/tools/search-research/youtubevideosearchtool.mdx
Normal file
187
docs/ko/tools/search-research/youtubevideosearchtool.mdx
Normal 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 비디오 콘텐츠에서 정보를 검색하고 추출할 수 있는 강력한 방법을 제공합니다. 이 도구를 통해 에이전트는 비디오 콘텐츠 내에서 검색을 수행할 수 있으므로, 그렇지 않으면 수행하기 어려운 정보 추출 및 분석 작업을 용이하게 할 수 있습니다. 이 도구는 특히 연구, 콘텐츠 분석, 그리고 비디오 소스에서 지식 추출을 위해 매우 유용합니다.
|
||||
Reference in New Issue
Block a user