使用AWS PHP SDK调用Bedrock API返回空Body问题求助
AWS Bedrock PHP SDK调用返回空Body排查方案
- 未正确读取响应流
AWS PHP SDK返回的body是StreamInterface类型,不能直接当作数组访问。必须调用流的getContents()方法读取内容:
$result = $this->bedrockRuntimeClient->invokeModel($payload); // 读取响应体内容并解析为数组 $responseBody = json_decode($result['body']->getContents(), true); print_r($responseBody);
从你的返回元数据看,content-length为74,说明响应体有实际内容,只是没正确读取。
验证模型响应结构
不同模型的响应字段不同,比如Claude模型的响应会包含completion字段,而其他模型(如Titan)结构可能不同。解析时要对应模型的输出格式。更新AWS SDK版本
旧版本SDK可能存在Bedrock响应解析的兼容性问题,执行以下命令更新到最新稳定版:
composer update aws/aws-sdk-php
- 检查请求JSON编码
确认请求体的JSON编码无错误,避免因格式问题导致模型返回异常内容:
$encodedBody = json_encode($body); if (json_last_error() !== JSON_ERROR_NONE) { die('JSON编码失败: ' . json_last_error_msg()); }
内容的提问来源于stack exchange,提问作者primerg
相关产品推荐
相关产品推荐

