在使用 Claude Code 过程中,发现了很多之前听说过但又不是特别了解的名字,比如LiteLLM,OpenRouter,CloseAI,CC-Switch等等,这篇文章将对相关技术进行系统整理。
LLM 协议选择
每家公司定义的 API 格式接口规范
OpenAI
OpenAI 协议本质就是一套调用大模型的标准 HTTP API 规范,现在已经成为整个 LLM 生态的事实标准
| /v1/chat/completions | 用聊天格式,让模型生成一个回复 |
| /v1/embeddings | 生成向量 |
| /v1/completions | 老文本补全 |
| /v1/responses | 新一代统一接口,试图统一 chat,tools,multimodal |
OpenAI 协议长这样:
POST /v1/chat/completions
{
"model": "gpt-4",
"messages": [
{"role": "system", "content": "你是一个助手"},
{"role": "user", "content": "你好"}
],
"temperature": 0.7,
"max_tokens": 100
}
# message结构,这套结构后来几乎成了行业标准
[
{"role": "system", "content": "..."},
{"role": "user", "content": "..."},
{"role": "assistant", "content": "..."}
]
Anthropic API - Claude
Anthropic API 是 Claude 的官方标准接口,专门为 Claude 定制,但由于有大量工具只支持 OpenAI API,所以也有 OpenAI API 的兼容协议。推荐无特殊需求优先使用原生协议,更加稳定,功能更加丰富,支持思维链、原生插件等高级功能,OpenAI兼容格式兼容有限,仅建议使用在比如Cursor等只支持自定义OpenAI接口时使用。
POST /v1/messages
{
"model": "claude-3-opus-20240229",
"max_tokens": 100,
"messages": [
{
"role": "user",
"content": "你好"
}
]
}
# message结构,没有 system role,而是单独字段
[
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好!"}
]
LLM 网关
LiteLLM
使用 OpenAI 格式调用所有 LLM API ,将不同模型统一成 completion() 风格与一致的输出。
没有 LiteLLM 之前,不同LLM调用方法名不一样,参数不一样,数据结构也不同。
from openai import OpenAI
client = OpenAI()
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "你好"}]
)
import anthropic
client = anthropic.Anthropic()
resp = client.messages.create(
model="claude-3-sonnet-20240229",
messages=[{"role": "user", "content": "你好"}],
max_tokens=1000
)
# vLLM
import requests
resp = requests.post(
"http://localhost:8000/v1/chat/completions",
json={
"model": "llama3",
"messages": [{"role": "user", "content": "你好"}]
}
)
if provider == "openai":
...
elif provider == "anthropic":
...
elif provider == "vllm":
...
有了 LiteLLM 之后
from litellm import completion
# OpenAI
completion(model="gpt-4", messages=[{"role": "user", "content": "你好"}])
# Anthropic
completion(model="claude-3", messages=[{"role": "user", "content": "你好"}])
# vLLM
completion(model="vllm/llama3", messages=[{"role": "user", "content": "你好"}])
LLM 部署
在本地部署一个大模型然后集成到 AI 应用中,vLLM 更适用于企业级高性能生产环境,更适合在企业服务器上搭一个提供API的接口,而 Ollama 则更适合小规模本地开发场景。
Ollama
Ollama 平台有很多模型,可以很方便的在本地运行,LiteLLM 支持 Ollama 的所有模型。开启ollama服务之后,模型的部署使用非常方便,比如:
# 模型拉取
ollama pull codellama:7b
# 运行示例1
ollama run codellama:7b
# 运行示例2
curl http://127.0.0.1:11434/api/generate -d '{
"model": "codellama:7b",
"prompt": "Write a Python function to reverse a linked list."
}'
中转平台
OpenRouter
A unified interface for LLMs. Better prices, better uptime, no subscription.
OpenRouter 提供了一个统一的 API 接口,让开发者可以同时调用多个大模型供应商的 API,如 OpenAI、Anthropic、Mistral、Google Gemini,甚至包括一些国内的如 Kimi、Qwen 等。它就像是一个大模型中转站,统一了 API 接入方式,让你不用再为每个模型单独注册账号、配置 API Key,也就是说可以用一套 API 快速体验市面上几乎所有主流大模型以及最新的大模型。
OpenRouter 的收费机制是模型调用本身不加价。比如你调用 GPT-4、Claude 或者 DeepSeek,花的钱和你直接去官方 API 是一模一样的。在充值的时候会有一定的手续费,就是买积分的时候,平台会多收取 5.5%(最低 0.8 美元)。OpenRouter 对免费模型(那些带 :free 的模型)设置了每日调用次数上限。如果你还没购买至少 10 美元的积分,每天只能调用免费模型 50 次;一旦你购买了至少 10 美元积分,就可以把这个上限提升到 1000 次/天。这个限制是专门针对免费模型的,不是所有模型调用次数的通用额度。在充值的过程中,在最下面一行选择 “Use one-time payment methods”,甚至可以使用支付宝支付。
它的特点是:
- 提供统一格式的
/v1/chat/completions接口,兼容 OpenAI API - 支持模型路由**、流量限额控制、**fallback 策略
- 可以用自己的 API Key,也可以充值使用平台提供的 Key
- 开源了部分 SDK,并搭建了活跃的 Discord 社区
问题:
- 多一层中转,多一层费用。
- 延迟增加,稳定性受影响,存在隐私安全问题
- 功能可能不完整,比如:Claude 原生 tool use,GPT 最新特性,有时会被“抹平”
国内也有一些类似的产品(closeAI,PackyApi),但主要聚焦国外API的中转业务,因此提供的多是经典大模型API,没有特别多的其他模型可以选择。
CC-Switch
统一管理 Claude Code、Codex 与 Gemini CLI 的供应商配置、MCP 服务器、Skills 扩展和系统提示词。
现代 AI 编程依赖于 Claude Code、Codex、Gemini CLI、OpenCode 和 OpenClaw 等 CLI 工具——但每个工具都有自己的配置格式。切换 API 供应商意味着手动编辑 JSON、TOML 或 .env 文件,而在多个工具之间缺乏一个统一管理 MCP, SKILLS 的方式。CC Switch 提供一个桌面应用来管理所有五个 CLI 工具。无需手动编辑配置文件,你将获得一个可视化界面,一键将供应商导入应用,一键在不同的供应商之间进行切换,内置 50+ 供应商预设、统一的 MCP, SKILLS 管理以及系统托盘即时切换功能——所有操作都基于可靠的 SQLite 数据库和原子写入机制,保护你的配置不被损坏。
非常适合多渠道,经常需要模型或者 Coding Agent 切换的人。比如,如果你要修改 Claude Code 的 Backbone LLM,每次都需要重新修改配置文件, CC Switch 提供了一个可视化的界面方便进行模型更换修改,可以视作一个外置的聚合版的 Coding Agent 模型选择器。
Claude Code Router
将 Claude Code 的请求路由到不同的模型,提供一个可视化的界面,更加方便的来管理 Claude Code 的配置。支持 OpenRouter、DeepSeek、Ollama、Gemini、Volcengine 和 SiliconFlow 等各种模型提供商。
Cursor
相比于 Claude Code,这个更像是一个集成的 IDE,充值的方式是直接充会员,然后可以使用多个不同的 Backbone LLM。