File size: 1,553 Bytes
bed5cc5 |
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 50 51 52 53 |
"""
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"
}
|