Commit b8bb6826 authored by Your Name's avatar Your Name

Fix user provider model config access - store user_provider_config on handler

parent 707f2690
...@@ -127,10 +127,17 @@ def get_provider_handler(provider_id: str, api_key: Optional[str] = None, user_i ...@@ -127,10 +127,17 @@ def get_provider_handler(provider_id: str, api_key: Optional[str] = None, user_i
handler.error_tracking = { handler.error_tracking = {
"enabled": True, "enabled": True,
"max_errors": 5, "max_errors": 5,
"cooldown_seconds": 60 "cooldown_seconds": 60,
"failures": 0,
"last_failure": 0,
"disabled_until": None
} }
handler.rate_limit = 60 handler.rate_limit = 60
# Store user provider config on the handler for later use
if user_id is not None and provider_config is not None:
handler.user_provider_config = provider_config
logger.info(f"Handler created: {handler.__class__.__name__}") logger.info(f"Handler created: {handler.__class__.__name__}")
logger.info(f"=== get_provider_handler END ===") logger.info(f"=== get_provider_handler END ===")
return handler return handler
...@@ -1035,9 +1035,22 @@ class BaseProviderHandler: ...@@ -1035,9 +1035,22 @@ class BaseProviderHandler:
def _get_model_config(self, model: str) -> Optional[Dict]: def _get_model_config(self, model: str) -> Optional[Dict]:
"""Get model configuration from provider config""" """Get model configuration from provider config"""
provider_config = config.providers.get(self.provider_id) # Use user provider config if available, otherwise global config
if provider_config and hasattr(provider_config, 'models') and provider_config.models: if self.user_id is not None and hasattr(self, 'user_provider_config'):
for model_config in provider_config.models: provider_config = self.user_provider_config
else:
provider_config = config.providers.get(self.provider_id)
# Handle both dict (user) and object (global) config formats
if provider_config:
# Get models list depending on config type
if isinstance(provider_config, dict):
models = provider_config.get('models', [])
else:
models = provider_config.models if hasattr(provider_config, 'models') else []
if models:
for model_config in models:
# Handle both Pydantic objects and dictionaries # Handle both Pydantic objects and dictionaries
model_name_value = model_config.name if hasattr(model_config, 'name') else model_config.get('name') model_name_value = model_config.name if hasattr(model_config, 'name') else model_config.get('name')
if model_name_value == model: if model_name_value == model:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment