diff --git a/litellm-rust/crates/core/src/image_edit/transformation.rs b/litellm-rust/crates/core/src/image_edit/transformation.rs index 7a6fafe0095..400cb5d6c47 100644 --- a/litellm-rust/crates/core/src/image_edit/transformation.rs +++ b/litellm-rust/crates/core/src/image_edit/transformation.rs @@ -11,6 +11,18 @@ use super::types::{ImageEditInputFile, ImageEditRequestData, ImageEditResponseDa pub trait ImageEditProviderConfig: Send + Sync { fn supported_image_edit_params(&self) -> &'static [&'static str]; + fn resolve_api_key( + &self, + api_key: Option<&str>, + env_lookup: &dyn Fn(&str) -> Option, + ) -> Option; + + fn complete_url( + &self, + api_base: Option<&str>, + env_lookup: &dyn Fn(&str) -> Option, + ) -> CoreResult; + fn map_image_edit_params(&self, non_default_params: &Map) -> Map { let mut mapped_params = Map::new(); for (param, value) in non_default_params { diff --git a/litellm-rust/crates/providers/src/image_edit.rs b/litellm-rust/crates/providers/src/image_edit.rs index bf5d82eea15..2732a28ed2b 100644 --- a/litellm-rust/crates/providers/src/image_edit.rs +++ b/litellm-rust/crates/providers/src/image_edit.rs @@ -15,7 +15,6 @@ use litellm_core::image_edit::types::{ImageEditInputFile, ImageEditRequestFormat use litellm_core::{CoreResult, LlmProvider}; use serde_json::{Map, Value}; -use crate::vllm::image_edit::transformation as vllm; use crate::vllm::image_edit::transformation::VLLM_IMAGE_EDIT_CONFIG; const IMAGE_EDIT_TIMEOUT_SECS: u64 = 600; @@ -126,8 +125,8 @@ pub async fn image_edit(request: ImageEditRequest<'_>) -> CoreResult { let config = image_edit_config_for(provider) .ok_or_else(|| CoreError::InvalidProvider(provider.to_string()))?; - let api_key = vllm::resolve_api_key(request.api_key, &|key| std::env::var(key).ok()); - let url = vllm::complete_url(request.api_base, &|key| std::env::var(key).ok())?; + let api_key = config.resolve_api_key(request.api_key, &|key| std::env::var(key).ok()); + let url = config.complete_url(request.api_base, &|key| std::env::var(key).ok())?; let filtered_params = config.map_image_edit_params(&request.optional_params); let transformed = config.transform_image_edit_request( request.model, diff --git a/litellm-rust/crates/providers/src/vllm/image_edit/transformation.rs b/litellm-rust/crates/providers/src/vllm/image_edit/transformation.rs index 69685b4ddba..bc8e67276d4 100644 --- a/litellm-rust/crates/providers/src/vllm/image_edit/transformation.rs +++ b/litellm-rust/crates/providers/src/vllm/image_edit/transformation.rs @@ -62,6 +62,22 @@ impl ImageEditProviderConfig for VllmImageEditConfig { SUPPORTED_IMAGE_EDIT_PARAMS } + fn resolve_api_key( + &self, + api_key: Option<&str>, + env_lookup: &dyn Fn(&str) -> Option, + ) -> Option { + resolve_api_key(api_key, env_lookup) + } + + fn complete_url( + &self, + api_base: Option<&str>, + env_lookup: &dyn Fn(&str) -> Option, + ) -> CoreResult { + complete_url(api_base, env_lookup) + } + fn transform_image_edit_request( &self, model: &str,