From 13500dbb37c9713b98863f32a24a95acd0db4330 Mon Sep 17 00:00:00 2001 From: YellowSnnowmann <167776381+YellowSnnowmann@users.noreply.github.com> Date: Tue, 19 May 2026 21:22:33 +0530 Subject: [PATCH] fix(inference): propagate temperature_unsupported_models to local routing providers (#2221) --- src/openhuman/inference/provider/ops.rs | 7 ++++++- src/openhuman/routing/factory.rs | 13 ++++++------- src/openhuman/routing/mod.rs | 7 ++++++- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/openhuman/inference/provider/ops.rs b/src/openhuman/inference/provider/ops.rs index f54bace27..2a5b673f2 100644 --- a/src/openhuman/inference/provider/ops.rs +++ b/src/openhuman/inference/provider/ops.rs @@ -627,7 +627,12 @@ pub fn create_intelligent_routing_provider( )) }; - let provider = crate::openhuman::routing::new_provider(remote, &config.local_ai, default_model); + let provider = crate::openhuman::routing::new_provider( + remote, + &config.local_ai, + default_model, + &config.temperature_unsupported_models, + ); Ok(Box::new(provider)) } diff --git a/src/openhuman/routing/factory.rs b/src/openhuman/routing/factory.rs index 07941d65e..0335e82b6 100644 --- a/src/openhuman/routing/factory.rs +++ b/src/openhuman/routing/factory.rs @@ -28,6 +28,7 @@ pub fn new_provider( remote: Box, local_ai_config: &LocalAiConfig, remote_fallback_model: &str, + temperature_unsupported_models: &[String], ) -> IntelligentRoutingProvider { // Allow operators to point the local routing tier at an OpenAI-compatible // server other than Ollama (e.g. llama-server for Gemma 4 E2B, which @@ -114,12 +115,10 @@ pub fn new_provider( } else { AuthStyle::None }; - let local: Box = Box::new(OpenAiCompatibleProvider::new( - provider_label, - &local_base, - local_api_key, - local_auth_style, - )); + let local: Box = Box::new( + OpenAiCompatibleProvider::new(provider_label, &local_base, local_api_key, local_auth_style) + .with_temperature_unsupported_models(temperature_unsupported_models.to_vec()), + ); IntelligentRoutingProvider::new( remote, @@ -166,7 +165,7 @@ mod tests { } fn make_provider(config: &LocalAiConfig) -> IntelligentRoutingProvider { - new_provider(Box::new(StubProvider), config, "remote-fallback") + new_provider(Box::new(StubProvider), config, "remote-fallback", &[]) } /// Test that construction does not panic and the provider is usable. diff --git a/src/openhuman/routing/mod.rs b/src/openhuman/routing/mod.rs index 2fa6fba16..1dcd42eab 100644 --- a/src/openhuman/routing/mod.rs +++ b/src/openhuman/routing/mod.rs @@ -28,7 +28,12 @@ //! use crate::openhuman::inference::provider::compatible::{AuthStyle, OpenAiCompatibleProvider}; //! //! let remote = create_backend_inference_provider(api_url, &opts)?; -//! let provider = routing::new_provider(remote, &config.local_ai, &config.default_model); +//! let provider = routing::new_provider( +//! remote, +//! &config.local_ai, +//! &config.default_model, +//! &config.temperature_unsupported_models, +//! ); //! ``` pub mod factory;