|
""" |
|
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" |
|
} |
|
|