@@ -19,8 +19,8 @@ def __init__(self):
1919 self .openai_client = None
2020 self .azure_openai_client = None
2121 self .anthropic_client = None
22- self .deepseek_api_key = None
23- self .deepseek_base_url = None
22+ self .openai_compatible_api_key = None
23+ self .openai_compatible_base_url = None
2424 self .ollama_base_url = None
2525 self .ollama_timeout = None
2626
@@ -107,17 +107,35 @@ def initialize_clients(self, args: Namespace) -> Dict[str, str]:
107107 if antropic_key :
108108 self .anthropic_client = Anthropic (api_key = antropic_key )
109109
110- # DeepSeek
111- deepseek_key = self ._get_setting (
112- args , 'deepseek_key' , 'DEEPSEEK_API_KEY' , 'deepseek' , 'api_key' , ''
110+ # OpenAI-Compatible (accepts both --openai-compatible-* and --deepseek-* args)
111+ openai_compatible_key = self ._get_setting (
112+ args , 'openai_compatible_key' , 'OPENAI_COMPATIBLE_API_KEY' ,
113+ 'openai_compatible' , 'api_key' , ''
113114 )
114- if deepseek_key :
115- self .deepseek_api_key = deepseek_key
115+ if not openai_compatible_key :
116+ # Backward compatibility: accept deepseek args
117+ openai_compatible_key = self ._get_setting (
118+ args , 'deepseek_key' , 'DEEPSEEK_API_KEY' , 'deepseek' , 'api_key' , ''
119+ )
120+ if openai_compatible_key :
121+ self .openai_compatible_api_key = openai_compatible_key
122+
123+ # Base URL - default to DeepSeek API if using deepseek provider
124+ provider_name = args .provider if hasattr (args , 'provider' ) else None
125+ default_base_url = 'https://api.deepseek.com/v1' if provider_name == 'deepseek' else None
116126
117- self . deepseek_base_url = self ._get_setting (
118- args , 'deepseek_base_url ' , 'DEEPSEEK_BASE_URL ' ,
119- 'deepseek ' , 'base_url' , 'https://api.deepseek.com/v1'
127+ openai_compatible_base_url = self ._get_setting (
128+ args , 'openai_compatible_base_url ' , 'OPENAI_COMPATIBLE_BASE_URL ' ,
129+ 'openai_compatible ' , 'base_url' , None
120130 )
131+ if not openai_compatible_base_url :
132+ # Backward compatibility: accept deepseek args
133+ openai_compatible_base_url = self ._get_setting (
134+ args , 'deepseek_base_url' , 'DEEPSEEK_BASE_URL' ,
135+ 'deepseek' , 'base_url' , default_base_url
136+ )
137+ if openai_compatible_base_url :
138+ self .openai_compatible_base_url = openai_compatible_base_url
121139
122140 # Ollama
123141 self .ollama_base_url = self ._get_setting (
@@ -132,7 +150,8 @@ def initialize_clients(self, args: Namespace) -> Dict[str, str]:
132150 return {
133151 ModelProvider .OPENAI .value : openai_key ,
134152 ModelProvider .ANTHROPIC .value : antropic_key ,
135- ModelProvider .DEEPSEEK .value : deepseek_key ,
153+ ModelProvider .OPENAI_COMPATIBLE .value : openai_compatible_key ,
154+ ModelProvider .DEEPSEEK .value : openai_compatible_key ,
136155 ModelProvider .AZURE_OPENAI .value : azure_openai_key ,
137156 ModelProvider .OLLAMA .value : "local" , # Ollama doesn't need API key
138157 ModelProvider .CLAUDE_SDK .value : "local" ,
0 commit comments