Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
| """Helpers for CLI local OpenAI-compatible model ids.""" | |
| LOCAL_MODEL_PROVIDERS: dict[str, dict[str, str]] = { | |
| "ollama/": { | |
| "base_url_env": "OLLAMA_BASE_URL", | |
| "base_url_default": "http://localhost:11434", | |
| "api_key_env": "OLLAMA_API_KEY", | |
| }, | |
| "vllm/": { | |
| "base_url_env": "VLLM_BASE_URL", | |
| "base_url_default": "http://localhost:8000", | |
| "api_key_env": "VLLM_API_KEY", | |
| }, | |
| "lm_studio/": { | |
| "base_url_env": "LMSTUDIO_BASE_URL", | |
| "base_url_default": "http://127.0.0.1:1234", | |
| "api_key_env": "LMSTUDIO_API_KEY", | |
| }, | |
| "llamacpp/": { | |
| "base_url_env": "LLAMACPP_BASE_URL", | |
| "base_url_default": "http://localhost:8080", | |
| "api_key_env": "LLAMACPP_API_KEY", | |
| }, | |
| } | |
| LOCAL_MODEL_PREFIXES = tuple(LOCAL_MODEL_PROVIDERS) | |
| RESERVED_LOCAL_MODEL_PREFIXES = ("openai-compat/",) | |
| LOCAL_MODEL_BASE_URL_ENV = "LOCAL_LLM_BASE_URL" | |
| LOCAL_MODEL_API_KEY_ENV = "LOCAL_LLM_API_KEY" | |
| LOCAL_MODEL_API_KEY_DEFAULT = "sk-local-no-key-required" | |
| def local_model_provider(model_id: str) -> dict[str, str] | None: | |
| """Return provider config for a local model id, if it uses a local prefix.""" | |
| for prefix, config in LOCAL_MODEL_PROVIDERS.items(): | |
| if model_id.startswith(prefix): | |
| return config | |
| return None | |
| def local_model_name(model_id: str) -> str | None: | |
| """Return the backend model name with the local provider prefix removed.""" | |
| for prefix in LOCAL_MODEL_PREFIXES: | |
| if model_id.startswith(prefix): | |
| name = model_id[len(prefix) :] | |
| return name or None | |
| return None | |
| def is_local_model_id(model_id: str) -> bool: | |
| """Return True for non-empty, whitespace-free local model ids.""" | |
| if not model_id or any(char.isspace() for char in model_id): | |
| return False | |
| return local_model_name(model_id) is not None | |
| def is_reserved_local_model_id(model_id: str) -> bool: | |
| """Return True for local-style prefixes intentionally not supported.""" | |
| return model_id.startswith(RESERVED_LOCAL_MODEL_PREFIXES) | |