raw image edit 发送前复用共享 provider 白名单校验

- platform-image 导出 ensure_provider_matches_model 供 crate 内复用
- create_raw_image_edit 在构造请求前校验 settings.provider 与固定的编辑 concrete model 一致
This commit is contained in:
2026-09-21 22:00:21 +08:00
parent c38e4b4175
commit a06c7d7f1e
2 changed files with 6 additions and 1 deletions
@@ -12,6 +12,7 @@ pub use audit::PlatformImageFailureAudit;
pub(crate) use audit::build_failure_audit;
pub(crate) use budget::{effective_request_timeout_ms, request_budget_exhausted_error};
pub use error::{PlatformImageError, PlatformImageStatusHint, missing_reference_images_error};
pub(crate) use executor::ensure_provider_matches_model;
pub use executor::{
create_image_edit, create_image_edit_with_references,
create_image_edit_with_references_and_model, create_image_generation,
@@ -12,7 +12,8 @@ use crate::image_provider::{
images_edit_url,
runtime::{
ImageProvider, ImageProviderSettings, PlatformImageError, build_failure_audit,
effective_request_timeout_ms, request_budget_exhausted_error, truncate_raw,
effective_request_timeout_ms, ensure_provider_matches_model,
request_budget_exhausted_error, truncate_raw,
},
};
@@ -125,6 +126,9 @@ pub async fn create_raw_image_edit(
failure_context: &str,
) -> Result<RawImageEditResult, PlatformImageError> {
let provider_label = settings.provider.as_str();
// 中文注释:raw edit 只发送 GPT Image 2.5 编辑 concrete model,先按共享白名单校验
// provider,避免把 Tiantoken 的模型发到 VectorEngine 端点(或反之)。
ensure_provider_matches_model(settings, GPT_IMAGE_2_5_EDIT_MODEL, failure_context)?;
validate_raw_image_edit_dimensions(options.width, options.height)
.map_err(|error| invalid_input(settings.provider, failure_context, error.to_string()))?;
let url = images_edit_url(settings);