11# LiteLLM 网关说明
22
3- 这个目录用于启动一个基于 LiteLLM Proxy 的 OpenAI 兼容网关 ,当前默认同时支持 NewAPI 与智谱 GLM Coding Plan 两类上游 。
3+ 这个目录用于启动一个基于 LiteLLM Proxy 的多上游网关 ,当前默认同时支持 NewAPI OpenAI 兼容模型、Claude Anthropic 原生模型与智谱 GLM Coding Plan。
44
55相关文件职责如下:
66
1010- ` start.ps1 ` :统一入口,封装常用 ` docker compose ` 操作。
1111- ` .env.example ` :开发环境变量示例。
1212- ` .env.production.example ` :生产环境变量示例。
13- - ` .env.local ` :本地私有环境变量,保存 ` NEWAPI_API_BASE ` 、` NEWAPI_KEY ` 、` Z_AI_CODING_API_BASE ` 、` Z_AI_API_KEY ` 、` LITELLM_MASTER_KEY ` 、可选 ` DATABASE_URL ` 。
13+ - ` .env.local ` :本地私有环境变量,保存 ` NEWAPI_API_BASE ` 、` NEWAPI_KEY ` 、可选的 ` NEWAPI_ANTHROPIC_API_BASE ` / ` NEWAPI_ANTHROPIC_KEY ` 、 ` Z_AI_CODING_API_BASE ` 、` Z_AI_API_KEY ` 、` LITELLM_MASTER_KEY ` 、可选 ` DATABASE_URL ` 。
1414
1515固定常量如 ` PORT=4000 ` 、` CONFIG_FILE_PATH=/app/config.yaml ` 保留在 ` compose.yaml ` 内部;环境差异值建议集中在 ` .env.local ` ,再通过 ` start.ps1 ` 追加的 ` --env-file ` 和 ` compose.yaml ` 的 ` environment ` 白名单注入到容器。
1616
@@ -23,10 +23,14 @@ LITELLM_IMAGE=docker.litellm.ai/berriai/litellm:main-latest
2323LITELLM_HOST_PORT=34000
2424NEWAPI_API_BASE=http://new-api.example.com/v1
2525NEWAPI_KEY=sk-newapi-dev-xxxx
26+ # 可选:只有 Claude 需要单独上游时才覆盖;否则默认复用 NEWAPI_API_BASE / NEWAPI_KEY
27+ # NEWAPI_ANTHROPIC_API_BASE=http://anthropic-api.example.com
28+ # NEWAPI_ANTHROPIC_KEY=sk-anthropic-dev-xxxx
2629Z_AI_CODING_API_BASE=https://open.bigmodel.cn/api/coding/paas/v4
2730Z_AI_API_KEY=sk-zai-dev-xxxx
2831LITELLM_MASTER_KEY=sk-litellm-123456
2932DATABASE_URL=postgresql://postgres:12345678@host.docker.internal:5432/litellm
33+ # LITELLM_ANTHROPIC_DISABLE_URL_SUFFIX=true
3034```
3135
3236说明:
@@ -35,6 +39,9 @@ DATABASE_URL=postgresql://postgres:12345678@host.docker.internal:5432/litellm
3539- ` LITELLM_HOST_PORT ` :宿主机暴露端口,默认 ` 34000 ` 。
3640- ` NEWAPI_API_BASE ` :NewAPI 的 OpenAI 兼容接口地址,建议带上 ` /v1 ` 。
3741- ` NEWAPI_KEY ` :LiteLLM 转发到 NewAPI 时使用的上游密钥。
42+ - ` NEWAPI_ANTHROPIC_API_BASE ` :可选覆盖项;如果 Claude 需要走独立 Anthropic 兼容入口,可填写已被 Claude Code 验证可用的地址。不配置时,Claude 默认复用 ` NEWAPI_API_BASE ` 。
43+ - ` NEWAPI_ANTHROPIC_KEY ` :可选覆盖项;如果 Claude 需要独立上游密钥可单独提供。不配置时,Claude 默认复用 ` NEWAPI_KEY ` 。
44+ - ` LITELLM_ANTHROPIC_DISABLE_URL_SUFFIX ` :可选开关;如果 Claude 实际使用的 Anthropic 上游地址已经包含完整 API 路径,可设置为 ` true ` 禁止 LiteLLM 自动追加后缀。
3845- ` Z_AI_CODING_API_BASE ` :智谱 GLM Coding Plan 的 OpenAI 兼容接口地址,默认建议使用官方专属端点。
3946- ` Z_AI_API_KEY ` :LiteLLM 转发 ` GLM-* ` 请求到智谱 Coding Plan 时使用的上游密钥。
4047- ` LITELLM_MASTER_KEY ` :LiteLLM Proxy 对外暴露的网关密钥。
@@ -116,6 +123,20 @@ curl http://127.0.0.1:34000/v1/chat/completions `
116123 -d "{\"model\":\"gemini-2.5-flash\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}"
117124```
118125
126+ 如果你使用的是 OpenAI 兼容客户端,但想访问 Claude,请显式传 ` compat/... ` 别名,例如:
127+
128+ ``` powershell
129+ curl http://127.0.0.1:34000/v1/chat/completions `
130+ -H "Content-Type: application/json" `
131+ -H "Authorization: Bearer sk-litellm-123456" `
132+ -d "{\"model\":\"compat/claude-opus-4-6\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}"
133+ ```
134+
135+ 说明:
136+
137+ - 默认 ` claude-opus-* ` 设计给 Anthropic 兼容客户端优先使用。
138+ - ` compat/claude-opus-* ` 只是在 LiteLLM 内表达“这是给 OpenAI 兼容客户端保留的 Claude 入口”,底层仍然走同一个 Anthropic 原生上游。
139+
119140如果你想通过 LiteLLM 调用 GLM Coding Plan,可直接传官方模型名,例如:
120141
121142``` powershell
@@ -134,14 +155,17 @@ curl "http://127.0.0.1:34000/models?return_wildcard_routes=true" `
134155 -H "x-litellm-api-key: sk-litellm-123456"
135156```
136157
137- 当前 ` litellm.local.yaml ` 默认显式注册了 ` gpt-5.4 ` 、` gemini-3.1-pro ` 、` claude-opus-4-6 ` 、` GLM-5.1 ` 四个主模型 ,并在末尾保留 ` GLM-* ` 与 ` * ` 两条 fallback 路由。因此 ` /models ` 会返回显式模型加上两条通配兜底路由。默认会看到类似下面的结果:
158+ 当前 ` litellm.local.yaml ` 默认显式注册了 ` gpt-5.4 ` 、` gemini-3.1-pro ` 、` claude-opus-4-6 ` 、` claude-opus-4-7 ` 、 ` compat/claude-opus-4-6 ` 、 ` compat/claude-opus-4-7 ` 、 ` GLM-5.1 ` 七个主模型 ,并在末尾保留 ` GLM-* ` 与 ` * ` 两条 fallback 路由。因此 ` /models ` 会返回显式模型加上两条通配兜底路由。默认会看到类似下面的结果:
138159
139160``` json
140161{
141162 "data" : [
142163 {"id" : " gpt-5.4" , "object" : " model" },
143164 {"id" : " gemini-3.1-pro" , "object" : " model" },
144165 {"id" : " claude-opus-4-6" , "object" : " model" },
166+ {"id" : " claude-opus-4-7" , "object" : " model" },
167+ {"id" : " compat/claude-opus-4-6" , "object" : " model" },
168+ {"id" : " compat/claude-opus-4-7" , "object" : " model" },
145169 {"id" : " GLM-5.1" , "object" : " model" },
146170 {"id" : " GLM-*" , "object" : " model" },
147171 {"id" : " *" , "object" : " model" }
@@ -168,6 +192,7 @@ curl "$env:Z_AI_CODING_API_BASE/models" `
168192
169193- 不要在当前配置下使用 ` only_model_access_groups=true ` ,因为默认没有配置 model access groups,请求结果会是空数组。
170194- 如果客户端直接传 ` model=qwen-plus ` 之类的名称,前提是该名称必须真实存在于 NewAPI 的 ` /models ` 返回结果中。
195+ - 如果客户端使用 OpenAI 兼容接口访问 Claude,建议显式传 ` compat/claude-opus-* ` ,不要再把默认 ` claude-opus-* ` 当作 OpenAI 上游模型名理解。
171196- 如果客户端直接传 ` model=GLM-4.7 ` 之类的官方名称,前提是该名称必须真实存在于智谱 Coding Plan 的 ` /models ` 返回结果中。
172197- 显式注册之外的 GLM 模型不会自动展开进 LiteLLM 的 ` /models ` 列表;它们会优先通过 ` GLM-* ` fallback 转发到智谱上游。
173198- 其它显式注册之外的非 GLM 模型,仍然通过最后的 ` * ` fallback 透传到 NewAPI。
@@ -176,10 +201,12 @@ curl "$env:Z_AI_CODING_API_BASE/models" `
176201
177202当前 ` litellm.local.yaml ` 的关键点:
178203
179- - ` model_list ` :显式注册 ` gpt-5.4 ` 、` gemini-3.1-pro ` 、` claude-opus-4-6 ` 、 ` GLM-5.1 ` 四个主模型 ,并追加 ` GLM-* ` 与 ` * ` 两层兜底。
204+ - ` model_list ` :显式注册 ` gpt-5.4 ` 、` gemini-3.1-pro ` 、两条默认 Claude 原生模型、两条 Claude 兼容别名、 ` GLM-5.1 ` ,并追加 ` GLM-* ` 与 ` * ` 两层兜底。
180205- 显式模型优先:常用模型可以稳定出现在 ` /models ` 里,也方便客户端按固定名称接入。
206+ - ` claude-opus-* ` :默认映射到 LiteLLM 的 Anthropic provider,优先服务 Anthropic 兼容客户端。
207+ - ` compat/claude-opus-* ` :为 OpenAI 兼容客户端保留显式 Claude 别名,但底层仍然走同一个 Anthropic 原生上游。
181208- ` GLM-* ` fallback:对智谱 Coding Plan 已存在但未显式注册的 GLM 官方模型保留透传能力,同时避免误落到 NewAPI。
182209- ` * ` fallback:对 NewAPI 已存在但未显式注册的非 GLM 模型保留透传能力,减少频繁改本地配置的成本。
183- - ` litellm_params.model ` :显式模型和通配规则都映射到 ` openai/<模型名> ` 形式,继续通过 OpenAI 兼容接口转发到各自上游 。
210+ - ` litellm_params.model ` :OpenAI / Gemini / GLM 继续映射到 ` openai/<模型名> ` ;Claude 显式模型与兼容别名映射到 ` anthropic/<模型名> ` 。
184211- ` master_key ` :开启 LiteLLM 网关鉴权,避免任何能访问端口的客户端都直接调用上游。
185212- ` Codex ` 直连:当前 ` ai/coding/codex/config.toml ` 里的 ` z.ai ` provider 保持不变;本目录改动只补充 LiteLLM 网关入口。
0 commit comments