Commits the workshop inference pool (LiteLLM → boards: pooled coding plans, per-attendee virtual keys, failover) — config + docs only, no secrets. Ignores the vendored Uno-QClaw reference repo and the generated qr-sheet.html. Co-Authored-By: Claude Opus 4.8 <[email protected]>
78 lines
2.8 KiB
YAML
78 lines
2.8 KiB
YAML
# LiteLLM proxy — workshop inference pool for ZeroClaw / Uno Q boards.
|
|
#
|
|
# One OpenAI-compatible endpoint the boards talk to. It pools your paid coding
|
|
# plans (Kimi + GLM, load-balanced), overflows to Groq → Gemini on saturation,
|
|
# and keeps your Claude subscription on a separate, restricted model name.
|
|
#
|
|
# Board-facing model names:
|
|
# workshop → Kimi K2 + GLM (load-balanced) → Groq → Gemini fallback
|
|
# instructor-claude → your Claude subscription via claude_shim
|
|
# RESTRICTED: attendee virtual keys must NOT be granted
|
|
# this model (Anthropic ToS — see README). Instructor key
|
|
# only.
|
|
#
|
|
# Model ids below are examples — verify against your plan's current model names
|
|
# (Kimi/GLM rev them often) before the event.
|
|
|
|
model_list:
|
|
# ── Backbone: pooled coding plans (same model_name ⇒ load-balanced) ──
|
|
- model_name: workshop
|
|
litellm_params:
|
|
model: openai/kimi-k2.7-code
|
|
api_base: https://api.moonshot.ai/v1
|
|
api_key: os.environ/MOONSHOT_API_KEY
|
|
rpm: 1500 # Kimi allows ~30 concurrent; leave headroom
|
|
model_info:
|
|
id: kimi-workshop
|
|
|
|
- model_name: workshop
|
|
litellm_params:
|
|
model: openai/glm-4.6
|
|
api_base: https://api.z.ai/api/paas/v4 # coding plan: /api/coding/paas/v4
|
|
api_key: os.environ/ZAI_API_KEY
|
|
model_info:
|
|
id: glm-workshop
|
|
|
|
# ── Overflow / fallback tier (also load-balanced under one name) ──
|
|
- model_name: workshop-overflow
|
|
litellm_params:
|
|
model: groq/llama-3.3-70b-versatile
|
|
api_key: os.environ/GROQ_API_KEY
|
|
model_info:
|
|
id: groq-overflow
|
|
|
|
- model_name: workshop-overflow
|
|
litellm_params:
|
|
model: gemini/gemini-2.5-flash
|
|
api_key: os.environ/GEMINI_API_KEY
|
|
model_info:
|
|
id: gemini-overflow
|
|
|
|
# ── Instructor only: Claude subscription via the claude_shim on the host ──
|
|
# Do NOT list this model on any attendee key. See README "Terms boundary".
|
|
- model_name: instructor-claude
|
|
litellm_params:
|
|
model: openai/sonnet
|
|
api_base: os.environ/CLAUDE_SHIM_URL # e.g. http://host.docker.internal:8090/v1
|
|
api_key: os.environ/CLAUDE_SHIM_KEY # any non-empty string; the shim ignores it
|
|
model_info:
|
|
id: claude-instructor
|
|
|
|
router_settings:
|
|
routing_strategy: simple-shuffle # balance the two "workshop" deployments
|
|
num_retries: 2
|
|
timeout: 120
|
|
allowed_fails: 2
|
|
cooldown_time: 30
|
|
fallbacks:
|
|
- workshop: ["workshop-overflow"] # Kimi/GLM exhausted → Groq/Gemini
|
|
|
|
litellm_settings:
|
|
drop_params: true # tolerate per-provider param differences
|
|
request_timeout: 120
|
|
set_verbose: false
|
|
|
|
general_settings:
|
|
master_key: os.environ/LITELLM_MASTER_KEY
|
|
database_url: os.environ/DATABASE_URL # Postgres → virtual keys, budgets, spend
|