Spaces:
Sleeping
Sleeping
feat: add Zhipu AI (z.ai) as a native LLM provider
Browse files- Read ZHIPU_API_KEY from environment
- Configure Zhipu provider with GLM-4 models (flash/plus/long)
- Auto-select glm-4-flash as default when Zhipu is the only provider
- Pass ZHIPU_API_KEY through to OpenClaw process
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- scripts/sync_hf.py +25 -5
scripts/sync_hf.py
CHANGED
|
@@ -65,12 +65,17 @@ OPENAI_BASE_URL = os.environ.get("OPENAI_BASE_URL", "https://api.openai.com/v1")
|
|
| 65 |
# OpenRouter API key (optional; alternative to OPENAI_API_KEY + OPENAI_BASE_URL)
|
| 66 |
OPENROUTER_API_KEY = os.environ.get("OPENROUTER_API_KEY", "")
|
| 67 |
|
|
|
|
|
|
|
|
|
|
| 68 |
# Gateway token (default: huggingclaw; override via GATEWAY_TOKEN env var)
|
| 69 |
GATEWAY_TOKEN = os.environ.get("GATEWAY_TOKEN", "huggingclaw")
|
| 70 |
|
| 71 |
# Default model for new conversations (infer from provider if not set)
|
| 72 |
OPENCLAW_DEFAULT_MODEL = os.environ.get("OPENCLAW_DEFAULT_MODEL") or (
|
| 73 |
-
"openai/gpt-5-nano" if OPENAI_API_KEY
|
|
|
|
|
|
|
| 74 |
)
|
| 75 |
|
| 76 |
# HF Spaces built-in env vars (auto-set by HF runtime)
|
|
@@ -467,8 +472,21 @@ class OpenClawFullSync:
|
|
| 467 |
]
|
| 468 |
}
|
| 469 |
print("[SYNC] Set OpenRouter provider")
|
| 470 |
-
|
| 471 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 472 |
data["models"]["providers"].pop("gemini", None)
|
| 473 |
data["agents"]["defaults"]["model"]["primary"] = OPENCLAW_DEFAULT_MODEL
|
| 474 |
|
|
@@ -567,8 +585,10 @@ class OpenClawFullSync:
|
|
| 567 |
env["OPENAI_BASE_URL"] = OPENAI_BASE_URL
|
| 568 |
if OPENROUTER_API_KEY:
|
| 569 |
env["OPENROUTER_API_KEY"] = OPENROUTER_API_KEY
|
| 570 |
-
if
|
| 571 |
-
|
|
|
|
|
|
|
| 572 |
|
| 573 |
# ββ Telegram API base probe ββββββββββββββββββββββββββββββββββββββ
|
| 574 |
# Determine working Telegram API endpoint and set env var for
|
|
|
|
| 65 |
# OpenRouter API key (optional; alternative to OPENAI_API_KEY + OPENAI_BASE_URL)
|
| 66 |
OPENROUTER_API_KEY = os.environ.get("OPENROUTER_API_KEY", "")
|
| 67 |
|
| 68 |
+
# Zhipu AI (z.ai) API key (optional; GLM-4 series, OpenAI-compatible)
|
| 69 |
+
ZHIPU_API_KEY = os.environ.get("ZHIPU_API_KEY", "")
|
| 70 |
+
|
| 71 |
# Gateway token (default: huggingclaw; override via GATEWAY_TOKEN env var)
|
| 72 |
GATEWAY_TOKEN = os.environ.get("GATEWAY_TOKEN", "huggingclaw")
|
| 73 |
|
| 74 |
# Default model for new conversations (infer from provider if not set)
|
| 75 |
OPENCLAW_DEFAULT_MODEL = os.environ.get("OPENCLAW_DEFAULT_MODEL") or (
|
| 76 |
+
"openai/gpt-5-nano" if OPENAI_API_KEY
|
| 77 |
+
else "zhipu/glm-4-flash" if ZHIPU_API_KEY
|
| 78 |
+
else "openrouter/openai/gpt-oss-20b:free"
|
| 79 |
)
|
| 80 |
|
| 81 |
# HF Spaces built-in env vars (auto-set by HF runtime)
|
|
|
|
| 472 |
]
|
| 473 |
}
|
| 474 |
print("[SYNC] Set OpenRouter provider")
|
| 475 |
+
# Zhipu AI provider (optional)
|
| 476 |
+
if ZHIPU_API_KEY:
|
| 477 |
+
data["models"]["providers"]["zhipu"] = {
|
| 478 |
+
"baseUrl": "https://open.bigmodel.cn/api/paas/v4",
|
| 479 |
+
"apiKey": ZHIPU_API_KEY,
|
| 480 |
+
"api": "openai-completions",
|
| 481 |
+
"models": [
|
| 482 |
+
{"id": "glm-4-flash", "name": "GLM-4 Flash"},
|
| 483 |
+
{"id": "glm-4-plus", "name": "GLM-4 Plus"},
|
| 484 |
+
{"id": "glm-4-long", "name": "GLM-4 Long"},
|
| 485 |
+
]
|
| 486 |
+
}
|
| 487 |
+
print("[SYNC] Set Zhipu AI provider")
|
| 488 |
+
if not OPENAI_API_KEY and not OPENROUTER_API_KEY and not ZHIPU_API_KEY:
|
| 489 |
+
print("[SYNC] WARNING: No API key set (OPENAI/OPENROUTER/ZHIPU), LLM features may not work")
|
| 490 |
data["models"]["providers"].pop("gemini", None)
|
| 491 |
data["agents"]["defaults"]["model"]["primary"] = OPENCLAW_DEFAULT_MODEL
|
| 492 |
|
|
|
|
| 585 |
env["OPENAI_BASE_URL"] = OPENAI_BASE_URL
|
| 586 |
if OPENROUTER_API_KEY:
|
| 587 |
env["OPENROUTER_API_KEY"] = OPENROUTER_API_KEY
|
| 588 |
+
if ZHIPU_API_KEY:
|
| 589 |
+
env["ZHIPU_API_KEY"] = ZHIPU_API_KEY
|
| 590 |
+
if not OPENAI_API_KEY and not OPENROUTER_API_KEY and not ZHIPU_API_KEY:
|
| 591 |
+
print(f"[SYNC] WARNING: No API key set (OPENAI/OPENROUTER/ZHIPU), LLM features may not work")
|
| 592 |
|
| 593 |
# ββ Telegram API base probe ββββββββββββββββββββββββββββββββββββββ
|
| 594 |
# Determine working Telegram API endpoint and set env var for
|