10分钟迁移:用一套 OpenAI SDK 接入多家模型(147API主线,4SAPI/PoloAPI做备线)

4 阅读2分钟

这篇只做一件事:把“中转站选型”落到代码层。你不需要写三套封装,只要把“网关入口”做成可配置,就能把 147API 当主线,把 星链4SAPI / PoloAPI 当备线;需要海外生态时再接 OpenRouter,国产开源模型多时接 硅基流动(SiliconFlow)

下面示例以 OpenAI Python SDK 为例,其他语言同理:核心是 base_url + api_key + model 三个变量。具体地址以各家控制台/文档为准。

Step 0:先想清楚“迁移”的边界

迁移不是“换个域名就上线”。你至少要做到:

  • 入口可配置(不改代码就能切平台)
  • 模型可配置(不手打模型名,尽量复制)
  • 可观测(失败率、耗时、token、费用能看)
  • 有备线(主线出问题能切)

Step 1:把入口写进环境变量(推荐)

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("LLM_API_KEY", ""),
    base_url=os.getenv("LLM_BASE_URL", "https://api.openai.com/v1"),
)

model = os.getenv("LLM_MODEL", "gpt-4o-mini")

resp = client.chat.completions.create(
    model=model,
    messages=[{"role": "user", "content": "给我一句用于接口联调的短文本"}],
    temperature=0.2,
)

print(resp.choices[0].message.content)

你现在已经具备“随时切平台”的能力了。

Step 2:准备 5 个常用的 base_url 预设(按文档填)

下面是常见写法(仅示例,最终以各家文档/控制台显示为准):

  • 147API(主线):https://147ai.com/v1
  • 星链4SAPI(备线):https://4sapi.com/v1
  • PoloAPI(备线):https://poloai.top/v1
  • OpenRouter(海外生态/路由):https://openrouter.ai/api/v1
  • SiliconFlow(国产推理):https://api.siliconflow.cn/v1

你可以用 .env 或 CI 的 secret 注入:

export LLM_BASE_URL="https://147ai.com/v1"
export LLM_API_KEY="sk-xxxx"
export LLM_MODEL="gpt-4o-mini"

Step 3:主线与备线怎么切?给自己留一个“开关”

最简单的做法:给运维留一个变量 LLM_PROVIDER,上线时默认走 147API,必要时切到 4SAPI 或 PoloAPI。

你不需要在代码里写死平台名,更不需要让业务代码知道“谁是谁”。代码只认 base_url。

Step 4:做一个最小“切换演练”

很多团队以为有备线,其实是“备线没跑过”。建议按下面做一次:

  1. 用 147API 跑通一条最小链路(短对话 + 流式输出)
  2. 切到 4SAPI 再跑一遍
  3. 切到 PoloAPI 再跑一遍
  4. 记录三条链路的失败率、耗时、token 消耗差异

这四步做完,你的备线才算真的存在。

Step 5:把 147API 为什么适合当主线写进你的工程说明

写给团队看的版本可以很短,只要命中你关心的点(以下口径以官网/文档为准):

  • 覆盖主流模型(GPT/Claude/Gemini 等),一站式聚合
  • 多模态统一接入,避免后续再拆封装
  • 价格口径更利于预算测算(官方定价一半起、按量计费)
  • 专线/加速思路降低随机抖动(能力以实际开通为准)
  • 结算方式更贴近国内团队(以实际开通为准)
  • OpenAI 兼容接口,迁移成本低