75 lines
4.2 KiB
Markdown
75 lines
4.2 KiB
Markdown
# Concept samples on how to use AWS Bedrock agents
|
|
|
|
## Pre-requisites
|
|
|
|
1. You need to have an AWS account and [access to the foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access-permissions.html)
|
|
2. [AWS CLI installed](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) and [configured](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration)
|
|
|
|
### Configuration
|
|
|
|
Follow this [guide](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration) to configure your environment to use the Bedrock API.
|
|
|
|
Please configure the `aws_access_key_id`, `aws_secret_access_key`, and `region` otherwise you will need to create custom clients for the services. For example:
|
|
|
|
```python
|
|
runtime_client=boto.client(
|
|
"bedrock-runtime",
|
|
aws_access_key_id="your_access_key",
|
|
aws_secret_access_key="your_secret_key",
|
|
region_name="your_region",
|
|
[...other parameters you may need...]
|
|
)
|
|
client=boto.client(
|
|
"bedrock",
|
|
aws_access_key_id="your_access_key",
|
|
aws_secret_access_key="your_secret_key",
|
|
region_name="your_region",
|
|
[...other parameters you may need...]
|
|
)
|
|
|
|
bedrock_agent = BedrockAgent.create_and_prepare_agent(
|
|
name="your_agent_name",
|
|
instructions="your_instructions",
|
|
runtime_client=runtime_client,
|
|
client=client,
|
|
[...other parameters you may need...]
|
|
)
|
|
```
|
|
|
|
## Samples
|
|
|
|
| Sample | Description |
|
|
|--------|-------------|
|
|
| [bedrock_agent_simple_chat.py](bedrock_agent_simple_chat.py) | Demonstrates basic usage of the Bedrock agent. |
|
|
| [bedrock_agent_simple_chat_streaming.py](bedrock_agent_simple_chat_streaming.py) | Demonstrates basic usage of the Bedrock agent with streaming. |
|
|
| [bedrock_agent_with_kernel_function.py](bedrock_agent_with_kernel_function.py) | Shows how to use the Bedrock agent with a kernel function. |
|
|
| [bedrock_agent_with_kernel_function_streaming.py](bedrock_agent_with_kernel_function_streaming.py) | Shows how to use the Bedrock agent with a kernel function with streaming. |
|
|
| [bedrock_agent_with_code_interpreter.py](bedrock_agent_with_code_interpreter.py) | Example of using the Bedrock agent with a code interpreter. |
|
|
| [bedrock_agent_with_code_interpreter_streaming.py](bedrock_agent_with_code_interpreter_streaming.py) | Example of using the Bedrock agent with a code interpreter and streaming. |
|
|
| [bedrock_mixed_chat_agents.py](bedrock_mixed_chat_agents.py) | Example of using multiple chat agents in a single script. |
|
|
| [bedrock_mixed_chat_agents_streaming.py](bedrock_mixed_chat_agents_streaming.py) | Example of using multiple chat agents in a single script with streaming. |
|
|
|
|
## Before running the samples
|
|
|
|
You need to set up some environment variables to run the samples. Please refer to the [.env.example](.env.example) file for the required environment variables.
|
|
|
|
### `BEDROCK_AGENT_AGENT_RESOURCE_ROLE_ARN`
|
|
|
|
On your AWS console, go to the IAM service and go to **Roles**. Find the role you want to use and click on it. You will find the ARN in the summary section.
|
|
|
|
### `BEDROCK_AGENT_FOUNDATION_MODEL`
|
|
|
|
You need to make sure you have permission to access the foundation model. You can find the model ID in the [AWS documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html). To see the models you have access to, find the policy attached to your role you should see a list of models you have access to under the `Resource` section.
|
|
|
|
### How to add the `bedrock:InvokeModelWithResponseStream` action to an IAM policy
|
|
|
|
1. Open the [IAM console](https://console.aws.amazon.com/iam/).
|
|
2. On the left navigation pane, choose `Roles` under `Access management`.
|
|
3. Find the role you want to edit and click on it.
|
|
4. Under the `Permissions policies` tab, click on the policy you want to edit.
|
|
5. Under the `Permissions defined in this policy` section, click on the service. You should see **Bedrock** if you already have access to the Bedrock agent service.
|
|
6. Click on the service, and then click `Edit`.
|
|
7. On the right, you will be able to add an action. Find the service and search for `InvokeModelWithResponseStream`.
|
|
8. Check the box next to the action and then scroll all the way down and click `Next`.
|
|
9. Follow the prompts to save the changes.
|