补齐 Raw 编辑恢复审计语义
保留 recovered_failure_audits 公共字段并注明当前同步无回退不变量 让 raw handler 记录未来恢复审计并写入成功摘要计数 同步 Raw GPT Image 2 技术方案文档
This commit is contained in:
@@ -492,7 +492,7 @@ pub(crate) async fn record_openai_image_failure_if_configured(
|
||||
record_openai_image_failure_audit_if_configured(settings, audit).await;
|
||||
}
|
||||
|
||||
async fn record_openai_image_failure_audit_if_configured(
|
||||
pub(crate) async fn record_openai_image_failure_audit_if_configured(
|
||||
settings: &OpenAiImageSettings,
|
||||
audit: &platform_image::PlatformImageFailureAudit,
|
||||
) {
|
||||
|
||||
@@ -21,8 +21,8 @@ use crate::{
|
||||
auth::AuthenticatedAccessToken,
|
||||
http_error::AppError,
|
||||
openai_image_generation::{
|
||||
map_platform_image_error, record_openai_image_failure_if_configured,
|
||||
require_openai_image_settings,
|
||||
map_platform_image_error, record_openai_image_failure_audit_if_configured,
|
||||
record_openai_image_failure_if_configured, require_openai_image_settings,
|
||||
},
|
||||
request_context::RequestContext,
|
||||
state::AppState,
|
||||
@@ -125,6 +125,10 @@ pub(crate) async fn edit_raw_image(
|
||||
return Err(map_platform_image_error(error));
|
||||
}
|
||||
};
|
||||
for audit in &generated.recovered_failure_audits {
|
||||
record_openai_image_failure_audit_if_configured(&audit_settings, audit).await;
|
||||
}
|
||||
let recovered_failure_count = generated.recovered_failure_audits.len();
|
||||
let data: Vec<RawImageEditItem> = generated
|
||||
.b64_images
|
||||
.into_iter()
|
||||
@@ -141,7 +145,10 @@ pub(crate) async fn edit_raw_image(
|
||||
true,
|
||||
None,
|
||||
Some("raw-image-edit".to_string()),
|
||||
Some(json!({ "imageCount": data.len() })),
|
||||
Some(json!({
|
||||
"imageCount": data.len(),
|
||||
"recoveredFailureCount": recovered_failure_count,
|
||||
})),
|
||||
)
|
||||
.await;
|
||||
}
|
||||
|
||||
@@ -34,8 +34,15 @@ pub struct RawImageEditImage {
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
/// Successful response from the synchronous raw GPT Image 2 edit call.
|
||||
pub struct RawImageEditResult {
|
||||
pub b64_images: Vec<String>,
|
||||
/// Failure audits recovered by an internal fallback attempt.
|
||||
///
|
||||
/// Raw-edit currently performs one provider call and has no fallback, so
|
||||
/// this is empty on every successful result. The field remains part of the
|
||||
/// shared result contract so adding a fallback later cannot silently drop
|
||||
/// its audit trail from callers that already handle recovered failures.
|
||||
pub recovered_failure_audits: Vec<super::audit::PlatformImageFailureAudit>,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user