Bedrock
安装
要使用 BedrockConverseModel
,您需要安装 pydantic-ai
,或者安装带有 bedrock
可选组的 pydantic-ai-slim
。
pip install "pydantic-ai-slim[bedrock]"
uv add "pydantic-ai-slim[bedrock]"
配置
要使用 AWS Bedrock,您需要一个已启用 Bedrock 并拥有相应凭证的 AWS 账户。您可以直接使用 AWS 凭证,也可以使用预配置的 boto3 客户端。
BedrockModelName
包含可用的 Bedrock 模型列表,包括来自 Anthropic、Amazon、Cohere、Meta 和 Mistral 的模型。
环境变量
您可以将 AWS 凭证设置为环境变量(以及其他选项)。
export AWS_BEARER_TOKEN_BEDROCK='your-api-key'
# or:
export AWS_ACCESS_KEY_ID='your-access-key'
export AWS_SECRET_ACCESS_KEY='your-secret-key'
export AWS_DEFAULT_REGION='us-east-1' # or your preferred region
然后您可以通过名称使用 BedrockConverseModel
。
from pydantic_ai import Agent
agent = Agent('bedrock:anthropic.claude-3-sonnet-20240229-v1:0')
...
或者仅使用模型名称直接初始化模型。
from pydantic_ai import Agent
from pydantic_ai.models.bedrock import BedrockConverseModel
model = BedrockConverseModel('anthropic.claude-3-sonnet-20240229-v1:0')
agent = Agent(model)
...
自定义 Bedrock Runtime API
您可以通过添加额外参数来自定义 Bedrock Runtime API 调用,例如护栏配置和性能设置。有关可配置参数的完整列表,请参阅 BedrockModelSettings
的文档。
customize_bedrock_model_settings.py
from pydantic_ai import Agent
from pydantic_ai.models.bedrock import BedrockConverseModel, BedrockModelSettings
# Define Bedrock model settings with guardrail and performance configurations
bedrock_model_settings = BedrockModelSettings(
bedrock_guardrail_config={
'guardrailIdentifier': 'v1',
'guardrailVersion': 'v1',
'trace': 'enabled'
},
bedrock_performance_configuration={
'latency': 'optimized'
}
)
model = BedrockConverseModel(model_name='us.amazon.nova-pro-v1:0')
agent = Agent(model=model, model_settings=bedrock_model_settings)
provider
参数
您可以通过 provider
参数提供一个自定义的 BedrockProvider
。当您想直接指定凭证或使用自定义 boto3 客户端时,这非常有用。
from pydantic_ai import Agent
from pydantic_ai.models.bedrock import BedrockConverseModel
from pydantic_ai.providers.bedrock import BedrockProvider
# Using AWS credentials directly
model = BedrockConverseModel(
'anthropic.claude-3-sonnet-20240229-v1:0',
provider=BedrockProvider(
region_name='us-east-1',
aws_access_key_id='your-access-key',
aws_secret_access_key='your-secret-key',
),
)
agent = Agent(model)
...
您也可以传递一个预配置的 boto3 客户端。
import boto3
from pydantic_ai import Agent
from pydantic_ai.models.bedrock import BedrockConverseModel
from pydantic_ai.providers.bedrock import BedrockProvider
# Using a pre-configured boto3 client
bedrock_client = boto3.client('bedrock-runtime', region_name='us-east-1')
model = BedrockConverseModel(
'anthropic.claude-3-sonnet-20240229-v1:0',
provider=BedrockProvider(bedrock_client=bedrock_client),
)
agent = Agent(model)
...