fix: set api_mode when switching providers via hermes model (#3726)
When switching providers via 'hermes model', the previous provider's api_mode persisted in config.yaml. Switching from Copilot (codex_responses) to a chat_completions provider like Z.AI would send requests to the wrong endpoint (404). Set api_mode = chat_completions in the 4 provider flows that were missing it: OpenRouter, custom endpoint, Kimi, and api_key_provider. Co-authored-by: Nour Eddine Hamaidi <HenkDz@users.noreply.github.com>
This commit is contained in:
@@ -980,6 +980,7 @@ def _model_flow_openrouter(config, current_model=""):
|
||||
cfg["model"] = model
|
||||
model["provider"] = "openrouter"
|
||||
model["base_url"] = OPENROUTER_BASE_URL
|
||||
model["api_mode"] = "chat_completions"
|
||||
save_config(cfg)
|
||||
deactivate_provider()
|
||||
print(f"Default model set to: {selected} (via OpenRouter)")
|
||||
@@ -1203,6 +1204,7 @@ def _model_flow_custom(config):
|
||||
cfg["model"] = model
|
||||
model["provider"] = "custom"
|
||||
model["base_url"] = effective_url
|
||||
model["api_mode"] = "chat_completions"
|
||||
save_config(cfg)
|
||||
deactivate_provider()
|
||||
|
||||
@@ -1984,6 +1986,7 @@ def _model_flow_kimi(config, current_model=""):
|
||||
cfg["model"] = model
|
||||
model["provider"] = provider_id
|
||||
model["base_url"] = effective_base
|
||||
model["api_mode"] = "chat_completions"
|
||||
save_config(cfg)
|
||||
deactivate_provider()
|
||||
|
||||
@@ -2090,6 +2093,7 @@ def _model_flow_api_key_provider(config, provider_id, current_model=""):
|
||||
cfg["model"] = model
|
||||
model["provider"] = provider_id
|
||||
model["base_url"] = effective_base
|
||||
model["api_mode"] = "chat_completions"
|
||||
save_config(cfg)
|
||||
deactivate_provider()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user