用一套代码适配与调用多模型 API
前言
OpenAI 的 API 格式已经成为事实标准。国内的主流模型平台——DeepSeek、通义千问、豆包、硅基流动、零一万物——全都兼容这套格式。
这意味着写一次代码,换个 base_url 就能切模型。这篇文章讲清楚各平台的接入方式,以及如何封装一个统一的调用工具。
一、主流平台接入速查
OpenAI
1 | from openai import OpenAI |
DeepSeek
platform.deepseek.com 注册充值,费用极低(约 OpenAI 的 1/10)。
1 | client = OpenAI( |
可用模型:deepseek-chat(V3 通用)、deepseek-reasoner(R1 推理)
通义千问(阿里云百炼)
阿里云百炼 注册后申请 Key,新用户有免费额度。
1 | client = OpenAI( |
可用模型:qwen-max、qwen-plus、qwen-turbo、qwen-long(长文本)
豆包(火山引擎)
火山方舟 注册后创建接入点。
1 | client = OpenAI( |
豆包的模型 ID 不是模型名,而是接入点 ID(类似 ep-20250101xxxxx)。创建接入点 → 选模型 → 拿到 endpoint ID → 当 model 参数用。
硅基流动
国内外模型聚合平台,注册即送额度。适合不想每家都注册一遍的开发者。
1 | client = OpenAI( |
模型 ID 参考平台文档,支持 DeepSeek、Qwen、Llama、GLM 等。
零一万物(Yi 系列)
1 | client = OpenAI( |
二、统一封装:一套代码切所有模型
1 | import os |
三、多模型对比:同一问题问不同模型
1 | def compare_models(question, presets=["deepseek", "qwen-max", "gpt-4o"]): |
四、失败切换(Fallback)
生产环境不能只依赖一个模型,主模型挂了自动切备选:
1 | class LLMWithFallback: |
五、成本控制
各平台价格对比(2025 年初,每百万 token)
| 平台 | 模型 | 输入价格(元) | 输出价格(元) |
|---|---|---|---|
| DeepSeek | deepseek-chat | 1 | 2 |
| DeepSeek | deepseek-reasoner | 4 | 16 |
| 通义千问 | qwen-turbo | 0.3 | 0.6 |
| 通义千问 | qwen-max | 20 | 60 |
| 硅基流动 | DeepSeek-V3 | 1.3 | 1.3 |
| OpenAI | GPT-4o | ~18 | ~72 |
| OpenAI | GPT-4o-mini | ~1 | ~4 |
省钱套路:
- 简单任务用便宜的模型(qwen-turbo、GPT-4o-mini、deepseek-chat)
- 复杂推理才用贵的(deepseek-r1、qwen-max、GPT-4o)
- 开发调试阶段用硅基流动的免费额度
Token 消耗统计
1 | class LLMWithUsage(LLM): |
以上这套封装足够日常开发使用。搞定了 API 调用之后,下一步就是把模型真正嵌入到业务——RAG、Agent、Function Calling 这些就水到渠成了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 七月小站!