added opencode zen as provider
This commit is contained in:
26
server.py
26
server.py
@@ -400,11 +400,13 @@ def configure_providers():
|
||||
from providers.openrouter import OpenRouterProvider
|
||||
from providers.shared import ProviderType
|
||||
from providers.xai import XAIModelProvider
|
||||
from providers.zen import ZenProvider
|
||||
from utils.model_restrictions import get_restriction_service
|
||||
|
||||
valid_providers = []
|
||||
has_native_apis = False
|
||||
has_openrouter = False
|
||||
has_zen = False
|
||||
has_custom = False
|
||||
|
||||
# Check for Gemini API key
|
||||
@@ -475,6 +477,19 @@ def configure_providers():
|
||||
else:
|
||||
logger.debug("OpenRouter API key is placeholder value")
|
||||
|
||||
# Check for OpenCode Zen API key
|
||||
zen_key = get_env("ZEN_API_KEY")
|
||||
logger.debug(f"OpenCode Zen key check: key={'[PRESENT]' if zen_key else '[MISSING]'}")
|
||||
if zen_key and zen_key != "your_zen_api_key_here":
|
||||
valid_providers.append("OpenCode Zen")
|
||||
has_zen = True
|
||||
logger.info("OpenCode Zen API key found - Curated models available via Zen")
|
||||
else:
|
||||
if not zen_key:
|
||||
logger.debug("OpenCode Zen API key not found in environment")
|
||||
else:
|
||||
logger.debug("OpenCode Zen API key is placeholder value")
|
||||
|
||||
# Check for custom API endpoint (Ollama, vLLM, etc.)
|
||||
custom_url = get_env("CUSTOM_API_URL")
|
||||
if custom_url:
|
||||
@@ -530,7 +545,13 @@ def configure_providers():
|
||||
registered_providers.append(ProviderType.CUSTOM.value)
|
||||
logger.debug(f"Registered provider: {ProviderType.CUSTOM.value}")
|
||||
|
||||
# 3. OpenRouter last (catch-all for everything else)
|
||||
# 3. OpenCode Zen
|
||||
if has_zen:
|
||||
ModelProviderRegistry.register_provider(ProviderType.ZEN, ZenProvider)
|
||||
registered_providers.append(ProviderType.ZEN.value)
|
||||
logger.debug(f"Registered provider: {ProviderType.ZEN.value}")
|
||||
|
||||
# 4. OpenRouter last (catch-all for everything else)
|
||||
if has_openrouter:
|
||||
ModelProviderRegistry.register_provider(ProviderType.OPENROUTER, OpenRouterProvider)
|
||||
registered_providers.append(ProviderType.OPENROUTER.value)
|
||||
@@ -548,6 +569,7 @@ def configure_providers():
|
||||
"- OPENAI_API_KEY for OpenAI models\n"
|
||||
"- XAI_API_KEY for X.AI GROK models\n"
|
||||
"- DIAL_API_KEY for DIAL models\n"
|
||||
"- ZEN_API_KEY for OpenCode Zen (curated models)\n"
|
||||
"- OPENROUTER_API_KEY for OpenRouter (multiple models)\n"
|
||||
"- CUSTOM_API_URL for local models (Ollama, vLLM, etc.)"
|
||||
)
|
||||
@@ -558,6 +580,8 @@ def configure_providers():
|
||||
priority_info = []
|
||||
if has_native_apis:
|
||||
priority_info.append("Native APIs (Gemini, OpenAI)")
|
||||
if has_zen:
|
||||
priority_info.append("OpenCode Zen")
|
||||
if has_custom:
|
||||
priority_info.append("Custom endpoints")
|
||||
if has_openrouter:
|
||||
|
||||
Reference in New Issue
Block a user