修正 libcurl 传输错误的 provider 归属
map_curl_error 接收实际 provider,审计、日志与 Request 错误不再写死 vector-engine executor 生成 / 编辑路径传入 settings.provider,nanobanana 路径传入 VectorEngine
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user