Spaces:
Running
Running
| from dataclasses import dataclass | |
| from typing import Dict | |
| class ModelConfig: | |
| alias: str | |
| deployment_name: str | |
| is_openai_compatible: bool = True | |
| backend: str = "openai" # "openai", "google", "huggingface", or "vllm" | |
| is_thinking_model: bool = False # Uses thinking tokens, needs higher max_completion_tokens | |
| vllm_base_url: str = "http://localhost:8000/v1" # Only used when backend="vllm" | |
| MODELS: Dict[str, ModelConfig] = { | |
| "gemini-3-flash": ModelConfig( | |
| alias="gemini-3-flash", | |
| deployment_name="gemini-3-flash-preview", | |
| is_openai_compatible=True, | |
| backend="google", | |
| is_thinking_model=True, | |
| ), | |
| "gpt-5.1": ModelConfig( | |
| alias="gpt-5.1", | |
| deployment_name="gpt-5.1", | |
| is_openai_compatible=True, | |
| backend="openai", | |
| ), | |
| "gemma-3-27b-it": ModelConfig( | |
| alias="gemma-3-27b-it", | |
| deployment_name="google/gemma-3-27b-it", | |
| is_openai_compatible=False, | |
| backend="vllm", | |
| ), | |
| } | |
| DEFAULT_MODEL_ALIAS = "gemini-3-flash" | |
| def get_model_config(alias: str) -> ModelConfig: | |
| if alias not in MODELS: | |
| available = ", ".join(sorted(MODELS.keys())) | |
| raise ValueError( | |
| f"Unknown model alias '{alias}'. Available models: {available}" | |
| ) | |
| return MODELS[alias] |