Commit 5f6963f4 authored by Your Name's avatar Your Name

Fix user provider config assignment - set handler.provider_config to user config

parent 01f51b97
......@@ -124,9 +124,10 @@ def get_provider_handler(provider_id: str, api_key: Optional[str] = None, user_i
handler.user_id = user_id
# Base class already handles default error tracking and rate limit for user providers
# Store user provider config on the handler for later use
# Set provider config to the user-specific config instead of loading from global config
if user_id is not None and provider_config is not None:
handler.user_provider_config = provider_config
handler.provider_config = provider_config
logger.info(f"Handler created: {handler.__class__.__name__}")
logger.info(f"=== get_provider_handler END ===")
......
......@@ -44,6 +44,14 @@ class KiloProviderHandler(BaseProviderHandler):
self.provider_config = config.get_provider(provider_id)
# Unified auth config with backward compatibility
# Handle both dict (user) and object (global) config formats
if isinstance(self.provider_config, dict):
kilo_config = self.provider_config.get('auth_config')
if not kilo_config:
kilo_config = self.provider_config.get('kilo_config')
if not kilo_config:
kilo_config = self.provider_config.get('kiro_config')
else:
kilo_config = getattr(self.provider_config, 'auth_config', None)
if not kilo_config:
kilo_config = getattr(self.provider_config, 'kilo_config', None)
......@@ -55,6 +63,9 @@ class KiloProviderHandler(BaseProviderHandler):
self._use_api_key_auth = False
# If explicit API key is provided OR provider config has API key configured, use direct API key authentication - NO OAUTH
if isinstance(self.provider_config, dict):
configured_api_key = self.provider_config.get('api_key')
else:
configured_api_key = getattr(self.provider_config, 'api_key', None)
if (self.api_key and self.api_key != "placeholder") or (configured_api_key and configured_api_key != "placeholder"):
self._use_api_key_auth = True
......@@ -96,6 +107,9 @@ class KiloProviderHandler(BaseProviderHandler):
logger.info(f"KiloProviderHandler.__init__: self.oauth2 type={type(self.oauth2)}, value={self.oauth2}")
if isinstance(self.provider_config, dict):
configured_endpoint = self.provider_config.get('endpoint')
else:
configured_endpoint = getattr(self.provider_config, 'endpoint', None)
if configured_endpoint:
endpoint = configured_endpoint.rstrip('/')
......
......@@ -76,6 +76,9 @@ class QwenProviderHandler(BaseProviderHandler):
self.provider_config = config.get_provider(provider_id)
# Get credentials file path from config
if isinstance(self.provider_config, dict):
qwen_config = self.provider_config.get('qwen_config')
else:
qwen_config = getattr(self.provider_config, 'qwen_config', None)
credentials_file = None
if qwen_config and isinstance(qwen_config, dict):
......@@ -174,6 +177,9 @@ class QwenProviderHandler(BaseProviderHandler):
logger = logging.getLogger(__name__)
# Check if API key is configured (vs OAuth2)
if isinstance(self.provider_config, dict):
qwen_config = self.provider_config.get('qwen_config')
else:
qwen_config = getattr(self.provider_config, 'qwen_config', None)
api_key = None
if qwen_config and isinstance(qwen_config, dict):
......@@ -250,6 +256,9 @@ class QwenProviderHandler(BaseProviderHandler):
logger = logging.getLogger(__name__)
# Check if API key is configured (vs OAuth2)
if isinstance(self.provider_config, dict):
qwen_config = self.provider_config.get('qwen_config')
else:
qwen_config = getattr(self.provider_config, 'qwen_config', None)
api_key = None
if qwen_config and isinstance(qwen_config, dict):
......@@ -531,6 +540,9 @@ class QwenProviderHandler(BaseProviderHandler):
await self.apply_rate_limit()
# Check if API token is configured (vs OAuth2)
if isinstance(self.provider_config, dict):
qwen_config = self.provider_config.get('qwen_config')
else:
qwen_config = getattr(self.provider_config, 'qwen_config', None)
using_api_key = qwen_config and isinstance(qwen_config, dict) and qwen_config.get('api_key')
......
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