LiteLLM 代理与 SDK:接入 DeepSeek、Claude 及任意 OpenAI 兼容 API

LiteLLM 是一个免费开源的 Python SDK 和代理服务器,可在众多模型提供商之前提供统一的 OpenAI 风格 API。我们基于 Zurelay 的 OpenAI 兼容 API 完成了配置,通过它运行了 SDK、代理和 Claude Code,并记录了每一项出过问题的设置。

· Zurelay 指南 · 价格实时更新

LiteLLM 的作用

  • SDK 是一个 Python 函数 completion(),可以用 OpenAI 的格式调用任意提供商。模型名称的前缀决定使用哪个提供商:openai/ 表示任意 OpenAI 兼容 API。
  • 代理是你自己运行的服务器,默认地址为 http://localhost:4000。应用以 OpenAI 或 Anthropic 的格式调用它,它会在你的提供商之前加上密钥管理、预算、日志和回退功能。

设置代理

  1. 安装到虚拟环境中。LiteLLM 1.106 需要 Python 3.10 或更高版本。
terminal
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install "litellm[proxy]"
  1. 编写 config.yaml。这是我们测试用的文件:DeepSeek V4.1 Flash 通过 OpenAI 兼容端点接入,Claude Sonnet 5.5 通过 LiteLLM 的 Anthropic provider 接入,另有一个通配符,可将其他所有模型以 zurelay/<model ID> 的形式接入。model_info 的价格为 Zurelay 当前价格。
