Spaces:
Sleeping
Sleeping
Download src/elbench/providers/factory.py from adelevett/ELBench-live: direct link, hf CLI and curl.
- Browser
- Download file 808 Bytes
-
https://huggingface.co/spaces/adelevett/ELBench-live/resolve/main/src/elbench/providers/factory.py
- Command line
-
hf download hf://spaces/adelevett/ELBench-live/src/elbench/providers/factory.py
-
curl -L -o factory.py https://huggingface.co/spaces/adelevett/ELBench-live/resolve/main/src/elbench/providers/factory.py
808 Bytes
| from __future__ import annotations | |
| from elbench.providers.base import ModelClient | |
| from elbench.providers.mock import MockModelClient | |
| from elbench.providers.openai_compatible import OpenAICompatibleClient | |
| from elbench.schemas.config import ModelConfig, ProviderConfig | |
| class ProviderFactory: | |
| _PROVIDERS: dict[str, type[ModelClient]] = { | |
| "mock": MockModelClient, | |
| "openai_compatible": OpenAICompatibleClient, | |
| } | |
| def create(cls, provider_config: ProviderConfig, model_config: ModelConfig) -> ModelClient: | |
| adapter = provider_config.adapter | |
| if adapter not in cls._PROVIDERS: | |
| raise ValueError(f"Unsupported provider adapter: {adapter}") | |
| return cls._PROVIDERS[adapter](provider_config=provider_config, model_config=model_config) | |