mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-13 14:40:20 +08:00
fix(gateway): 恢复响应边界并统一格式入口
This commit is contained in:
@@ -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)),
|
||||
|
||||
Reference in New Issue
Block a user