Spaces:
Sleeping
Sleeping
| import os | |
| from typing import Dict | |
| from .base import BaseLLMProvider | |
| from .factory import LLMFactory | |
| __all__ = [ | |
| "BaseLLMProvider", | |
| "LLMFactory", | |
| ] | |
| def initialize_providers() -> Dict: | |
| available_providers = {} | |
| # Auto-discover all providers | |
| provider_names = LLMFactory.get_available_providers() | |
| for provider_name in provider_names: | |
| try: | |
| if provider_name == "mock": | |
| # Mock provider - always available | |
| provider = LLMFactory.create_provider(provider_name, delay=0.05) | |
| if provider.is_available(): | |
| available_providers[provider.name] = provider | |
| elif provider_name == "ollama": | |
| ollama_url = os.getenv("OLLAMA_BASE_URL", "http://localhost:11434") | |
| provider = LLMFactory.create_provider(provider_name, api_url=ollama_url) | |
| if provider.is_available(): | |
| available_providers[provider.name] = provider | |
| else: | |
| # Generic provider - try to load with API key or URL from env | |
| env_url = f"{provider_name.upper()}_API_URL" | |
| env_key = f"{provider_name.upper()}_API_KEY" | |
| if api_key := os.getenv(env_key): | |
| provider = LLMFactory.create_provider(provider_name, api_key=api_key) | |
| elif api_url := os.getenv(env_url): | |
| provider = LLMFactory.create_provider(provider_name, api_url=api_url) | |
| if provider.is_available(): | |
| available_providers[provider.name] = provider | |
| except Exception as e: | |
| print(f"Failed to initialize {provider_name}: {e}") | |
| return available_providers | |