提前检查 Raw 图片请求预算
在构造 multipart 表单前校验请求 deadline 避免预算耗尽时复制输入图片并缩短耗时统计范围
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user