一个Key调用多个大模型

📅 2026-10-26 · 分类:教程

上周做客服问答的模型选型,要拿 DeepSeek、通义千问和两个开源模型跑同一批测试集。本来打算一个个接,结果光注册就耗掉一下午:三个平台、三次实名认证、三张账单,代码里还得维护三套 SDK 和鉴权逻辑,改个 prompt 要同步改三个文件。后来换成用一个 Key 走统一接口,同样的活二十分钟收工。

东西不多:一个支持多模型转发的 API Key、一个 OpenAI 兼容的 base_url、一个 HTTP 客户端。各家 SDK 都不用装,留着 openai 这个包就够,因为现在主流聚合接口都按 OpenAI 的请求格式走。选聚合站时留意两点:是不是按 token 实扣、有没有并发限流说明,别只看价格。

client = OpenAI( api_key="sk-你的Key", base_url="https://api.xxx.com/v1" # 指向聚合站 ) `

关键就一处:base_url 末尾的 /v1 别漏,少了会 404。原来指向 api.openai.com 的那行删掉,下面的业务代码一行不用动——这是走 OpenAI 兼容格式最大的好处。

模型名对不上会直接返回 model not found,所以第一次接先翻文档里的可用列表,别凭记忆写。同一个 Key 余额通用,切模型不用再改 key、不用再配一次额度。

def ask(task, prompt): return client.chat.completions.create( model=MODELS[task], messages=[{"role": "user", "content": prompt}] ).choices[0].message.content `

业务代码只认任务类型,后面想换供应商,改字典就够了,调用方无感。要注意的是各家对流式输出、function calling、JSON mode 的支持程度不完全一致,上线前挑两个接口实测一遍,别等跑起来才发现某个模型不支持。

一个 Key 跑多模型,省的不只是注册时间:账单合成一张好对,密钥只存一处好管,做 A/B 对比时切模型就是一个字符串的事。建议按任务分配模型,别一个模型干所有活——简单任务用便宜的,复杂推理再上贵的,成本能压下来一大截。我常用的这个充站支持 DeepSeek 和通义全系,充一次余额通用,适合先小量试再决定长期用哪个。

← 返回文章列表
充站 · 一个Key · 自由充 · 额度不过期