Spaces:
Running
Running
""" | |
LLM Adapters for Answer Generator. | |
This module provides adapters for various LLM providers, converting | |
between the unified interface and provider-specific formats. | |
Available adapters: | |
- OllamaAdapter: For local Ollama models | |
- OpenAIAdapter: For OpenAI API (GPT models) | |
- HuggingFaceAdapter: For HuggingFace models and Inference API | |
""" | |
from .base_adapter import ( | |
BaseLLMAdapter, | |
RateLimitError, | |
AuthenticationError, | |
ModelNotFoundError | |
) | |
from .ollama_adapter import OllamaAdapter | |
from .huggingface_adapter import HuggingFaceAdapter | |
from .mock_adapter import MockLLMAdapter | |
# Future adapters will be imported here | |
# from .openai_adapter import OpenAIAdapter | |
__all__ = [ | |
'BaseLLMAdapter', | |
'OllamaAdapter', | |
'HuggingFaceAdapter', | |
'MockLLMAdapter', | |
# 'OpenAIAdapter', | |
'RateLimitError', | |
'AuthenticationError', | |
'ModelNotFoundError' | |
] | |
# Adapter registry for easy lookup | |
ADAPTER_REGISTRY = { | |
'ollama': OllamaAdapter, | |
'huggingface': HuggingFaceAdapter, | |
'mock': MockLLMAdapter, | |
# 'openai': OpenAIAdapter, | |
} | |
def get_adapter_class(provider: str): | |
""" | |
Get adapter class by provider name. | |
Args: | |
provider: Provider name (e.g., 'ollama', 'openai') | |
Returns: | |
Adapter class | |
Raises: | |
ValueError: If provider not found | |
""" | |
if provider not in ADAPTER_REGISTRY: | |
raise ValueError(f"Unknown LLM provider: {provider}. Available: {list(ADAPTER_REGISTRY.keys())}") | |
return ADAPTER_REGISTRY[provider] |