在Vertex AI上无法使用Claude 3.5 Sonet模型——400错误:项目未授权
解决Vertex AI调用Claude 3.5 Sonnet的400权限错误
针对你遇到的Project is not allowed to use Publisher Model错误,以下是具体排查和解决步骤:
1. 确认IAM角色权限
确保调用模型的身份(个人账号或服务账号)拥有至少一个以下IAM角色:
roles/aiplatform.user:允许使用Vertex AI全量模型资源roles/aiplatform.predictor:仅授予模型预测调用权限的精细角色
操作步骤:
- 进入Google云控制台IAM页面
- 找到目标账号,点击「编辑」
- 添加上述角色,确保资源范围选择你的项目或对应Anthropic模型资源
2. 验证模型ID与区域匹配
确认代码中的参数完全符合要求:
- Claude 3.5 Sonnet在Vertex AI的正确模型ID为
claude-3-5-sonnet@20240620 - 该模型仅在
us-east5、europe-west3等特定区域可用,确保代码中region参数与模型所在区域一致
3. 检查模型注册表权限设置
即使已激活模型,仍需确认项目/账号在模型层面的访问权限:
- 进入Vertex AI模型注册表,找到Claude 3.5 Sonnet模型
- 点击「权限」标签,确认你的项目或账号在权限列表中,拥有「AI Platform User」类权限
4. 排查计费账户状态
虽然已绑定有效计费账户,仍需确认:
- 计费账户无未支付账单,避免服务受限
- 确认Anthropic模型的计费开关已开启(部分场景下需单独确认该类模型的计费权限)
5. 重新触发模型激活
模型激活后可能需要几分钟生效,可尝试:
- 在模型注册表中取消激活Claude 3.5 Sonnet,等待1分钟后重新激活
- 等待5-10分钟后再次调用模型
代码参数验证
确保代码中project_id为实际Google云项目ID(而非项目名称),示例修正如下:
client = AnthropicVertex(project_id="你的实际项目ID", region="us-east5") completion = client.messages.create( model="claude-3-5-sonnet@20240620", messages=[{"role": "user", "content": prompt}], max_tokens=max_output_tokens, temperature=temperature, )
内容的提问来源于stack exchange,提问作者Mario
相关产品推荐
相关产品推荐

