|
34 | 34 | "huggingface": (None, ["HF_TOKEN", "HUGGINGFACE_API_KEY"]), |
35 | 35 | "ollama": (None, []), |
36 | 36 | "vllm": (None, []), |
37 | | - "freetoken": ("http://127.0.0.1:1919/v1", []), |
38 | 37 | } |
39 | 38 |
|
40 | | -# Local OpenAI-compatible servers need no real key, but the OpenAI client still |
41 | | -# requires a non-empty string, so keyless providers get a harmless placeholder. |
42 | | -_LOCAL_PROVIDERS = frozenset({"ollama", "vllm", "freetoken"}) |
43 | | -_LOCAL_PLACEHOLDER_KEY = "EMPTY" |
44 | | - |
45 | 39 | # Bare model-name prefixes → provider (backwards compat for --model gpt-5, etc.) |
46 | 40 | _BARE_PREFIX_MAP: Dict[str, str] = { |
47 | 41 | "gpt-": "openai", |
@@ -84,21 +78,16 @@ def _parse_model_spec(model_str: str) -> tuple: |
84 | 78 | return None, model_str, None, [] |
85 | 79 |
|
86 | 80 |
|
87 | | -def _resolve_api_key_from_env( |
88 | | - env_vars: Optional[List[str]] = None, provider: Optional[str] = None |
89 | | -) -> Optional[str]: |
| 81 | +def _resolve_api_key_from_env(env_vars: Optional[List[str]] = None) -> Optional[str]: |
90 | 82 | """Return the first API key found in *env_vars*. |
91 | 83 |
|
92 | 84 | *env_vars* typically comes from ``_parse_model_spec()``. |
93 | | - Only returns a key if it matches the provider's own env vars. Keyless local |
94 | | - providers fall back to a placeholder so the OpenAI client accepts them. |
| 85 | + Only returns a key if it matches the provider's own env vars. |
95 | 86 | """ |
96 | 87 | for var in env_vars or []: |
97 | 88 | key = os.environ.get(var) |
98 | 89 | if key: |
99 | 90 | return key |
100 | | - if provider in _LOCAL_PROVIDERS: |
101 | | - return _LOCAL_PLACEHOLDER_KEY |
102 | 91 | return None |
103 | 92 |
|
104 | 93 |
|
@@ -212,7 +201,7 @@ def __post_init__(self): |
212 | 201 | if provider_base and not (user_set_api_base and provider == "openai"): |
213 | 202 | model.api_base = provider_base |
214 | 203 | if model.api_key is None: |
215 | | - model.api_key = _resolve_api_key_from_env(env_vars, provider) |
| 204 | + model.api_key = _resolve_api_key_from_env(env_vars) |
216 | 205 | # Strip provider prefix so the API receives the bare model name |
217 | 206 | if "/" in model.name and provider != "openai": |
218 | 207 | model.name = bare_name |
@@ -937,7 +926,7 @@ def apply_overrides( |
937 | 926 | f"Provider '{provider}' requires an explicit api_base.\n" |
938 | 927 | f"Example: model='{spec}', api_base='http://localhost:8000/v1'" |
939 | 928 | ) |
940 | | - resolved_key = _resolve_api_key_from_env(env_vars, provider) |
| 929 | + resolved_key = _resolve_api_key_from_env(env_vars) |
941 | 930 | models.append( |
942 | 931 | LLMModelConfig( |
943 | 932 | name=model_name, |
|
0 commit comments