From f60771dd007bb7184a6b866cad7270a06a0db7d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Wed, 9 Sep 2026 10:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E5=89=8D=E6=A3=80=E6=9F=A5=20Raw=20?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E8=AF=B7=E6=B1=82=E9=A2=84=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在构造 multipart 表单前校验请求 deadline 避免预算耗尽时复制输入图片并缩短耗时统计范围 --- .../src/vector_engine/raw_edit.rs | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs b/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs index a428752ce..1373d8545 100644 --- a/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs +++ b/server-rs/crates/platform-image/src/vector_engine/raw_edit.rs @@ -105,6 +105,18 @@ pub async fn create_vector_engine_raw_image_edit( let started_at = Instant::now(); let prompt_chars = Some(prompt.chars().count()); let reference_image_count = Some(1_usize + usize::from(options.mask.is_some())); + let Some(request_timeout_ms) = + effective_request_timeout_ms(settings.request_timeout_ms, settings.request_deadline) + else { + return Err(request_budget_exhausted_error( + url.as_str(), + failure_context, + Some(GPT_IMAGE_2_MODEL), + Some(started_at.elapsed().as_millis() as u64), + prompt_chars, + reference_image_count, + )); + }; let mut form = Form::new() .text("model", GPT_IMAGE_2_MODEL.to_string()) .text("n", "1".to_string()) @@ -136,18 +148,6 @@ pub async fn create_vector_engine_raw_image_edit( ); } - let Some(request_timeout_ms) = - effective_request_timeout_ms(settings.request_timeout_ms, settings.request_deadline) - else { - return Err(request_budget_exhausted_error( - url.as_str(), - failure_context, - Some(GPT_IMAGE_2_MODEL), - Some(started_at.elapsed().as_millis() as u64), - prompt_chars, - reference_image_count, - )); - }; let client = reqwest::Client::builder() .timeout(Duration::from_millis(request_timeout_ms)) .http1_only()