GLM API 中转与代理,常被当成改一行 base_url 的事。上线后才发现,决定体验的是四个问题:请求经过谁、Key 归谁、费用怎么算、故障谁来处理。答不清楚这四点,价格再低也不适合承载生产流量。

本文比较直连、自建代理和托管网关,重点讲计费透明度、限流、Key 风险、故障转移与迁移验证。可用模型与价格以站内模型价格为准。

说明:智谱、GLM、BigModel 是相关权利人的商标,本文仅作技术说明,与智谱无隶属或代理关系。中转市场变化较快,本文不构成对任何服务方的背书。

一、四个概念先分清

  • 官方直连:应用直接请求智谱开放平台的接口,Key、账单和限流都归自己的账号。
  • 网络代理:只解决网络可达性,不改变 API 语义,Key 仍是自己的。
  • 自建代理或自建网关:自己部署转发、鉴权、限流和日志,上游仍用官方账号或合规供应商。
  • 商业中转:由第三方转发并结算费用,可能附带额度、套餐或共享 Key,边界取决于运营方。
  • 统一 AI 网关:OpenAI 兼容入口,聚合多个模型,统一 Key、账单和控制台;可托管也可自建。

这些词常被混用,结果是把网络问题当成模型问题。签约前只问一句:请求最后以谁的身份到达上游?

二、四种方案放在一张表里

维度 官方直连 自建代理 托管网关
计费透明度 官方账单,口径清楚 上游账单加自身成本 看计价规则与用量明细
网络稳定性 受本地出口影响 取决于服务器与线路 取决于网关线路与上游
限流口径 账号或项目级 自己控制,但仍受上游限制 看套餐规则,确认是否共享池
Key 与数据 自己持有,数据直达上游 自己可控,可自建审计 独立 Key 与隐私政策需确认
运维成本 低 服务器、证书、值班都要承担 转移给服务方,但受其可用性约束

没有一种方案适合所有团队:只用 GLM 且网络、支付顺畅,优先直连;要固定出口和审计,选自建;要多模型入口又缺运维人力,再评估托管网关。

三、计费:倍率之外要问清的口径

中转常见报价是“官方价格乘倍率”或“Token 套餐”。倍率只是入口,决定账单的是以下八项:

  1. 输入与输出是否分开计价,倍率是否一致。
  2. 缓存命中的输入是否打折,折扣按哪一版价格计算。
  3. 推理模型产生的思考 Token 是否计入输出。
  4. 失败、重试和流式中断是否计费。
  5. 流式响应是否返回完整 usage。
  6. 充值的起充金额、有效期和退款条件。
  7. 能否开发票,结算币种和汇率如何确定。
  8. 账单能否按项目、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 离开账户后,用量和权限都不再可控。

七、迁移步骤:一次只改一个变量

  1. 记录基线:成功率、P50/P95、超时率、429 占比、每千次请求的 Token 用量与账单。
  2. 盘点依赖:模型名、thinking 参数、tools、JSON 输出、流式和图片输入。
  3. 新建测试 Key 与生产 Key,分别设置额度上限和告警。
  4. 只改 base_url 与 api_key,在预发环境跑通最小请求。
  5. 用真实提示词回放,对比输出质量、耗时与 usage 口径。
  6. 核对错误映射:401、403、429、5xx 和超时是否被正确识别。
  7. 灰度 5%–10% 流量,观察 3–7 天,保留原入口作为回退。
  8. 全量后继续对账一周,确认账单、用量和日志一致。

不要同时换模型、改提示词、迁网关,否则出问题无法归因。

八、验真清单:怎么判断一个入口靠不靠谱

验证项 做法 异常信号
延迟 同一提示词连续请求,比较 P50/P95 波动大或长期慢于直连
错误率 统计 429、5xx、超时占比 高峰期集中失败
用量 对比响应 usage 与后台账单 对不上,流式缺少 usage
模型身份 用固定测试集比较能力边界与输出风格 能力明显降级、上下文变短
Key 隔离 确认是否独立 Key、能否轮换 拒绝说明 Key 来源
合同与支持 查主体、条款、发票、工单响应 只有个人联系方式、无条款

红旗信号:价格长期远低于官方、承诺零故障、拒绝提供用量明细、要求上交官方 Key、说不清数据位置。遇到任何一条,先小流量验证,不要一次性迁移生产。

九、什么时候自建更合适

需要固定出口 IP、统一审计、多上游路由,或必须自己持有 Key 时,自建更合适。常见做法是反向代理加密钥管理、限流、日志和告警,上游仍用官方账号或合规供应商。

代价要算全:服务器、带宽、证书、升级、漏洞修复和值班都是成本。调用量小、没有运维人力时,自建往往更贵,也不能绕开上游限流。

十、选择建议:按约束排序

  1. 先看网络与支付:官方入口稳定、充值顺畅,优先直连。
  2. 再看控制力:需要固定出口、审计、私有 Key,评估自建。
  3. 再看模型范围:一个入口调多个模型,评估托管网关。
  4. 最后看服务能力:主体、条款、发票、工单和数据政策。

需要统一入口时,可以在中商起航 AI 网关创建测试 Key,先跑通再迁移;可用模型与计费方式见模型价格。不要把“便宜”当唯一标准。

十一、常见问题(FAQ)

1. 中转和代理有什么区别?

代理通常指网络层转发,只解决可达性;中转还包含账号、计费或 Key 分发。签约前问清边界和 Key 归属。

2. 中转价格比官方低,能信吗?

可能来自批量采购、线路补贴或额度转售,也可能伴随共享 Key 和不稳定。先核对计费口径、用量明细和条款,再小流量实测。

3. 怎么判断中转有没有换模型?

不能只看 model 字段,它可以被改写。用固定测试集比较能力边界、上下文长度、输出风格和 usage 结构,并保留直连作对照。

4. 迁移到网关要改多少代码?

多数 OpenAI SDK 项目只改 base_url 和 api_key,模型名按价格页调整。用到 thinking、tools 或特殊返回字段时,要做兼容测试。

5. 什么情况下应该自建代理?

需要固定出口 IP、统一审计、多上游路由,或合规要求 Key 自己持有时。调用量小、没有运维人力,自建成本通常更高。

相关阅读