mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-10 16:48:30 +00:00
Add Korean translations (#3307)
This commit is contained in:
187
docs/ko/tools/cloud-storage/bedrockinvokeagenttool.mdx
Normal file
187
docs/ko/tools/cloud-storage/bedrockinvokeagenttool.mdx
Normal file
@@ -0,0 +1,187 @@
|
||||
---
|
||||
title: Bedrock Invoke Agent 도구
|
||||
description: CrewAI 에이전트가 Amazon Bedrock 에이전트를 호출하고, 워크플로우 내에서 그 기능을 활용할 수 있도록 합니다
|
||||
icon: aws
|
||||
---
|
||||
|
||||
# `BedrockInvokeAgentTool`
|
||||
|
||||
`BedrockInvokeAgentTool`은 CrewAI agent가 Amazon Bedrock Agent를 호출하여 워크플로우 내에서 해당 기능을 활용할 수 있도록 해줍니다.
|
||||
|
||||
## 설치
|
||||
|
||||
```bash
|
||||
uv pip install 'crewai[tools]'
|
||||
```
|
||||
|
||||
## 요구 사항
|
||||
|
||||
- AWS 자격 증명이 구성되어 있어야 합니다(AWS CLI 또는 환경 변수 사용)
|
||||
- `boto3` 및 `python-dotenv` 패키지
|
||||
- Amazon Bedrock Agents에 대한 액세스 권한
|
||||
|
||||
## 사용법
|
||||
|
||||
CrewAI agent와 함께 이 도구를 사용하는 방법은 다음과 같습니다:
|
||||
|
||||
```python {2, 4-8}
|
||||
from crewai import Agent, Task, Crew
|
||||
from crewai_tools.aws.bedrock.agents.invoke_agent_tool import BedrockInvokeAgentTool
|
||||
|
||||
# Initialize the tool
|
||||
agent_tool = BedrockInvokeAgentTool(
|
||||
agent_id="your-agent-id",
|
||||
agent_alias_id="your-agent-alias-id"
|
||||
)
|
||||
|
||||
# Create a CrewAI agent that uses the tool
|
||||
aws_expert = Agent(
|
||||
role='AWS Service Expert',
|
||||
goal='Help users understand AWS services and quotas',
|
||||
backstory='I am an expert in AWS services and can provide detailed information about them.',
|
||||
tools=[agent_tool],
|
||||
verbose=True
|
||||
)
|
||||
|
||||
# Create a task for the agent
|
||||
quota_task = Task(
|
||||
description="Find out the current service quotas for EC2 in us-west-2 and explain any recent changes.",
|
||||
agent=aws_expert
|
||||
)
|
||||
|
||||
# Create a crew with the agent
|
||||
crew = Crew(
|
||||
agents=[aws_expert],
|
||||
tasks=[quota_task],
|
||||
verbose=2
|
||||
)
|
||||
|
||||
# Run the crew
|
||||
result = crew.kickoff()
|
||||
print(result)
|
||||
```
|
||||
|
||||
## 도구 인수
|
||||
|
||||
| 인수 | 타입 | 필수 여부 | 기본값 | 설명 |
|
||||
|:---------|:-----|:---------|:--------|:------------|
|
||||
| **agent_id** | `str` | 예 | 없음 | Bedrock agent의 고유 식별자 |
|
||||
| **agent_alias_id** | `str` | 예 | 없음 | agent alias의 고유 식별자 |
|
||||
| **session_id** | `str` | 아니오 | timestamp | 세션의 고유 식별자 |
|
||||
| **enable_trace** | `bool` | 아니오 | False | 디버깅을 위한 trace 활성화 여부 |
|
||||
| **end_session** | `bool` | 아니오 | False | 호출 후 세션 종료 여부 |
|
||||
| **description** | `str` | 아니오 | 없음 | 도구에 대한 사용자 지정 설명 |
|
||||
|
||||
## 환경 변수
|
||||
|
||||
```bash
|
||||
BEDROCK_AGENT_ID=your-agent-id # Alternative to passing agent_id
|
||||
BEDROCK_AGENT_ALIAS_ID=your-agent-alias-id # Alternative to passing agent_alias_id
|
||||
AWS_REGION=your-aws-region # Defaults to us-west-2
|
||||
AWS_ACCESS_KEY_ID=your-access-key # Required for AWS authentication
|
||||
AWS_SECRET_ACCESS_KEY=your-secret-key # Required for AWS authentication
|
||||
```
|
||||
|
||||
## 고급 사용법
|
||||
|
||||
### 세션 관리가 포함된 다중 에이전트 워크플로우
|
||||
|
||||
```python {2, 4-22}
|
||||
from crewai import Agent, Task, Crew, Process
|
||||
from crewai_tools.aws.bedrock.agents.invoke_agent_tool import BedrockInvokeAgentTool
|
||||
|
||||
# Initialize tools with session management
|
||||
initial_tool = BedrockInvokeAgentTool(
|
||||
agent_id="your-agent-id",
|
||||
agent_alias_id="your-agent-alias-id",
|
||||
session_id="custom-session-id"
|
||||
)
|
||||
|
||||
followup_tool = BedrockInvokeAgentTool(
|
||||
agent_id="your-agent-id",
|
||||
agent_alias_id="your-agent-alias-id",
|
||||
session_id="custom-session-id"
|
||||
)
|
||||
|
||||
final_tool = BedrockInvokeAgentTool(
|
||||
agent_id="your-agent-id",
|
||||
agent_alias_id="your-agent-alias-id",
|
||||
session_id="custom-session-id",
|
||||
end_session=True
|
||||
)
|
||||
|
||||
# Create agents for different stages
|
||||
researcher = Agent(
|
||||
role='AWS Service Researcher',
|
||||
goal='Gather information about AWS services',
|
||||
backstory='I am specialized in finding detailed AWS service information.',
|
||||
tools=[initial_tool]
|
||||
)
|
||||
|
||||
analyst = Agent(
|
||||
role='Service Compatibility Analyst',
|
||||
goal='Analyze service compatibility and requirements',
|
||||
backstory='I analyze AWS services for compatibility and integration possibilities.',
|
||||
tools=[followup_tool]
|
||||
)
|
||||
|
||||
summarizer = Agent(
|
||||
role='Technical Documentation Writer',
|
||||
goal='Create clear technical summaries',
|
||||
backstory='I specialize in creating clear, concise technical documentation.',
|
||||
tools=[final_tool]
|
||||
)
|
||||
|
||||
# Create tasks
|
||||
research_task = Task(
|
||||
description="Find all available AWS services in us-west-2 region.",
|
||||
agent=researcher
|
||||
)
|
||||
|
||||
analysis_task = Task(
|
||||
description="Analyze which services support IPv6 and their implementation requirements.",
|
||||
agent=analyst
|
||||
)
|
||||
|
||||
summary_task = Task(
|
||||
description="Create a summary of IPv6-compatible services and their key features.",
|
||||
agent=summarizer
|
||||
)
|
||||
|
||||
# Create a crew with the agents and tasks
|
||||
crew = Crew(
|
||||
agents=[researcher, analyst, summarizer],
|
||||
tasks=[research_task, analysis_task, summary_task],
|
||||
process=Process.sequential,
|
||||
verbose=2
|
||||
)
|
||||
|
||||
# Run the crew
|
||||
result = crew.kickoff()
|
||||
```
|
||||
|
||||
## 사용 사례
|
||||
|
||||
### 하이브리드 멀티 에이전트 협업
|
||||
- CrewAI 에이전트가 AWS에서 서비스로 실행되는 관리형 Bedrock 에이전트와 협력하는 워크플로우를 생성합니다.
|
||||
- 민감한 데이터 처리가 AWS 환경 내에서 이루어지면서, 다른 에이전트는 외부에서 작동하는 시나리오를 구현합니다.
|
||||
- 온프레미스 CrewAI 에이전트와 클라우드 기반 Bedrock 에이전트를 연결하여 분산 지능 워크플로우를 실현합니다.
|
||||
|
||||
### 데이터 주권 및 준수
|
||||
- 데이터에 민감한 에이전틱 워크플로우를 AWS 환경 내에서 유지하면서, 외부 CrewAI 에이전트가 작업을 오케스트레이션할 수 있도록 허용합니다
|
||||
- 민감한 정보를 오직 귀하의 AWS 계정 내에서 처리함으로써 데이터 보관 위치 요건을 준수합니다
|
||||
- 일부 에이전트가 귀 조직의 비공개 데이터에 접근할 수 없는 안전한 다중 에이전트 협업을 가능하게 합니다
|
||||
|
||||
### 원활한 AWS 서비스 통합
|
||||
- 복잡한 통합 코드를 작성하지 않고도 Amazon Bedrock Actions를 통해 모든 AWS 서비스에 액세스할 수 있습니다.
|
||||
- CrewAI 에이전트가 자연어 요청을 통해 AWS 서비스와 상호작용할 수 있습니다.
|
||||
- Bedrock Knowledge Bases, Lambda 등과 같은 AWS 서비스와 상호작용할 수 있도록 사전 구축된 Bedrock 에이전트 기능을 활용할 수 있습니다.
|
||||
|
||||
### 확장 가능한 하이브리드 에이전트 아키텍처
|
||||
- 계산 집약적인 작업은 관리형 Bedrock 에이전트에 오프로드하고, 경량 작업은 CrewAI에서 실행
|
||||
- 로컬 CrewAI 에이전트와 클라우드 기반 Bedrock 에이전트 간에 워크로드를 분산하여 에이전트 처리를 확장
|
||||
|
||||
### 조직 간 에이전트 협업
|
||||
- 귀 조직의 CrewAI 에이전트와 파트너 조직의 Bedrock 에이전트 간의 안전한 협업을 지원합니다
|
||||
- 민감한 데이터를 노출하지 않고도 Bedrock 에이전트의 외부 전문 지식을 워크플로우에 통합할 수 있습니다
|
||||
- 보안 및 데이터 통제를 유지하면서 조직 경계를 넘는 에이전트 생태계를 구축합니다
|
||||
165
docs/ko/tools/cloud-storage/bedrockkbretriever.mdx
Normal file
165
docs/ko/tools/cloud-storage/bedrockkbretriever.mdx
Normal file
@@ -0,0 +1,165 @@
|
||||
---
|
||||
title: 'Bedrock 지식 베이스 검색기'
|
||||
description: '자연어 쿼리를 사용하여 Amazon Bedrock 지식 베이스에서 정보를 검색합니다'
|
||||
icon: aws
|
||||
---
|
||||
|
||||
# `BedrockKBRetrieverTool`
|
||||
|
||||
`BedrockKBRetrieverTool`은 CrewAI 에이전트가 자연어 쿼리를 사용하여 Amazon Bedrock Knowledge Bases에서 정보를 검색할 수 있도록 합니다.
|
||||
|
||||
## 설치
|
||||
|
||||
```bash
|
||||
uv pip install 'crewai[tools]'
|
||||
```
|
||||
|
||||
## 요구 사항
|
||||
|
||||
- AWS 자격 증명이 구성되어 있음 (환경 변수 또는 AWS CLI를 통해)
|
||||
- `boto3` 및 `python-dotenv` 패키지
|
||||
- Amazon Bedrock Knowledge Base에 대한 액세스
|
||||
|
||||
## 사용법
|
||||
|
||||
CrewAI agent와 함께 이 도구를 사용하는 방법은 다음과 같습니다:
|
||||
|
||||
```python {2, 4-17}
|
||||
from crewai import Agent, Task, Crew
|
||||
from crewai_tools.aws.bedrock.knowledge_base.retriever_tool import BedrockKBRetrieverTool
|
||||
|
||||
# Initialize the tool
|
||||
kb_tool = BedrockKBRetrieverTool(
|
||||
knowledge_base_id="your-kb-id",
|
||||
number_of_results=5
|
||||
)
|
||||
|
||||
# Create a CrewAI agent that uses the tool
|
||||
researcher = Agent(
|
||||
role='Knowledge Base Researcher',
|
||||
goal='Find information about company policies',
|
||||
backstory='I am a researcher specialized in retrieving and analyzing company documentation.',
|
||||
tools=[kb_tool],
|
||||
verbose=True
|
||||
)
|
||||
|
||||
# Create a task for the agent
|
||||
research_task = Task(
|
||||
description="Find our company's remote work policy and summarize the key points.",
|
||||
agent=researcher
|
||||
)
|
||||
|
||||
# Create a crew with the agent
|
||||
crew = Crew(
|
||||
agents=[researcher],
|
||||
tasks=[research_task],
|
||||
verbose=2
|
||||
)
|
||||
|
||||
# Run the crew
|
||||
result = crew.kickoff()
|
||||
print(result)
|
||||
```
|
||||
|
||||
## 도구 인자
|
||||
|
||||
| 인자 | 타입 | 필수 여부 | 기본값 | 설명 |
|
||||
|:---------|:-----|:---------|:---------|:-------------|
|
||||
| **knowledge_base_id** | `str` | 예 | 없음 | 지식 베이스의 고유 식별자 (0-10자리 영숫자) |
|
||||
| **number_of_results** | `int` | 아니오 | 5 | 반환할 최대 결과 개수 |
|
||||
| **retrieval_configuration** | `dict` | 아니오 | 없음 | 지식 베이스 쿼리를 위한 사용자 지정 설정 |
|
||||
| **guardrail_configuration** | `dict` | 아니오 | 없음 | 콘텐츠 필터링 설정 |
|
||||
| **next_token** | `str` | 아니오 | 없음 | 페이지네이션을 위한 토큰 |
|
||||
|
||||
## 환경 변수
|
||||
|
||||
```bash
|
||||
BEDROCK_KB_ID=your-knowledge-base-id # Alternative to passing knowledge_base_id
|
||||
AWS_REGION=your-aws-region # Defaults to us-east-1
|
||||
AWS_ACCESS_KEY_ID=your-access-key # Required for AWS authentication
|
||||
AWS_SECRET_ACCESS_KEY=your-secret-key # Required for AWS authentication
|
||||
```
|
||||
|
||||
## 응답 형식
|
||||
|
||||
도구는 결과를 JSON 형식으로 반환합니다:
|
||||
|
||||
```json
|
||||
{
|
||||
"results": [
|
||||
{
|
||||
"content": "Retrieved text content",
|
||||
"content_type": "text",
|
||||
"source_type": "S3",
|
||||
"source_uri": "s3://bucket/document.pdf",
|
||||
"score": 0.95,
|
||||
"metadata": {
|
||||
"additional": "metadata"
|
||||
}
|
||||
}
|
||||
],
|
||||
"nextToken": "pagination-token",
|
||||
"guardrailAction": "NONE"
|
||||
}
|
||||
```
|
||||
|
||||
## 고급 사용법
|
||||
|
||||
### 사용자 지정 검색 구성
|
||||
|
||||
```python
|
||||
kb_tool = BedrockKBRetrieverTool(
|
||||
knowledge_base_id="your-kb-id",
|
||||
retrieval_configuration={
|
||||
"vectorSearchConfiguration": {
|
||||
"numberOfResults": 10,
|
||||
"overrideSearchType": "HYBRID"
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
policy_expert = Agent(
|
||||
role='Policy Expert',
|
||||
goal='Analyze company policies in detail',
|
||||
backstory='I am an expert in corporate policy analysis with deep knowledge of regulatory requirements.',
|
||||
tools=[kb_tool]
|
||||
)
|
||||
```
|
||||
|
||||
## 지원되는 데이터 소스
|
||||
|
||||
- Amazon S3
|
||||
- Confluence
|
||||
- Salesforce
|
||||
- SharePoint
|
||||
- 웹 페이지
|
||||
- 사용자 지정 문서 위치
|
||||
- Amazon Kendra
|
||||
- SQL 데이터베이스
|
||||
|
||||
## 사용 사례
|
||||
|
||||
### 엔터프라이즈 지식 통합
|
||||
- 민감한 데이터를 노출하지 않고도 CrewAI 에이전트가 귀사의 독점 지식에 접근할 수 있도록 합니다.
|
||||
- 에이전트가 귀사의 특정 정책, 절차 및 문서를 기반으로 의사 결정을 내릴 수 있도록 허용합니다.
|
||||
- 데이터 보안을 유지하면서 내부 문서를 기반으로 질문에 답변할 수 있는 에이전트를 생성합니다.
|
||||
|
||||
### 전문 분야 지식
|
||||
- CrewAI 에이전트를 도메인별 지식 베이스(법률, 의료, 기술 등)에 재학습 없이 연결할 수 있습니다
|
||||
- 이미 AWS 환경에서 관리되고 있는 기존 지식 저장소를 활용할 수 있습니다
|
||||
- CrewAI의 추론과 지식 베이스의 도메인별 정보를 결합할 수 있습니다
|
||||
|
||||
### 데이터 기반 의사결정
|
||||
- Ground CrewAI 에이전트 응답을 일반 지식이 아닌 실제 회사 데이터에 기반하게 하세요
|
||||
- 에이전트가 귀사의 특정 비즈니스 맥락과 문서를 바탕으로 추천을 제공하도록 보장하세요
|
||||
- 지식 기반에서 사실 정보를 검색하여 환각을 줄이세요
|
||||
|
||||
### 확장 가능한 정보 접근
|
||||
- 모델에 모든 지식을 삽입하지 않고도 조직의 테라바이트급 지식에 접근할 수 있습니다.
|
||||
- 특정 작업에 필요한 관련 정보만 동적으로 쿼리합니다.
|
||||
- 대규모 지식 베이스를 효율적으로 처리하기 위해 AWS의 확장 가능한 인프라를 활용합니다.
|
||||
|
||||
### 컴플라이언스 및 거버넌스
|
||||
- CrewAI 에이전트가 회사의 승인된 문서에 부합하는 응답을 제공하도록 보장하십시오
|
||||
- 에이전트가 사용한 정보 출처에 대한 감사 가능한 기록을 만드십시오
|
||||
- 에이전트가 접근할 수 있는 정보 출처를 제어하십시오
|
||||
51
docs/ko/tools/cloud-storage/overview.mdx
Normal file
51
docs/ko/tools/cloud-storage/overview.mdx
Normal file
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: "개요"
|
||||
description: "클라우드 서비스, 스토리지 시스템, 클라우드 기반 AI 플랫폼과 상호작용합니다"
|
||||
icon: "face-smile"
|
||||
---
|
||||
|
||||
이러한 도구를 통해 에이전트는 클라우드 서비스와 상호 작용하고, 클라우드 스토리지에 접근하며, 대규모 운영을 위해 클라우드 기반 AI 플랫폼을 활용할 수 있습니다.
|
||||
|
||||
## **사용 가능한 도구**
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="S3 리더 도구" icon="cloud" href="/ko/tools/cloud-storage/s3readertool">
|
||||
Amazon S3 버킷에서 파일과 데이터를 읽습니다.
|
||||
</Card>
|
||||
|
||||
<Card title="S3 라이터 도구" icon="cloud-arrow-up" href="/ko/tools/cloud-storage/s3writertool">
|
||||
파일을 Amazon S3 스토리지에 작성하고 업로드합니다.
|
||||
</Card>
|
||||
|
||||
<Card title="Bedrock Invoke Agent" icon="aws" href="/ko/tools/cloud-storage/bedrockinvokeagenttool">
|
||||
AI 기반 작업을 위해 Amazon Bedrock 에이전트를 호출합니다.
|
||||
</Card>
|
||||
|
||||
<Card title="Bedrock KB Retriever" icon="database" href="/ko/tools/cloud-storage/bedrockkbretriever">
|
||||
Amazon Bedrock 지식 베이스에서 정보를 검색합니다.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## **일반적인 사용 사례**
|
||||
|
||||
- **파일 저장**: 클라우드 스토리지 시스템에 파일을 저장하고 가져오기
|
||||
- **데이터 백업**: 중요한 데이터를 클라우드 스토리지에 백업하기
|
||||
- **AI 서비스**: 클라우드 기반의 AI 모델 및 서비스에 접근하기
|
||||
- **지식 검색**: 클라우드에 호스팅된 지식 베이스를 질의하기
|
||||
- **확장 가능한 운영**: 처리 작업을 위해 클라우드 인프라 활용하기
|
||||
|
||||
```python
|
||||
from crewai_tools import S3ReaderTool, S3WriterTool, BedrockInvokeAgentTool
|
||||
|
||||
# Create cloud tools
|
||||
s3_reader = S3ReaderTool()
|
||||
s3_writer = S3WriterTool()
|
||||
bedrock_agent = BedrockInvokeAgentTool()
|
||||
|
||||
# Add to your agent
|
||||
agent = Agent(
|
||||
role="Cloud Operations Specialist",
|
||||
tools=[s3_reader, s3_writer, bedrock_agent],
|
||||
goal="Manage cloud resources and AI services"
|
||||
)
|
||||
```
|
||||
144
docs/ko/tools/cloud-storage/s3readertool.mdx
Normal file
144
docs/ko/tools/cloud-storage/s3readertool.mdx
Normal file
@@ -0,0 +1,144 @@
|
||||
---
|
||||
title: S3 리더 도구
|
||||
description: S3ReaderTool은 CrewAI 에이전트가 Amazon S3 버킷에서 파일을 읽을 수 있도록 합니다.
|
||||
icon: aws
|
||||
---
|
||||
|
||||
# `S3ReaderTool`
|
||||
|
||||
## 설명
|
||||
|
||||
`S3ReaderTool`은 Amazon S3 버킷에서 파일을 읽기 위해 설계되었습니다. 이 도구를 사용하면 CrewAI 에이전트가 S3에 저장된 콘텐츠에 접근하고 가져올 수 있어, 데이터를 읽거나 설정 파일 또는 AWS S3 스토리지에 저장된 기타 콘텐츠를 필요로 하는 워크플로우에 이상적입니다.
|
||||
|
||||
## 설치
|
||||
|
||||
이 도구를 사용하려면 필요한 종속성을 설치해야 합니다:
|
||||
|
||||
```shell
|
||||
uv add boto3
|
||||
```
|
||||
|
||||
## 시작 단계
|
||||
|
||||
`S3ReaderTool`을 효과적으로 사용하려면 다음 단계를 따르세요:
|
||||
|
||||
1. **의존성 설치**: 위 명령어를 사용하여 필요한 패키지를 설치합니다.
|
||||
2. **AWS 자격 증명 구성**: 환경 변수로 AWS 자격 증명을 설정합니다.
|
||||
3. **도구 초기화**: 도구의 인스턴스를 생성합니다.
|
||||
4. **S3 경로 지정**: 읽고자 하는 파일의 S3 경로를 제공합니다.
|
||||
|
||||
## 예시
|
||||
|
||||
다음 예시는 `S3ReaderTool`을 사용하여 S3 버킷에서 파일을 읽는 방법을 보여줍니다:
|
||||
|
||||
```python Code
|
||||
from crewai import Agent, Task, Crew
|
||||
from crewai_tools.aws.s3 import S3ReaderTool
|
||||
|
||||
# Initialize the tool
|
||||
s3_reader_tool = S3ReaderTool()
|
||||
|
||||
# Define an agent that uses the tool
|
||||
file_reader_agent = Agent(
|
||||
role="File Reader",
|
||||
goal="Read files from S3 buckets",
|
||||
backstory="An expert in retrieving and processing files from cloud storage.",
|
||||
tools=[s3_reader_tool],
|
||||
verbose=True,
|
||||
)
|
||||
|
||||
# Example task to read a configuration file
|
||||
read_task = Task(
|
||||
description="Read the configuration file from {my_bucket} and summarize its contents.",
|
||||
expected_output="A summary of the configuration file contents.",
|
||||
agent=file_reader_agent,
|
||||
)
|
||||
|
||||
# Create and run the crew
|
||||
crew = Crew(agents=[file_reader_agent], tasks=[read_task])
|
||||
result = crew.kickoff(inputs={"my_bucket": "s3://my-bucket/config/app-config.json"})
|
||||
```
|
||||
|
||||
## 매개변수
|
||||
|
||||
`S3ReaderTool`은 에이전트에 의해 사용될 때 다음과 같은 매개변수를 허용합니다:
|
||||
|
||||
- **file_path**: 필수입니다. `s3://bucket-name/file-name` 형식의 S3 파일 경로입니다.
|
||||
|
||||
## AWS 자격 증명
|
||||
|
||||
이 도구는 S3 버킷에 접근하기 위해 AWS 자격 증명이 필요합니다. 환경 변수를 사용하여 이러한 자격 증명을 구성할 수 있습니다:
|
||||
|
||||
- **CREW_AWS_REGION**: S3 버킷이 위치한 AWS 리전입니다. 기본값은 `us-east-1`입니다.
|
||||
- **CREW_AWS_ACCESS_KEY_ID**: AWS 액세스 키 ID입니다.
|
||||
- **CREW_AWS_SEC_ACCESS_KEY**: AWS 시크릿 액세스 키입니다.
|
||||
|
||||
## 사용법
|
||||
|
||||
`S3ReaderTool`을 agent와 함께 사용할 때, agent는 S3 파일 경로를 제공해야 합니다:
|
||||
|
||||
```python Code
|
||||
# Example of using the tool with an agent
|
||||
file_reader_agent = Agent(
|
||||
role="File Reader",
|
||||
goal="Read files from S3 buckets",
|
||||
backstory="An expert in retrieving and processing files from cloud storage.",
|
||||
tools=[s3_reader_tool],
|
||||
verbose=True,
|
||||
)
|
||||
|
||||
# Create a task for the agent to read a specific file
|
||||
read_config_task = Task(
|
||||
description="Read the application configuration file from {my_bucket} and extract the database connection settings.",
|
||||
expected_output="The database connection settings from the configuration file.",
|
||||
agent=file_reader_agent,
|
||||
)
|
||||
|
||||
# Run the task
|
||||
crew = Crew(agents=[file_reader_agent], tasks=[read_config_task])
|
||||
result = crew.kickoff(inputs={"my_bucket": "s3://my-bucket/config/app-config.json"})
|
||||
```
|
||||
|
||||
## 오류 처리
|
||||
|
||||
`S3ReaderTool`은 일반적인 S3 문제에 대한 오류 처리를 포함하고 있습니다:
|
||||
|
||||
- 잘못된 S3 경로 형식
|
||||
- 누락되었거나 접근할 수 없는 파일
|
||||
- 권한 문제
|
||||
- AWS 자격 증명 문제
|
||||
|
||||
오류가 발생하면, 도구는 문제에 대한 세부 정보가 포함된 오류 메시지를 반환합니다.
|
||||
|
||||
## 구현 세부사항
|
||||
|
||||
`S3ReaderTool`은 AWS SDK for Python(boto3)을 사용하여 S3와 상호작용합니다:
|
||||
|
||||
```python Code
|
||||
class S3ReaderTool(BaseTool):
|
||||
name: str = "S3 Reader Tool"
|
||||
description: str = "Reads a file from Amazon S3 given an S3 file path"
|
||||
|
||||
def _run(self, file_path: str) -> str:
|
||||
try:
|
||||
bucket_name, object_key = self._parse_s3_path(file_path)
|
||||
|
||||
s3 = boto3.client(
|
||||
's3',
|
||||
region_name=os.getenv('CREW_AWS_REGION', 'us-east-1'),
|
||||
aws_access_key_id=os.getenv('CREW_AWS_ACCESS_KEY_ID'),
|
||||
aws_secret_access_key=os.getenv('CREW_AWS_SEC_ACCESS_KEY')
|
||||
)
|
||||
|
||||
# Read file content from S3
|
||||
response = s3.get_object(Bucket=bucket_name, Key=object_key)
|
||||
file_content = response['Body'].read().decode('utf-8')
|
||||
|
||||
return file_content
|
||||
except ClientError as e:
|
||||
return f"Error reading file from S3: {str(e)}"
|
||||
```
|
||||
|
||||
## 결론
|
||||
|
||||
`S3ReaderTool`은 Amazon S3 버킷에서 파일을 읽을 수 있는 간단한 방법을 제공합니다. 에이전트가 S3에 저장된 콘텐츠에 액세스할 수 있도록 하여, 클라우드 기반 파일 액세스가 필요한 워크플로우를 지원합니다. 이 도구는 데이터 처리, 구성 관리, 그리고 AWS S3 스토리지에서 정보를 검색하는 모든 작업에 특히 유용합니다.
|
||||
150
docs/ko/tools/cloud-storage/s3writertool.mdx
Normal file
150
docs/ko/tools/cloud-storage/s3writertool.mdx
Normal file
@@ -0,0 +1,150 @@
|
||||
---
|
||||
title: S3 Writer Tool
|
||||
description: S3WriterTool은 CrewAI 에이전트가 Amazon S3 버킷의 파일에 콘텐츠를 쓸 수 있도록 해줍니다.
|
||||
icon: aws
|
||||
---
|
||||
|
||||
# `S3WriterTool`
|
||||
|
||||
## 설명
|
||||
|
||||
`S3WriterTool`은 Amazon S3 버킷의 파일에 콘텐츠를 기록하도록 설계되었습니다. 이 도구를 사용하면 CrewAI 에이전트가 S3에서 파일을 생성하거나 업데이트할 수 있어, 데이터를 저장하거나 구성 파일을 저장하거나 기타 콘텐츠를 AWS S3 스토리지에 영구적으로 보관해야 하는 워크플로우에 이상적입니다.
|
||||
|
||||
## 설치
|
||||
|
||||
이 도구를 사용하려면 필요한 종속성을 설치해야 합니다:
|
||||
|
||||
```shell
|
||||
uv add boto3
|
||||
```
|
||||
|
||||
## 시작 단계
|
||||
|
||||
`S3WriterTool`을 효과적으로 사용하려면 다음 단계를 따르세요:
|
||||
|
||||
1. **필수 패키지 설치**: 위 명령어를 사용하여 필요한 패키지를 설치합니다.
|
||||
2. **AWS 자격 증명 구성**: 환경 변수로 AWS 자격 증명을 설정합니다.
|
||||
3. **도구 초기화**: 도구의 인스턴스를 생성합니다.
|
||||
4. **S3 경로 및 내용 지정**: 파일을 작성할 S3 경로와 작성할 내용을 제공합니다.
|
||||
|
||||
## 예시
|
||||
|
||||
다음 예시는 `S3WriterTool`을 사용하여 S3 버킷의 파일에 콘텐츠를 쓰는 방법을 보여줍니다:
|
||||
|
||||
```python Code
|
||||
from crewai import Agent, Task, Crew
|
||||
from crewai_tools.aws.s3 import S3WriterTool
|
||||
|
||||
# Initialize the tool
|
||||
s3_writer_tool = S3WriterTool()
|
||||
|
||||
# Define an agent that uses the tool
|
||||
file_writer_agent = Agent(
|
||||
role="File Writer",
|
||||
goal="Write content to files in S3 buckets",
|
||||
backstory="An expert in storing and managing files in cloud storage.",
|
||||
tools=[s3_writer_tool],
|
||||
verbose=True,
|
||||
)
|
||||
|
||||
# Example task to write a report
|
||||
write_task = Task(
|
||||
description="Generate a summary report of the quarterly sales data and save it to {my_bucket}.",
|
||||
expected_output="Confirmation that the report was successfully saved to S3.",
|
||||
agent=file_writer_agent,
|
||||
)
|
||||
|
||||
# Create and run the crew
|
||||
crew = Crew(agents=[file_writer_agent], tasks=[write_task])
|
||||
result = crew.kickoff(inputs={"my_bucket": "s3://my-bucket/reports/quarterly-summary.txt"})
|
||||
```
|
||||
|
||||
## 파라미터
|
||||
|
||||
`S3WriterTool`은 에이전트가 사용할 때 다음 파라미터를 허용합니다:
|
||||
|
||||
- **file_path**: 필수. `s3://bucket-name/file-name` 형식의 S3 파일 경로입니다.
|
||||
- **content**: 필수. 파일에 쓸 내용입니다.
|
||||
|
||||
## AWS 자격 증명
|
||||
|
||||
이 도구는 S3 버킷에 접근하기 위해 AWS 자격 증명이 필요합니다. 다음과 같이 환경 변수로 자격 증명을 설정할 수 있습니다:
|
||||
|
||||
- **CREW_AWS_REGION**: S3 버킷이 위치한 AWS 리전. 기본값은 `us-east-1`입니다.
|
||||
- **CREW_AWS_ACCESS_KEY_ID**: AWS 액세스 키 ID.
|
||||
- **CREW_AWS_SEC_ACCESS_KEY**: AWS 시크릿 액세스 키.
|
||||
|
||||
## 사용법
|
||||
|
||||
`S3WriterTool`을 agent와 함께 사용할 때, agent는 S3 파일 경로와 작성할 내용을 모두 제공해야 합니다:
|
||||
|
||||
```python Code
|
||||
# Example of using the tool with an agent
|
||||
file_writer_agent = Agent(
|
||||
role="File Writer",
|
||||
goal="Write content to files in S3 buckets",
|
||||
backstory="An expert in storing and managing files in cloud storage.",
|
||||
tools=[s3_writer_tool],
|
||||
verbose=True,
|
||||
)
|
||||
|
||||
# Create a task for the agent to write a specific file
|
||||
write_config_task = Task(
|
||||
description="""
|
||||
Create a configuration file with the following database settings:
|
||||
- host: db.example.com
|
||||
- port: 5432
|
||||
- username: app_user
|
||||
- password: secure_password
|
||||
|
||||
Save this configuration as JSON to {my_bucket}.
|
||||
""",
|
||||
expected_output="Confirmation that the configuration file was successfully saved to S3.",
|
||||
agent=file_writer_agent,
|
||||
)
|
||||
|
||||
# Run the task
|
||||
crew = Crew(agents=[file_writer_agent], tasks=[write_config_task])
|
||||
result = crew.kickoff(inputs={"my_bucket": "s3://my-bucket/config/db-config.json"})
|
||||
```
|
||||
|
||||
## 오류 처리
|
||||
|
||||
`S3WriterTool`은 일반적인 S3 문제에 대한 오류 처리를 포함합니다:
|
||||
|
||||
- 잘못된 S3 경로 형식
|
||||
- 권한 문제(예: 버킷에 대한 쓰기 권한 없음)
|
||||
- AWS 자격 증명 문제
|
||||
- 버킷이 존재하지 않음
|
||||
|
||||
오류가 발생하면 도구는 문제에 대한 세부 정보가 포함된 오류 메시지를 반환합니다.
|
||||
|
||||
## 구현 세부 정보
|
||||
|
||||
`S3WriterTool`은 S3와 상호 작용하기 위해 AWS SDK for Python(boto3)를 사용합니다:
|
||||
|
||||
```python Code
|
||||
class S3WriterTool(BaseTool):
|
||||
name: str = "S3 Writer Tool"
|
||||
description: str = "Writes content to a file in Amazon S3 given an S3 file path"
|
||||
|
||||
def _run(self, file_path: str, content: str) -> str:
|
||||
try:
|
||||
bucket_name, object_key = self._parse_s3_path(file_path)
|
||||
|
||||
s3 = boto3.client(
|
||||
's3',
|
||||
region_name=os.getenv('CREW_AWS_REGION', 'us-east-1'),
|
||||
aws_access_key_id=os.getenv('CREW_AWS_ACCESS_KEY_ID'),
|
||||
aws_secret_access_key=os.getenv('CREW_AWS_SEC_ACCESS_KEY')
|
||||
)
|
||||
|
||||
s3.put_object(Bucket=bucket_name, Key=object_key, Body=content.encode('utf-8'))
|
||||
return f"Successfully wrote content to {file_path}"
|
||||
except ClientError as e:
|
||||
return f"Error writing file to S3: {str(e)}"
|
||||
```
|
||||
|
||||
## 결론
|
||||
|
||||
`S3WriterTool`은 Amazon S3 버킷의 파일에 콘텐츠를 간편하게 작성할 수 있는 방법을 제공합니다. 이 도구를 통해 에이전트가 S3에서 파일을 생성하고 업데이트할 수 있어 클라우드 기반 파일 저장소가 필요한 워크플로우를 지원합니다. 이 도구는 데이터 영속성, 구성 관리, 보고서 생성 및 AWS S3 저장소에 정보를 저장해야 하는 작업에 특히 유용합니다.
|
||||
Reference in New Issue
Block a user