Files
ai-model-router/backend/app/providers/registry.py
T

36 lines
1.2 KiB
Python

from typing import Dict, Optional
from app.providers.base import ModelProvider
from app.providers.mock_provider import MockProvider
from app.providers.ollama_provider import OllamaProvider
from app.providers.external_providers import OpenAIProvider, AnthropicProvider, GeminiProvider
from app.config.settings import get_settings
settings = get_settings()
class ProviderRegistry:
"""
Central registry managing provider instances.
"""
def __init__(self):
self._providers: Dict[str, ModelProvider] = {
"mock": MockProvider(),
"ollama": OllamaProvider(base_url=settings.OLLAMA_BASE_URL),
"openai": OpenAIProvider(api_key=settings.OPENAI_API_KEY),
"anthropic": AnthropicProvider(api_key=settings.ANTHROPIC_API_KEY),
"gemini": GeminiProvider(api_key=settings.GEMINI_API_KEY),
}
def get_provider(self, provider_id: str) -> Optional[ModelProvider]:
return self._providers.get(provider_id.lower())
def register_provider(self, provider_id: str, provider: ModelProvider):
self._providers[provider_id.lower()] = provider
def list_providers(self) -> Dict[str, ModelProvider]:
return self._providers
provider_registry = ProviderRegistry()