GLM API 中转与代理,常被当成改一行 base_url 的事。上线后才发现,决定体验的是四个问题:请求经过谁、Key 归谁、费用怎么算、故障谁来处理。答不清楚这四点,价格再低也不适合承载生产流量。
本文比较直连、自建代理和托管网关,重点讲计费透明度、限流、Key 风险、故障转移与迁移验证。可用模型与价格以站内模型价格为准。
说明:智谱、GLM、BigModel 是相关权利人的商标,本文仅作技术说明,与智谱无隶属或代理关系。中转市场变化较快,本文不构成对任何服务方的背书。
一、四个概念先分清
- 官方直连:应用直接请求智谱开放平台的接口,Key、账单和限流都归自己的账号。
- 网络代理:只解决网络可达性,不改变 API 语义,Key 仍是自己的。
- 自建代理或自建网关:自己部署转发、鉴权、限流和日志,上游仍用官方账号或合规供应商。
- 商业中转:由第三方转发并结算费用,可能附带额度、套餐或共享 Key,边界取决于运营方。
- 统一 AI 网关:OpenAI 兼容入口,聚合多个模型,统一 Key、账单和控制台;可托管也可自建。
这些词常被混用,结果是把网络问题当成模型问题。签约前只问一句:请求最后以谁的身份到达上游?
二、四种方案放在一张表里
| 维度 | 官方直连 | 自建代理 | 托管网关 |
|---|---|---|---|
| 计费透明度 | 官方账单,口径清楚 | 上游账单加自身成本 | 看计价规则与用量明细 |
| 网络稳定性 | 受本地出口影响 | 取决于服务器与线路 | 取决于网关线路与上游 |
| 限流口径 | 账号或项目级 | 自己控制,但仍受上游限制 | 看套餐规则,确认是否共享池 |
| Key 与数据 | 自己持有,数据直达上游 | 自己可控,可自建审计 | 独立 Key 与隐私政策需确认 |
| 运维成本 | 低 | 服务器、证书、值班都要承担 | 转移给服务方,但受其可用性约束 |
没有一种方案适合所有团队:只用 GLM 且网络、支付顺畅,优先直连;要固定出口和审计,选自建;要多模型入口又缺运维人力,再评估托管网关。
三、计费:倍率之外要问清的口径
中转常见报价是“官方价格乘倍率”或“Token 套餐”。倍率只是入口,决定账单的是以下八项:
- 输入与输出是否分开计价,倍率是否一致。
- 缓存命中的输入是否打折,折扣按哪一版价格计算。
- 推理模型产生的思考 Token 是否计入输出。
- 失败、重试和流式中断是否计费。
- 流式响应是否返回完整 usage。
- 充值的起充金额、有效期和退款条件。
- 能否开发票,结算币种和汇率如何确定。
- 账单能否按项目、Key 和模型拆分。
把这八项写进对比表,再用同一批请求回放,才能算出真实成本。站内价格见模型价格,价格会随模型与活动调整。
四、稳定性:指标、探针与故障转移
稳定性不看宣传,看六个指标:成功率、P50/P95 延迟、首 Token 延迟、超时率、429 占比和输出速度。测试用真实长度的提示词,覆盖流式、长上下文和并发,至少观察一个高峰周期。
故障转移不是简单配两个地址。只在连接失败、5xx 和明确的限流码上切换;401、403、400 这类配置错误,切过去通常也失败;有副作用的请求先确认是否执行,避免重复扣费。
import os
from openai import OpenAI
ENDPOINTS = [
{
"name": "primary",
"base_url": os.environ["GLM_BASE_URL"],
"api_key": os.environ["GLM_API_KEY"],
},
{
"name": "backup",
"base_url": os.environ["BACKUP_BASE_URL"],
"api_key": os.environ["BACKUP_API_KEY"],
},
]
def ask(prompt: str) -> str:
last_error = None
for endpoint in ENDPOINTS:
client = OpenAI(
base_url=endpoint["base_url"],
api_key=endpoint["api_key"],
timeout=60,
max_retries=0,
)
try:
resp = client.chat.completions.create(
model=os.environ["GLM_MODEL"],
messages=[{"role": "user", "content": prompt}],
max_tokens=512,
)
return resp.choices[0].message.content
except Exception as exc:
last_error = exc
print(f"{endpoint['name']} 失败:{type(exc).__name__}")
raise RuntimeError("主备入口均失败") from last_error
主备入口的模型能力、上下文长度和参数支持不一定一致。切换前用固定测试集对比输出,别把备用入口当成完全等价。
五、限流与并发:共享池的隐形代价
官方直连的限流通常挂在账号或项目上,口径可能是并发、每分钟请求数或 Token 速率,随套餐和模型变化,具体以控制台和官方文档为准。
商业中转若使用共享池,你的峰值会和别人的峰值叠加:平时正常,晚高峰集中 429;错误体里还可能出现欠费、套餐上限等提示。看到 429 先读业务码,不要条件反射地重试。
另一个常被忽略的是重试风暴。三个服务各自重试四次,上游实际收到的请求可能是原来的数倍。正确做法是客户端限并发、队列削峰、指数退避加随机抖动,并在网关层设总重试预算。
六、Key 归属与数据边界
中转最容易踩的坑是 Key。共享或转售的 Key、来源不明的额度,会带来四类问题:上游封禁时业务一起中断;多租户互相挤占限流;请求内容经过第三方,日志和留存策略不透明;服务条款可能不允许转售,纠纷时缺少依据。
选服务方时至少确认:公司主体、服务条款、隐私政策、发票能力、故障联系人和退出机制。金融、医疗等强监管场景,优先评估官方直连、私有部署或可签数据处理协议的服务。
还有一条底线:不要把官方 Key 交给中转方代充或代管,Key 离开账户后,用量和权限都不再可控。
七、迁移步骤:一次只改一个变量
- 记录基线:成功率、P50/P95、超时率、429 占比、每千次请求的 Token 用量与账单。
- 盘点依赖:模型名、thinking 参数、tools、JSON 输出、流式和图片输入。
- 新建测试 Key 与生产 Key,分别设置额度上限和告警。
- 只改
base_url与api_key,在预发环境跑通最小请求。 - 用真实提示词回放,对比输出质量、耗时与 usage 口径。
- 核对错误映射:401、403、429、5xx 和超时是否被正确识别。
- 灰度 5%–10% 流量,观察 3–7 天,保留原入口作为回退。
- 全量后继续对账一周,确认账单、用量和日志一致。
不要同时换模型、改提示词、迁网关,否则出问题无法归因。
八、验真清单:怎么判断一个入口靠不靠谱
| 验证项 | 做法 | 异常信号 |
|---|---|---|
| 延迟 | 同一提示词连续请求,比较 P50/P95 | 波动大或长期慢于直连 |
| 错误率 | 统计 429、5xx、超时占比 | 高峰期集中失败 |
| 用量 | 对比响应 usage 与后台账单 | 对不上,流式缺少 usage |
| 模型身份 | 用固定测试集比较能力边界与输出风格 | 能力明显降级、上下文变短 |
| Key 隔离 | 确认是否独立 Key、能否轮换 | 拒绝说明 Key 来源 |
| 合同与支持 | 查主体、条款、发票、工单响应 | 只有个人联系方式、无条款 |
红旗信号:价格长期远低于官方、承诺零故障、拒绝提供用量明细、要求上交官方 Key、说不清数据位置。遇到任何一条,先小流量验证,不要一次性迁移生产。
九、什么时候自建更合适
需要固定出口 IP、统一审计、多上游路由,或必须自己持有 Key 时,自建更合适。常见做法是反向代理加密钥管理、限流、日志和告警,上游仍用官方账号或合规供应商。
代价要算全:服务器、带宽、证书、升级、漏洞修复和值班都是成本。调用量小、没有运维人力时,自建往往更贵,也不能绕开上游限流。
十、选择建议:按约束排序
- 先看网络与支付:官方入口稳定、充值顺畅,优先直连。
- 再看控制力:需要固定出口、审计、私有 Key,评估自建。
- 再看模型范围:一个入口调多个模型,评估托管网关。
- 最后看服务能力:主体、条款、发票、工单和数据政策。
需要统一入口时,可以在中商起航 AI 网关创建测试 Key,先跑通再迁移;可用模型与计费方式见模型价格。不要把“便宜”当唯一标准。
十一、常见问题(FAQ)
1. 中转和代理有什么区别?
代理通常指网络层转发,只解决可达性;中转还包含账号、计费或 Key 分发。签约前问清边界和 Key 归属。
2. 中转价格比官方低,能信吗?
可能来自批量采购、线路补贴或额度转售,也可能伴随共享 Key 和不稳定。先核对计费口径、用量明细和条款,再小流量实测。
3. 怎么判断中转有没有换模型?
不能只看 model 字段,它可以被改写。用固定测试集比较能力边界、上下文长度、输出风格和 usage 结构,并保留直连作对照。
4. 迁移到网关要改多少代码?
多数 OpenAI SDK 项目只改 base_url 和 api_key,模型名按价格页调整。用到 thinking、tools 或特殊返回字段时,要做兼容测试。
5. 什么情况下应该自建代理?
需要固定出口 IP、统一审计、多上游路由,或合规要求 Key 自己持有时。调用量小、没有运维人力,自建成本通常更高。
