在 AWS Bedrock 中遇到“model not found”或“unsupported model”错误时,问题通常源于不正确的模型标识符、区域可用性限制或缺少访问权限。 首先,验证您使用的确切模型 ID。 Bedrock 需要精确的模型名称,例如 Claude 2 的 anthropic.claude-v2
或 Amazon Titan 的 amazon.titan-text-lite-v1
。 拼写错误、不正确的版本号或使用不支持的模型别名(例如,使用 claude-v2
而不是完整的 ID)将触发错误。查看 AWS 文档以获取最新的有效模型 ID,并确保您的代码或 API 调用与它们完全匹配。 此外,确认该模型在您的 AWS 区域中可用——例如,并非所有区域都支持 Claude 2,因此使用 us-east-1
可能会工作,而其他区域可能会失败。
接下来,确保您已在 Bedrock 控制台中被授予对该模型的访问权限。 AWS 要求显式启用许多模型,即使它们在您的区域中可用也是如此。 导航到 Bedrock 仪表板,在左侧菜单中选择“模型访问”,然后检查该模型是否列为“已请求访问”或“未请求”。 如果尚未授予访问权限,请通过控制台提交请求。 例如,从 AI21 Labs 访问 Jurassic-2 模型需要手动批准。 此外,验证您的 IAM 策略是否授予特定模型 ARN 的 bedrock:InvokeModel
权限。 即使该模型可用,缺少模型资源 ARN 的配置错误的策略(例如,arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2
)也会阻止访问。
最后,考虑 API 版本不匹配或已弃用的模型。 如果您最近更新了 SDK 或 CLI 工具,请确保您的代码与最新的 API 要求一致。 例如,Bedrock 的 InvokeModel
API 需要特定的参数,例如 accept
和 contentType
标头,并且某些模型需要 JSON 格式的输入(例如,Anthropic Claude 模型需要正文中的 prompt
字段)。 如果该模型之前可以工作但突然失败,请检查 AWS Service Health Dashboard 或 Bedrock 文档以获取弃用通知。 例如,较旧的 Titan 模型版本可能会被逐步淘汰,而使用较新的迭代版本,例如 titan-text-express-v1
。 如果一切都失败了,请使用 AWS CLI 通过 aws bedrock list-foundation-models --region us-east-1 --query "modelSummaries[*].modelId"
列出您所在区域中的可用模型,以验证可用性和标识符。