API Migration
大模型 API 迁移 / 兼容指南
多数国产模型提供 OpenAI 兼容端点,但“能调通”不等于“功能完全一样”。先换 base_url 跑最小请求,再逐项测工具调用/JSON/流式/上下文/计费。
以官方文档为准:base_url、模型名、价格、限额会变;下面是常见入口,不是永久承诺。不要把 API Key 写进前端/仓库。
常见 OpenAI 兼容入口
只填环境变量,不改业务代码先跑通
| 平台 | 常见 base_url | 兼容方式 | 官方 |
|---|---|---|---|
| OpenAI | https://api.openai.com/v1 | OpenAI SDK | 文档 → |
| DeepSeek | https://api.deepseek.com | OpenAI / Anthropic 格式 | 文档 → |
| Qwen / 阿里云百炼 | https://dashscope.aliyuncs.com/compatible-mode/v1 | OpenAI 兼容 | 文档 → |
| Kimi / Moonshot | https://api.moonshot.cn/v1 | OpenAI 兼容 | 文档 → |
| GLM / 智谱 | https://open.bigmodel.cn/api/paas/v4/ | OpenAI 兼容 | 文档 → |
| 豆包 / 火山方舟 | https://ark.cn-beijing.volces.com/api/v3 | OpenAI 兼容(用接入点 ID) | 文档 → |
模型名不是通用:DeepSeek 用
deepseek-flash/deepseek-v4-pro;豆包通常用“接入点 ID”;其他平台以控制台为准。base_url 末尾斜杠/版本路径也可能不同。最小迁移代码(Python)
只换环境变量,先跑通
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["LLM_API_KEY"],
base_url=os.environ["LLM_BASE_URL"],
)
r = client.chat.completions.create(
model=os.environ["LLM_MODEL"],
messages=[{"role": "user", "content": "用一句话说明什么是 token"}],
)
print(r.choices[0].message.content)
迁移检查清单
10 项,逐项过
1. 认证
API Key 放服务端环境变量;不要进前端/仓库/截图。
2. base_url/模型名
末尾斜杠、版本路径、接入点 ID 都可能不同。
3. 流式
SSE 格式/结束标记/错误事件;断线重连。
4. 工具调用
function/tool schema、并行调用、参数校验;不是所有模型一致。
5. JSON 模式
是否支持 json_object/schema;失败时重试/校验。
6. 上下文/输出
最大输入/输出、截断策略、超长报错。
7. 计费
输入/输出/缓存/高峰空闲;先算月成本。
算成本 →8. 限流/重试
429/5xx 退避;并发上限;超时。
9. 内容安全
审核/拒答/敏感词;不同平台策略不同。
10. 回退
保留原 provider;按错误码/质量切换,不绑死一家。
常见坑
能调通 ≠ 能上线
模型名写死
跨平台模型名不同;用配置映射,不写死在业务代码。
只测 hello world
真实任务的长输入/工具/JSON/失败路径才是迁移成本。
忽略计费差异
缓存/高峰/输出单价不同;先算再切。
前端存 Key
任何前端 Key 都等于公开;走后端代理/短期令牌。
base_url/模型/价格以各平台官方文档为准;本页不构成采购/合规建议。