config.yaml
model_list:
- model_name: deepseek-v4.1-flash
litellm_params:
model: openai/deepseek-v4.1-flash
api_base: https://api.zurelay.com/v1
api_key: os.environ/ZURELAY_API_KEY
use_chat_completions_api: true
model_info:
input_cost_per_token: 0.00000003
output_cost_per_token: 0.00000012
cache_read_input_token_cost: 0.00000000074
- model_name: claude-sonnet-5-5
litellm_params:
model: anthropic/claude-sonnet-5-5
api_base: https://api.zurelay.com
api_key: os.environ/ZURELAY_API_KEY
model_info:
input_cost_per_token: 0.00000079
output_cost_per_token: 0.00000395
cache_read_input_token_cost: 0.000000079
- model_name: zurelay/*
litellm_params:
model: openai/*
api_base: https://api.zurelay.com/v1
api_key: os.environ/ZURELAY_API_KEY
use_chat_completions_api: true
litellm_settings:
use_chat_completions_url_for_anthropic_messages: true
check_provider_endpoint: true
general_settings:
master_key: os.environ/LITELLM_MASTER_KEY
  1. 使用你的 Zurelay key 和自己的 master key 启动它。客户端发送 master key;LiteLLM 要求 key 以 sk- 开头。
terminal
export ZURELAY_API_KEY="zr_live_..."
export LITELLM_MASTER_KEY="sk-choose-a-long-random-key"
litellm --config config.yaml
  1. 像调用任何兼容 OpenAI 的 API 一样调用它,使用配置中的 model_name。
terminal
curl http://localhost:4000/v1/chat/completions \
-H "Authorization: Bearer $LITELLM_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "deepseek-v4.1-flash", "messages": [{"role": "user", "content": "Hello"}]}'

或者使用 Python SDK

如果不使用代理,请在每次调用时传入 base URL 和密钥。通过 LiteLLM 的 anthropic/ provider 调用 Claude 时,base URL 为 https://api.zurelay.com,不带 /v1。

app.py
import os
from litellm import completion
response = completion(
model="openai/deepseek-v4.1-flash",
api_base="https://api.zurelay.com/v1",
api_key=os.environ["ZURELAY_API_KEY"],
messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)
claude = completion(
model="anthropic/claude-sonnet-5-5",
api_base="https://api.zurelay.com",
api_key=os.environ["ZURELAY_API_KEY"],
messages=[{"role": "user", "content": "Hello"}],
)

通过 LiteLLM 使用 Claude Code

该代理同样支持 Anthropic 的 Messages API,因此 Claude Code 可以使用配置中的任意模型。将 Claude Code 指向该代理,并指定要使用的模型:

terminal
export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_AUTH_TOKEN="$LITELLM_MASTER_KEY"
export ANTHROPIC_MODEL="deepseek-v4.1-flash"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-sonnet-5-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4.1-flash"
claude

如果只用 Claude 模型,就不需要 LiteLLM:Claude Code 可以直接连接 Zurelay,详见 Claude Code pricing。如果想要用网页而不是 YAML 文件来配置的路由器,请参阅 Claude Code Router。

导致故障的那些设置

  1. Claude Code 在 DeepSeek 上运行失败,报错 Unknown request URL: POST /v1/responses。对于 openai/ 模型,LiteLLM 会把 Anthropic Messages 请求转换为对 OpenAI Responses API 的调用,而 Zurelay 不提供该接口。一次失败后,LiteLLM 还会让该模型进入冷却状态,导致后续请求收到 429 No deployments available for selected model。在 litellm_settings 下设置 use_chat_completions_url_for_anthropic_messages: true,即可改为将请求发送到 Chat Completions。
  2. Responses API 客户端也出现了同样的故障。发送到代理 /v1/responses 的请求,或 SDK 中的 litellm.responses(),在模型上设置 use_chat_completions_api: true 之前,都会原样转发到上游。
  3. base URL 中带有 /v1 的 Claude 调用 /v1/v1/messages 时返回了 404。anthropic/ provider 会自动添加 /v1/messages;openai/ 模型则需要加上 /v1。
  4. 通配符列出了错误的模型。使用 openai/* 时,代理的 /v1/models 显示的是 LiteLLM 内置的 216 个 OpenAI 模型名称(gpt-3.5-turbo、babbage-002),没有一个是 Zurelay 的。不过,使用真实模型 ID 的请求仍然可以正常工作。check_provider_endpoint: true 可让它改为列出 Zurelay 的模型。
  5. 在 Windows 上,当输出重定向到日志文件时,代理在启动时崩溃,报错 UnicodeEncodeError: 'charmap' codec can't encode characters:启动横幅中含有默认代码页不支持的字符。启用 Python 的 UTF-8 模式后问题解决:可以在环境变量中设置 PYTHONUTF8=1,或者使用 python -X utf8。

成本追踪

LiteLLM 的花费统计是按它自己的价格表给每个请求计价的。对于它已知的模型,用的是官方标价:我们的 Claude Sonnet 5.5 请求被按 Anthropic 的费率计算,约为 Zurelay 实际扣费的 2.5 倍。对于它不认识的模型,比如 openai/ 背后的 DeepSeek V4.1 Flash,它根本不会记录任何费用。上面配置中的 model_info 几行可以解决这两个问题:加上之后,LiteLLM 在 x-litellm-response-cost 响应头中返回的费用与我们的账单一致。

我们的测试花了多少钱

通过代理,Claude Code 先用 DeepSeek V4.1 Flash 写了一个小型 Python 文件,又换成 Claude Sonnet 5.5 对它进行了修改。两个模型都正确调用了 Claude Code 的文件工具。Zurelay 的计费如下:

模型任务请求提示词 token (已缓存)费用
DeepSeek V4.1 Flash创建 hello.py339,725 (25,845)$0.0005
Claude Sonnet 5.5编辑 hello.py351,310 (32,523)$0.023

每个请求都带有 Claude Code 的指令和工具定义,共 13,000 到 18,000 个 token,从第二个请求起,其中大部分都是从缓存中读取的。按 Anthropic 的官方定价,Claude Code 自己对这次 Claude 任务的估算是 $0.054。在此之前的 SDK 调用,每次只返回一条简短回答,在 DeepSeek 上花费 $0.000006,在 Claude Sonnet 5.5 上花费 $0.0003。

注意事项

  • 除非你传入 --host 127.0.0.1,否则代理会监听所有网络接口(0.0.0.0)。请务必设置好 master key,否则同一网络中的任何人都可能花掉你的额度。
  • 通配符模型的真实 ID 位于前缀之后:请求中的 zurelay/gpt-6.1-terra 在 Zurelay 会变成 gpt-6.1-terra。
  • 在 Windows 上,请安装到路径较短的文件夹中。曾有用户把虚拟环境建在层级很深的临时文件夹里,结果因部分文件路径超过 Windows 的 260 个字符限制,出现 ModuleNotFoundError: No module named 'openai.types...' 错误。

可用于接入的模型价格

各模型厂商与 Zurelay 的每 1M token 价格:

模型输入输出Zurelay 价格(输入 / 输出)
DeepSeek V4.1 Flash$0.30$1.20$0.03 / $0.12
Claude Sonnet 5.5$2.00$10.00$0.79 / $3.95
Claude Opus 5.5$4.00$20.00$1.40 / $7.00
GPT-6.1 Terra$1.00$5.00$0.25 / $1.25
Gemini 3.8 Flash$0.75$3.75$0.22 / $1.10
Kimi K3.1 Pro$2.00$10.00$0.80 / $4.00
GLM-5.3$1.40$4.40$0.38 / $1.21

已在 2026年11月3日 上测试,环境为 Windows,使用 LiteLLM 1.106.6(Python 3.12)和 Claude Code 2.1.317,对接 Zurelay 的 API。简短的配置说明见文档中的 LiteLLM。LiteLLM 官方文档:兼容 OpenAI 的端点 和 proxy 配置。

一个兼容 OpenAI 的 API 密钥即可调用所有模型,价格低于官方定价。$10 起充值,无需订阅。获取你的 API 密钥

常见问题

常见问题

还有其他问题?联系我们的团队,我们会通过邮件回复。

LiteLLM 是什么?

BerriAI 开源的 Python SDK 和代理服务器。SDK 通过一个 OpenAI 风格的函数调用多家模型服务商;代理服务器则由你自行部署,应用可以用 OpenAI 或 Anthropic 的格式调用它,并在你的服务商之前提供密钥管理、预算控制、日志记录和故障转移(fallback)功能。

LiteLLM 免费吗?

是的。除仓库 enterprise 文件夹中的企业版功能(这部分有单独的许可证)外,SDK 和代理均基于 MIT 许可证开源。你只需向发送请求的服务商付费。

如何通过 LiteLLM 使用兼容 OpenAI 的 API?

在模型名称前加上 openai/ 前缀,并将 api_base 设置为服务商的 base URL(需包含 /v1),例如 model: openai/deepseek-v4.1-flash,api_base: https://api.zurelay.com/v1。密钥填入 api_key,或在代理的 config.yaml 中使用 os.environ/NAME。

为什么 LiteLLM 会调用 /v1/responses?

对于 openai/ 模型,LiteLLM 会把 Anthropic Messages 请求(例如来自 Claude Code 的请求)和 Responses API 请求发送到服务商的 Responses API。只支持 Chat Completions 的服务商会返回 404。请在 litellm_settings 下设置 use_chat_completions_url_for_anthropic_messages: true,并在模型上设置 use_chat_completions_api: true。

如何在 LiteLLM 中使用 Claude Code?

使用 config.yaml 中配置的模型运行 LiteLLM 代理,然后将 ANTHROPIC_BASE_URL 设置为 http://localhost:4000,将 ANTHROPIC_AUTH_TOKEN 设置为该代理的 master key,再把 ANTHROPIC_MODEL 和三个 ANTHROPIC_DEFAULT_*_MODEL 变量设置为配置中的模型名称,最后运行 claude。

为什么 LiteLLM 的成本不准确?

LiteLLM 使用自带的价格表为请求计费:对于它已知的模型,按各家实验室的官方标价计算;对于不认识的模型,则不计费。请在每个模型的 model_info 下添加 input_cost_per_token、output_cost_per_token 和 cache_read_input_token_cost,这样才能记录服务商实际收取的费用。

LiteLLM 代理使用哪个端口?

默认监听 4000 端口,并绑定所有网络接口(0.0.0.0),除非你通过 --host 指定其他地址。可以用 --port 或 PORT 环境变量修改端口。

更多指南

告别原价.
今天就开始省钱.

几秒钟即可创建密钥,将你正在使用的 SDK 指向 Zurelay,从第一个 token 起,每次请求的费用最高可省 90%。