用 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 并填完整路径。
Get an API key — no Anthropic account or waitlist required.
Get your API key