最近做模型对比,项目里要同时跑 DeepSeek 和通义千问。刚开始按老办法:去 DeepSeek 注册、实名、领 Key、充值;再去阿里云开通百炼、拿 Key、配环境变量。结果本地 .env 里一堆 DEEPSEEK_API_KEY、DASHSCOPE_API_KEY,SDK 也不完全一样,切模型还得改初始化代码。更麻烦的是账单分散,月底对账像考古。后来换成聚合 API 的思路:一个 Key、一个 Base URL,模型名当参数传,切换只改一行。对需要多模型对比、做兜底路由的场景,省事很多。
准备工作不复杂:一个支持多模型的聚合 API Key,一个 OpenAI 兼容的 Base URL,一份模型名清单,再装个 openai SDK 就够。关键是确认服务商兼容 OpenAI 的 /v1/chat/completions 协议,这样 DeepSeek、通义千问都能用同一套客户端调。模型名别凭感觉写,先看文档里的映射表,比如 deepseek-chat、deepseek-reasoner、qwen-plus、qwen-turbo,不同聚合服务命名可能略有差异。环境变量建议只留一个 API_KEY 和一个 BASE_URL,后面切模型不动配置。
第一步,改 API 地址。原来直连各家时,Base URL 是厂商域名;用聚合服务时换成统一地址。Python 里这样初始化:
client = OpenAI(
api_key=os.getenv("API_KEY"),
base_url=os.getenv("BASE_URL", "https://api.example.com/v1")
)
`
如果原来用 requests 直接拼 URL,也只需把域名换掉,路径保持 /v1/chat/completions。这一步做完,Key 就只维护一个了。
第二步,切换模型。不用换 Key,也不用换客户端,改 model 字段即可:
实际项目里可以把模型名放到配置或请求参数里,前端传 model,后端透传。做对比测试时,循环跑一个模型列表,统一记录耗时、token 和返回质量。注意不同模型的上下文长度、计费单价和限流策略不一样,别拿一个模型的超时配置套所有模型。
第三步,加个简单兜底。主模型超时或限流时,捕获异常切备用模型,比如 DeepSeek 失败后换 qwen-turbo。代码不复杂,但能减少半夜告警。建议先小流量验证模型名和返回格式,再把默认模型、备用模型、计费上限写进配置。
总结一下:一个 Key 调用多个大模型,核心就是“统一 Base URL + 改 model 参数”。好处是不用分别注册、不用维护多套 Key、账单集中、SDK 统一。如果不想自己折腾多厂商账号和余额,充站这类聚合服务就是把这个过程收口:一个 Key、一个余额池,切模型只改参数。对做多模型对比的开发者,先跑通一个请求,再逐步加兜底和监控,比较稳。