id2223-finetuning / src /llm /__init__.py
Akeela Darryl
project
b313f94
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