用 LiteLLM 路由到 Claude

用 LiteLLM 路由到 Claude

LiteLLM 是很多团队放在最前面的代理层,对外暴露一个 OpenAI 兼容 API。把它的 model_list 指向网关,这一个端点就能访问 Claude。

配置 model_list 与前缀

config.yaml 中每个 model_list 条目有对外的 model_name 和 litellm_params。model 字段的前缀决定 wire 协议:anthropic/<model> 走原生 Messages API,openai/<model> 走 Chat Completions。

api_base 指向网关,api_key 用 os.environ/<VAR>。网关支持 OpenAI 兼容接口,所以 openai/<claude 模型> 配 /v1 结尾的 api_base 最简单。

URL 后缀陷阱

用 anthropic/<model> 时 LiteLLM 会自动给根 api_base 追加 /v1/messages;要控制特殊路径,设 LITELLM_ANTHROPIC_DISABLE_URL_SUFFIX=true。openai/<model> 给带 /v1 的 base,LiteLLM 追加 /chat/completions。前缀也决定请求体格式,错配会返回 400。

为什么代理需要无限上游

LiteLLM 是众多应用汇聚之处,承载着栈中最密集的请求流,也是最难预测成本之处。固定价无限上游把这部分聚合成本变成一个固定数字。

# config.yaml
model_list:
  - model_name: claude-sonnet-4-5
    litellm_params:
      model: openai/claude-sonnet-4-5
      api_base: https://claudeapikey.dev/v1
      api_key: os.environ/AIPRIME_KEY

FAQ

如何让 LiteLLM 指向网关?
加 model_list 条目:model: openai/claude-sonnet-4-5,api_base {SITE}/v1,api_key 用 os.environ。

用 anthropic/ 还是 openai/ 前缀?
openai/ 走 OpenAI 兼容接口(带 /v1);anthropic/ 走原生 Messages(根地址 + /v1/messages)。

怎么阻止 LiteLLM 追加 /v1/messages?
设 LITELLM_ANTHROPIC_DISABLE_URL_SUFFIX=true 并填完整路径。

Start using Claude in minutes

Get an API key — no Anthropic account or waitlist required.

Get your API key