修正 libcurl 传输错误的 provider 归属

map_curl_error 接收实际 provider,审计、日志与 Request 错误不再写死 vector-engine

executor 生成 / 编辑路径传入 settings.provider,nanobanana 路径传入 VectorEngine
This commit is contained in:
2026-09-19 13:20:44 +08:00
parent d3407e8910
commit 5cba2dbeb7
2 changed files with 12 additions and 5 deletions
@@ -188,6 +188,7 @@ pub async fn create_image_generation_with_model(
}
return Err(finish_image_model_fallback_error(
map_curl_error(
settings.provider,
format!("{failure_context}:创建图片生成任务失败").as_str(),
request_url.as_str(),
"request_send",
@@ -377,6 +378,7 @@ pub async fn create_nanobanana_generate_content(
}
}
return Err(map_curl_error(
ImageProvider::VectorEngine,
format!("{failure_context}:创建 nanobanana2 图片生成任务失败").as_str(),
request_url.as_str(),
"request_send",
@@ -629,6 +631,7 @@ pub async fn create_image_edit_with_references_and_model(
}
return Err(finish_image_model_fallback_error(
map_curl_error(
settings.provider,
format!("{failure_context}:创建图片编辑任务失败").as_str(),
request_url.as_str(),
"request_send",
@@ -7,8 +7,10 @@ use curl::{
use serde_json::Value;
use crate::image_provider::{
audit::build_failure_audit, constants::VECTOR_ENGINE_PROVIDER, error::PlatformImageError,
request::build_prompt_with_negative, types::ReferenceImage,
audit::build_failure_audit,
error::PlatformImageError,
request::build_prompt_with_negative,
types::{ImageProvider, ReferenceImage},
};
#[derive(Debug)]
@@ -145,6 +147,7 @@ pub(crate) async fn send_image_multipart_edit_request_with_curl(
}
pub(crate) fn map_curl_error(
provider: ImageProvider,
context: &str,
request_url: &str,
failure_stage: &'static str,
@@ -155,12 +158,13 @@ pub(crate) fn map_curl_error(
reference_image_count: Option<usize>,
request_params: Option<&Value>,
) -> PlatformImageError {
let provider_label = provider.as_str();
let is_timeout = error.is_timeout();
let is_connect = error.is_connect() || error.is_transient_transport();
let source = error.to_string();
let message = format!("{context}{source}");
let audit = build_failure_audit(
VECTOR_ENGINE_PROVIDER,
provider_label,
request_url,
context,
failure_stage,
@@ -177,7 +181,7 @@ pub(crate) fn map_curl_error(
image_model,
);
tracing::warn!(
provider = VECTOR_ENGINE_PROVIDER,
provider = provider_label,
endpoint = %request_url,
failure_stage,
timeout = is_timeout,
@@ -200,7 +204,7 @@ pub(crate) fn map_curl_error(
);
PlatformImageError::Request {
provider: VECTOR_ENGINE_PROVIDER,
provider: provider_label,
message,
endpoint: Some(request_url.to_string()),
timeout: is_timeout,