Spaces:
Running on Zero
Running on Zero
| """ | |
| Unified Engine Router for Parallel Constrained Decoding. | |
| Automatically selects MLX backend on Apple Silicon macOS, | |
| or PyTorch / CUDA backend on Linux, Docker, and Hugging Face Spaces. | |
| """ | |
| import os | |
| import platform | |
| USE_MLX = False | |
| if platform.system() == "Darwin" and os.environ.get("BACKEND", "").lower() != "torch": | |
| try: | |
| import mlx.core as mx | |
| import mlx_lm | |
| USE_MLX = True | |
| except Exception: | |
| USE_MLX = False | |
| if USE_MLX: | |
| from core.engine_mlx import ( | |
| get_engine, | |
| run_parallel_generation, | |
| run_naive_generation, | |
| stream_naive_generation, | |
| run_rlcd_generation, | |
| ) | |
| else: | |
| from core.engine_torch import ( | |
| get_torch_engine as get_engine, | |
| run_parallel_generation_torch as run_parallel_generation, | |
| run_naive_generation_torch as run_naive_generation, | |
| stream_naive_generation_torch as stream_naive_generation, | |
| ) | |
| run_rlcd_generation = run_parallel_generation | |
| __all__ = [ | |
| "get_engine", | |
| "run_parallel_generation", | |
| "run_naive_generation", | |
| "stream_naive_generation", | |
| "run_rlcd_generation", | |
| "USE_MLX", | |
| ] | |