Spaces:
Running
Running
refactor: decouple model provider configuration from model names to enable automatic provider inference by Hermes
Browse files
start.sh
CHANGED
|
@@ -146,10 +146,16 @@ case "$MODEL_PREFIX" in
|
|
| 146 |
openai|openai-codex)
|
| 147 |
[ -n "$LLM_API_KEY" ] && export OPENAI_API_KEY="${OPENAI_API_KEY:-$LLM_API_KEY}"
|
| 148 |
;;
|
| 149 |
-
google
|
| 150 |
[ -n "$LLM_API_KEY" ] && export GOOGLE_API_KEY="${GOOGLE_API_KEY:-$LLM_API_KEY}" GEMINI_API_KEY="${GEMINI_API_KEY:-$LLM_API_KEY}"
|
| 151 |
-
|
| 152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 153 |
;;
|
| 154 |
deepseek)
|
| 155 |
[ -n "$LLM_API_KEY" ] && export DEEPSEEK_API_KEY="${DEEPSEEK_API_KEY:-$LLM_API_KEY}"
|
|
@@ -242,9 +248,11 @@ provider_name = os.environ.get("PROVIDER_FOR_CONFIG", "").strip()
|
|
| 242 |
|
| 243 |
if model_name:
|
| 244 |
model = config.setdefault("model", {})
|
| 245 |
-
model
|
| 246 |
-
if provider_name:
|
| 247 |
-
model
|
|
|
|
|
|
|
| 248 |
else:
|
| 249 |
model = config.get("model", {})
|
| 250 |
print("No LLM_MODEL/HERMES_MODEL set; leaving Hermes model config unchanged.")
|
|
|
|
| 146 |
openai|openai-codex)
|
| 147 |
[ -n "$LLM_API_KEY" ] && export OPENAI_API_KEY="${OPENAI_API_KEY:-$LLM_API_KEY}"
|
| 148 |
;;
|
| 149 |
+
google)
|
| 150 |
[ -n "$LLM_API_KEY" ] && export GOOGLE_API_KEY="${GOOGLE_API_KEY:-$LLM_API_KEY}" GEMINI_API_KEY="${GEMINI_API_KEY:-$LLM_API_KEY}"
|
| 151 |
+
# Keep full "google/model-name" — Hermes infers provider from prefix.
|
| 152 |
+
# Don't set PROVIDER_FOR_CONFIG; a separate provider field conflicts.
|
| 153 |
+
MODEL_FOR_CONFIG="$MODEL_INPUT"
|
| 154 |
+
;;
|
| 155 |
+
gemini)
|
| 156 |
+
[ -n "$LLM_API_KEY" ] && export GOOGLE_API_KEY="${GOOGLE_API_KEY:-$LLM_API_KEY}" GEMINI_API_KEY="${GEMINI_API_KEY:-$LLM_API_KEY}"
|
| 157 |
+
# Normalize "gemini/model" → "google/model" for Hermes.
|
| 158 |
+
MODEL_FOR_CONFIG="google/${MODEL_INPUT#gemini/}"
|
| 159 |
;;
|
| 160 |
deepseek)
|
| 161 |
[ -n "$LLM_API_KEY" ] && export DEEPSEEK_API_KEY="${DEEPSEEK_API_KEY:-$LLM_API_KEY}"
|
|
|
|
| 248 |
|
| 249 |
if model_name:
|
| 250 |
model = config.setdefault("model", {})
|
| 251 |
+
model["default"] = model_name # always from env — deploy-time setting
|
| 252 |
+
if provider_name and provider_name != "auto":
|
| 253 |
+
model["provider"] = provider_name # explicit provider (openrouter, huggingface, custom…)
|
| 254 |
+
else:
|
| 255 |
+
model.pop("provider", None) # let Hermes infer from model-name prefix
|
| 256 |
else:
|
| 257 |
model = config.get("model", {})
|
| 258 |
print("No LLM_MODEL/HERMES_MODEL set; leaving Hermes model config unchanged.")
|