在AWS Bedrock调用anthropic.claude-3-haiku时遇按需吞吐量不支持错误求助
解决AWS Bedrock调用Claude 3 Haiku时的ValidationException错误
错误原因
anthropic.claude-3-haiku-20240307-v1:0 模型不支持直接通过按需吞吐量调用,必须使用包含该模型的**推理配置文件(Inference Profile)**的ID或ARN发起请求。
解决步骤
创建推理配置文件
- 登录AWS Bedrock控制台,进入「推理配置文件」页面
- 点击「创建推理配置文件」,填写名称和描述
- 在「模型」部分添加
anthropic.claude-3-haiku-20240307-v1:0,保存配置文件 - 记录配置文件的ID或ARN(创建后会显示在详情页)
修改代码中的模型标识
将原代码里的model_id替换为你刚创建的推理配置文件ID或ARN,其余代码逻辑保持不变。
修改后的示例代码
# 使用原生推理API向Anthropic Claude发送文本消息。 import boto3 import json from botocore.exceptions import ClientError # 在您选择的AWS区域创建Bedrock Runtime客户端。 client = boto3.client("bedrock-runtime", region_name="us-east-2") # 替换为你的推理配置文件ID或ARN model_id = "your-inference-profile-id-or-arn" # 定义模型的提示词。 prompt = "Describe the purpose of a 'hello world' program in one line." # 使用模型的原生结构格式化请求负载。 native_request = { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 512, "temperature": 0.5, "messages": [ { "role": "user", "content": [{"type": "text", "text": prompt}], } ], } # 将原生请求转换为JSON格式。 request = json.dumps(native_request) try: # 使用请求调用模型。 response = client.invoke_model(modelId=model_id, body=request) except (ClientError, Exception) as e: print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}") exit(1) print(response) # 解码响应体。 model_response = json.loads(response["body"].read()) # 提取并打印响应文本。 response_text = model_response["content"][0]["text"] print(response_text)
额外说明
推理配置文件是Bedrock用于管理模型吞吐量、配额和调用规则的机制,针对部分限制直接按需调用的模型,必须通过该方式发起请求。配置完成后,调用逻辑和原生模型完全一致,仅需替换模型标识为配置文件的ID或ARN即可。
内容的提问来源于stack exchange,提问作者xsqian
相关产品推荐
相关产品推荐

