feat!: breaking change - OpenRouter models are now read from conf/openrouter_models.json while Custom / Self-hosted models are read from conf/custom_models.json
feat: Azure OpenAI / Azure AI Foundry support. Models should be defined in conf/azure_models.json (or a custom path). See .env.example for environment variables or see readme. https://github.com/BeehiveInnovations/zen-mcp-server/issues/265 feat: OpenRouter / Custom Models / Azure can separately also use custom config paths now (see .env.example ) refactor: Model registry class made abstract, OpenRouter / Custom Provider / Azure OpenAI now subclass these refactor: breaking change: `is_custom` property has been removed from model_capabilities.py (and thus custom_models.json) given each models are now read from separate configuration files
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
"""OpenRouter provider implementation."""
|
||||
|
||||
import logging
|
||||
from typing import Optional
|
||||
|
||||
from utils.env import get_env
|
||||
|
||||
@@ -42,7 +41,7 @@ class OpenRouterProvider(OpenAICompatibleProvider):
|
||||
}
|
||||
|
||||
# Model registry for managing configurations and aliases
|
||||
_registry: Optional[OpenRouterModelRegistry] = None
|
||||
_registry: OpenRouterModelRegistry | None = None
|
||||
|
||||
def __init__(self, api_key: str, **kwargs):
|
||||
"""Initialize OpenRouter provider.
|
||||
@@ -70,8 +69,8 @@ class OpenRouterProvider(OpenAICompatibleProvider):
|
||||
def _lookup_capabilities(
|
||||
self,
|
||||
canonical_name: str,
|
||||
requested_name: Optional[str] = None,
|
||||
) -> Optional[ModelCapabilities]:
|
||||
requested_name: str | None = None,
|
||||
) -> ModelCapabilities | None:
|
||||
"""Fetch OpenRouter capabilities from the registry or build a generic fallback."""
|
||||
|
||||
capabilities = self._registry.get_capabilities(canonical_name)
|
||||
@@ -143,7 +142,7 @@ class OpenRouterProvider(OpenAICompatibleProvider):
|
||||
# Custom models belong to CustomProvider; skip them here so the two
|
||||
# providers don't race over the same registrations (important for tests
|
||||
# that stub the registry with minimal objects lacking attrs).
|
||||
if hasattr(config, "is_custom") and config.is_custom is True:
|
||||
if config.provider == ProviderType.CUSTOM:
|
||||
continue
|
||||
|
||||
if restriction_service:
|
||||
@@ -211,7 +210,7 @@ class OpenRouterProvider(OpenAICompatibleProvider):
|
||||
continue
|
||||
|
||||
# See note in list_models: respect the CustomProvider boundary.
|
||||
if hasattr(config, "is_custom") and config.is_custom is True:
|
||||
if config.provider == ProviderType.CUSTOM:
|
||||
continue
|
||||
|
||||
capabilities[model_name] = config
|
||||
|
||||
Reference in New Issue
Block a user