aimevzulari's picture
Upload 19 files
bed5cc5 verified
"""
Cursor Rules Generator - LLM Adapter Factory
This module implements the factory for creating LLM adapters.
"""
from typing import Dict, Any
from .adapter import LLMAdapter
from .gemini_adapter import GeminiAdapter
from .openai_adapter import OpenAIAdapter
from .openrouter_adapter import OpenRouterAdapter
class LLMAdapterFactory:
"""Factory for creating LLM adapters."""
@staticmethod
def create_adapter(provider_name: str) -> LLMAdapter:
"""Create an adapter for the specified provider.
Args:
provider_name: The name of the LLM provider
Returns:
LLMAdapter: An adapter instance for the specified provider
Raises:
ValueError: If the provider is not supported
"""
provider_name = provider_name.lower()
if provider_name == "gemini":
return GeminiAdapter()
elif provider_name == "openai":
return OpenAIAdapter()
elif provider_name == "openrouter":
return OpenRouterAdapter()
else:
raise ValueError(f"Unsupported provider: {provider_name}")
@staticmethod
def get_supported_providers() -> Dict[str, str]:
"""Get a dictionary of supported providers.
Returns:
Dict[str, str]: A dictionary mapping provider IDs to display names
"""
return {
"gemini": "Google Gemini",
"openai": "OpenAI",
"openrouter": "OpenRouter"
}