要在 Python 应用程序中使用 Amazon Bedrock,您可以利用 AWS SDK for Python (Boto3),它提供直接支持来与 Bedrock 的 API 进行交互。 Amazon Bedrock 是一项托管服务,提供对来自 Anthropic、AI21 Labs 和 Amazon 等提供商的基础模型 (FM) 的访问。 Boto3 包括调用模型、管理工作流程和处理响应的方法。 您不需要单独的库 - Boto3 的 bedrock-runtime
客户端对于大多数用例来说已经足够。 例如,在安装 Boto3 (pip install boto3
) 后,您将配置 AWS 凭证(通过环境变量、IAM 角色或 AWS CLI)以验证请求。
这是一个通过 Bedrock 调用像 Anthropic 的 Claude 这样的模型的基本示例。 首先,创建一个 Bedrock Runtime 客户端
import boto3
import json
client = boto3.client(service_name='bedrock-runtime')
response = client.invoke_model(
modelId='anthropic.claude-v2',
body=json.dumps({
"prompt": "\n\nHuman: Write a short poem about code.\n\nAssistant:",
"max_tokens_to_sample": 300
}),
contentType='application/json'
)
response_body = json.loads(response['body'].read())
print(response_body['completion'])
这段代码将提示发送给 Claude 并检索生成的文本。modelId
参数指定模型,并且 body
必须遵循模型期望的输入格式(例如,Anthropic 使用 prompt
和 max_tokens_to_sample
)。 响应作为可流式传输的有效负载返回,您可以使用 json.loads()
对其进行解析。
使用 Bedrock 时,请确保您的 AWS IAM 用户或角色具有 bedrock:InvokeModel
操作的权限。 您还需要在 AWS 管理控制台中的 Bedrock 的模型访问设置下启用对特定模型的访问。 对于高级工作流程(例如微调或管理模型访问),请通过 boto3.client('bedrock')
使用 Bedrock 控制平面 API。 始终参考 Bedrock 文档 以获取特定于模型的输入格式和速率限制。 Boto3 简化了集成,但测试和错误处理(例如,针对限制的重试)对于生产用途至关重要。