fix(gateway): 恢复响应边界并统一格式入口

This commit is contained in:
MMEXA
2026-07-18 06:45:37 +08:00
parent f9c343eb07
commit ac3796af84
2 changed files with 10 additions and 10 deletions
@@ -522,7 +522,7 @@ mod tests {
"data: {\"type\":\"response.failed\",\"response\":{\"status\":\"failed\",\"error\":{\"type\":\"invalid_request\",\"message\":\"This content was flagged for possible cybersecurity risk.\",\"code\":\"cyber_policy_violation\",\"param\":\"input\",\"details\":{\"policy_category\":\"cybersecurity\",\"appeal_allowed\":true}}}}\n\n",
)
.as_bytes();
let terminal_error = aether_ai_formats::api::extract_provider_private_stream_error_body(
let terminal_error = crate::ai_serving::api::extract_provider_private_stream_error_body(
None,
provider_buffered_body,
)
@@ -3760,6 +3760,15 @@ pub(crate) fn build_execution_response_body(
return Ok(None);
}
if !stream && response_body_is_json(headers, decoded_body_bytes) {
let body_json: Value = serde_json::from_slice(decoded_body_bytes)
.map_err(ExecutionRuntimeTransportError::InvalidJson)?;
return Ok(Some(ResponseBody {
json_body: Some(body_json),
body_bytes_b64: None,
}));
}
if let Some(body_json) = extract_provider_private_stream_error_body(None, decoded_body_bytes)
.or_else(|| extract_provider_private_stream_error_body(None, body_bytes))
{
@@ -3776,15 +3785,6 @@ pub(crate) fn build_execution_response_body(
}));
}
if response_body_is_json(headers, decoded_body_bytes) {
let body_json: Value = serde_json::from_slice(decoded_body_bytes)
.map_err(ExecutionRuntimeTransportError::InvalidJson)?;
return Ok(Some(ResponseBody {
json_body: Some(body_json),
body_bytes_b64: None,
}));
}
Ok(Some(ResponseBody {
json_body: None,
body_bytes_b64: Some(base64::engine::general_purpose::STANDARD.encode(body_bytes)),