tao-shen Claude Opus 4.6 commited on
Commit
306fbc6
Β·
1 Parent(s): 82cff1a

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>

Files changed (1) hide show
  1. 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 else "openrouter/openai/gpt-oss-20b:free"
 
 
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
- if not OPENAI_API_KEY and not OPENROUTER_API_KEY:
471
- print("[SYNC] WARNING: No OPENAI_API_KEY or OPENROUTER_API_KEY set, LLM features may not work")
 
 
 
 
 
 
 
 
 
 
 
 
 
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 not OPENAI_API_KEY and not OPENROUTER_API_KEY:
571
- print(f"[SYNC] WARNING: No OPENAI_API_KEY or OPENROUTER_API_KEY set, LLM features may not work")
 
 
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