Bedrock Runtime: InvokeModelWithResponseStream, https response error StatusCode:...
错误信息
status_code=400, InvokeModelWithResponseStream: operation error Bedrock Runtime: InvokeModelWithResponseStream, https response error StatusCode: 400, RequestID: 53a91d7a-9352-4315-b707-4b3c276c6b70, ValidationException: The provided request is not valid (request id: 20260717102452663732875Jk3n7wMt) (request id: 202607171024525
AI 解决方案
🔍 报错分析
1. 🌐 错误翻译
原文:status_code=400, InvokeModelWithResponseStream: operation error Bedrock Runtime: InvokeModelWithResponseStream, https response error StatusCode: 400, RequestID: 53a91d7a-9352-4315-b707-4b3c276c6b70, ValidationException: The provided request is not valid (request id: 20260717102452663732875Jk3n7wMt) (request id: 202607171024525
译文:状态码=400,InvokeModelWithResponseStream:操作错误 Bedrock Runtime:InvokeModelWithResponseStream,https响应错误 状态码:400,请求ID:53a91d7a-9352-4315-b707-4b3c276c6b70,验证异常:提供的请求无效(请求ID:20260717102452663732875Jk3n7wMt)(请求ID:202607171024525
2. 🎯 原因分析
InvokeModelWithResponseStream API调用时,请求体(payload)结构、必需字段、数据类型或值范围不符合要求3. 💡 解决方案
检查并修复请求参数,确保符合Bedrock模型要求的格式,以下是规范的修复示例:
// 修复后的调用代码示例(以javascript为例)
const AWS = require('aws-sdk');
const bedrock = new AWS.BedrockRuntime();
// 正确的请求参数结构
const params = {
modelId: 'anthropic.claude-v2', // 替换为实际模型ID
body: JSON.stringify({
prompt: '你的输入内容', // 或使用结构化prompt格式
max_tokens: 200,
temperature: 0.7,
stream: true // 必须包含stream=true以使用流式接口
}),
contentType: 'application/json',
accept: 'application/json'
};
// 调用时添加错误处理
bedrock.invokeModelWithResponseStream(params, (err, data) => {
if (err) {
console.error('请求失败,检查参数格式:', err);
// 可打印具体错误信息辅助排查
if (err.code === 'ValidationException') {
console.log('请求参数验证失败,请检查请求体格式、必填字段及模型兼容性');
}
} else {
// 处理流式响应
const stream = data.body;
stream.on('data', (chunk) => {
// 解析流式数据
});
}
});
核心修复步骤:
modelId与实际调用的模型ID完全匹配(如Anthropic Claude、Amazon Titan等官方支持的模型ID)stream: true参数必须包含且格式正确4. 🛡️ 预防措施
bedrock-runtime invoke-model-with-response-stream命令进行本地调试,借助命令行工具输出的详细错误提示定位参数问题,也可使用Postman等工具先验证请求格式正确性。