# 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