You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确向AWS Bedrock发送请求?Python调用报错排查

问题排查与修正方案

报错原因

初始化bedrock-runtime客户端时指定了错误的endpoint_url,使用了AWS Bedrock主服务的端点(https://bedrock.us-east-1.amazonaws.com),但Bedrock Runtime服务有独立的专属端点,主服务端点不支持InvokeModel操作,因此触发ValidationException。

修正后的完整代码

1. 客户端初始化(修正端点)

import boto3

# 初始化Bedrock Runtime客户端,使用正确的Runtime专属端点
dev = boto3.session.Session(profile_name="dev")
bedrock_runtime = dev.client(
    service_name="bedrock-runtime",
    region_name="us-east-1",
    endpoint_url="https://bedrock-runtime.us-east-1.amazonaws.com"  # 修正端点
)

2. 调用模型并解析响应

import json

model_id = "anthropic.claude-v2"
content_type = "application/json"
accept = "*/*"
# Claude模型要求prompt以"\n\nAssistant:"结尾,确保响应格式正确
body = {
    "prompt": "Human: Who was the 40th president of the united states?\n\nAssistant:",
    "max_tokens_to_sample": 42,
    "temperature": 0.5,
    "top_k": 250,
    "top_p": 1,
    "anthropic_version": "bedrock-2023-05-31"
}

resp = bedrock_runtime.invoke_model(
    modelId=model_id,
    contentType=content_type,
    accept=accept,
    body=json.dumps(body)
)

# 解析并打印响应结果
resp_body = json.loads(resp['body'].read())
print(resp_body['completion'])

额外注意事项

  • 确认AWS账号在us-east-1区域已启用anthropic.claude-v2模型
  • 验证dev配置文件对应的AWS凭证拥有bedrock:InvokeModel权限
  • Claude系列模型严格要求prompt遵循Human: 问题内容\n\nAssistant:的格式,否则可能无法生成有效响应

内容的提问来源于stack exchange,提问作者Istvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:17:47