Spaces:
Sleeping
Sleeping
File size: 1,758 Bytes
b313f94 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
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
|