genworker

genworker LLM Guide

1. Overview

genworker 的 LLM 接入默认基于 LiteLLM。

这套配置分成两层:

  1. 运行时基础配置:通过 configs/config.env / configs/config_local.env 和进程环境变量加载
  2. LiteLLM 路由配置:本地开发从 configs/litellm_local.json 读取;正式部署通过外部配置注入,后续可替换为 Nacos provider

公开仓库只会发出本地模板,不会包含真实 provider 密钥或私有 endpoint。

2. Shipped Template

公开导出的 genworker 默认只带一份 LiteLLM 模板:

使用时复制为本地私有文件:

cp configs/litellm_local.json.example configs/litellm_local.json

3. What The JSON File Controls

configs/litellm_local.json 主要定义这几件事:

4. Tier Model

genworker 当前只暴露以下四个 base tier:

设计意图:

5. Minimal Local Configuration

configs/litellm_local.json

{
  "default_tier": "standard",
  "model_list": [
    {
      "model_name": "tier-fast",
      "litellm_params": {
        "model": "${LITELLM_FAST_MODEL}",
        "api_base": "${LITELLM_FAST_API_BASE}",
        "api_key": "${LITELLM_FAST_API_KEY}"
      }
    },
    {
      "model_name": "tier-standard",
      "litellm_params": {
        "model": "${LITELLM_STANDARD_MODEL}",
        "api_base": "${LITELLM_STANDARD_API_BASE}",
        "api_key": "${LITELLM_STANDARD_API_KEY}"
      }
    },
    {
      "model_name": "tier-strong",
      "litellm_params": {
        "model": "${LITELLM_STRONG_MODEL}",
        "api_base": "${LITELLM_STRONG_API_BASE}",
        "api_key": "${LITELLM_STRONG_API_KEY}"
      }
    },
    {
      "model_name": "tier-reasoning",
      "litellm_params": {
        "model": "${LITELLM_REASONING_MODEL}",
        "api_base": "${LITELLM_REASONING_API_BASE}",
        "api_key": "${LITELLM_REASONING_API_KEY}"
      }
    }
  ],
  "tier_aliases": {
    "fast": "tier-fast",
    "standard": "tier-standard",
    "strong": "tier-strong",
    "reasoning": "tier-reasoning"
  },
  "fallbacks": [
    {"tier-reasoning": ["tier-strong"]},
    {"tier-strong": ["tier-standard"]},
    {"tier-standard": ["tier-fast"]}
  ]
}

配套环境变量:

export LITELLM_FAST_MODEL=provider/fast-model
export LITELLM_FAST_API_BASE=https://your-provider.example/v1
export LITELLM_FAST_API_KEY=replace-me
export LITELLM_STANDARD_MODEL=provider/standard-model
export LITELLM_STANDARD_API_BASE=https://your-provider.example/v1
export LITELLM_STANDARD_API_KEY=replace-me
export LITELLM_STRONG_MODEL=provider/strong-model
export LITELLM_STRONG_API_BASE=https://your-provider.example/v1
export LITELLM_STRONG_API_KEY=replace-me
export LITELLM_REASONING_MODEL=provider/reasoning-model
export LITELLM_REASONING_API_BASE=https://your-provider.example/v1
export LITELLM_REASONING_API_KEY=replace-me

6. Fallbacks

configs/litellm_local.json 里的 fallbacks 用于定义降级顺序:

不再维护单独的 *-tools fallback 链。

7. Non-Local Deployment

test / prod 环境不再从仓库静态文件读取 LiteLLM 配置。启动前必须注入:

如果非本地环境未注入,启动会直接 fail-fast。

9. Troubleshooting

9.1 Runtime Starts But LLM Is Unavailable

优先检查:

9.2 Non-Local Startup Exits Early

优先检查:

9.3 How Do I Change Which Model A Request Uses?

不要优先去改业务代码。

优先检查两层:

  1. 当前请求会被路由到哪个 base tier
  2. 该 tier 在 LiteLLM 配置中映射到哪个 model group