海外的模型接口在国内能不能直接用,答案是不能。官方三道门槛摆在那,跟技术能力无关,是钱包、网络和支付通道的问题。中转平台就是在这三道门槛上做生意,但市面上平台类型差别很大,报价方式、模型真实性、并发能力完全不是一回事。这篇讲怎么把它们分清楚,以及怎么花 10 分钟验证一个平台有没有偷换模型。
按小时算时薪的人,配一遍环境要半天,之后每月还得处理一次卡被拒、号被封、代理掉线。这套维护成本早超过 API 账单本身了。
其余情况,国内直连的中转是默认选项。
最轻的形态。一个域名反代官方接口,把请求原样转出去,用的是平台自己的一两个官方账号。特点很明显:
平台维护一批官方账号或企业额度,请求进来后按模型、按负载路由到不同上游,池子里挂了自动摘掉重试。这种形态在国内是主流:
用 one-api、new-api 这类开源网关,填自己的上游 Key,部署在自己的服务器上。技术上完全可控,但要求你自己解决支付、网络、账号这三道门槛——等于把中转平台要干的活全接回来自己做。
| 维度 | 反向代理 | Key 池分发 | 自建网关 |
|---|---|---|---|
| 并发上限 | 低,受单账号限制 | 高,取决于池子规模 | 取决于自己的上游数量 |
| 稳定性 | 差,单点 | 好,可自动摘除 | 取决于自己的运维水平 |
| 模型覆盖 | 通常只覆盖一两家 | 可覆盖全系 | 有多少上游就有多少 |
| 支付方式 | 看平台 | 支付宝微信常见 | 自己对接海外支付 |
| 维护成本 | 平台承担 | 平台承担 | 全部自己承担 |
| 计费灵活度 | 低 | 可以实现按次计费 | 可以自定义 |
判断一个平台属于哪种形态,看它有没有跨厂商模型、有没有国内支付、支不支持按次计费,三条里中两条以上,基本就是 Key 池分发。
好平台会把完整价格表公开,写明计费单位是「按次」还是「按 token」,写清楚最低充值是多少。含糊其辞的典型说法是「超低价」「比官方便宜 90%」却给不出单价表。
这是最容易做手脚的地方。常见做法有四种:旧型号改名成新型号、轻量档冒充 Pro 档、请求里偷偷降级到便宜上游、返回缓存或模板答案。下一节讲怎么验证。
直接问三个问题:单账号并发上限多少、超限时是排队还是直接报 429、有没有按日或按月封顶。做批量任务时,并发上限比单价更影响交付时间。
看三件事:有没有状态页或公告渠道、上游故障时会不会自动切换、赔偿规则怎么写。一个连公告都不发的平台,出问题你只能干等。
支付宝、微信直付是国内平台的基础能力。额外要确认两点:最低充值多少、余额会不会过期。小鱼API 最低 7 元起充,这个门槛对试错很友好——7 块钱能把整条链路跑通。
问清楚请求内容留不留、留多久、存在哪。做企业项目或者处理客户数据时这是硬要求,至少要能明确回答「不留存」或者「仅留存元数据」。
试一个具体的技术问题,看多久回、回得专不专业。判据很简单:能不能直接回答模型版本、并发策略、报错原因,而不是复读官网话术。
# pip install requests
import requests, random, string
BASE = "https://xyuapi.top/v1"
KEY = "sk-你的key"
H = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}
def ask(model, prompt, max_tokens=300):
r = requests.post(f"{BASE}/chat/completions", headers=H, json={
"model": model,
"messages": [{"role": "user", "content": prompt}],
"max_tokens": max_tokens,
"temperature": 0,
}, timeout=180)
r.raise_for_status()
return r.json()["choices"][0]["message"]["content"]
# 探针一:自述
print(ask("claude-opus-4-8-thinking", "你用的是什么模型?版本号是多少?一句话回答。"))
# 探针二:长上下文检索,噪声中间埋暗号
token = "".join(random.choices(string.ascii_uppercase + string.digits, k=12))
noise = "无关文本。" * 20000 # 约 6 万 token 量级
prompt = noise + f"\n\n记住暗号:{token}\n\n" + noise + \
"\n\n刚才那句暗号是什么?只输出暗号本身。"
ans = ask("claude-opus-4-8-thinking", prompt, max_tokens=50)
print("埋入:", token, "取回:", ans.strip(), "通过" if token in ans else "可疑")
# 探针三:格式遵循能力,弱模型经常做不到
print(ask("gpt-5.6-sol", "只输出一个 JSON:{\"a\":1,\"b\":\"ok\"},不要任何解释。"))
顺手把模型列表拉一份,对一下型号名:
curl -s https://xyuapi.top/v1/models -H "Authorization: Bearer sk-你的key" | python -m json.tool | head -40
7 块钱足够跑完下面这套动作,不要一上来就充几百:
https://xyuapi.top/v1,用 curl 发一次 chat/completions,确认 200按次计费的中转,日常问答一档 0.03 到 0.09 元一次。个人开发者一天 100 次调用,一个月约 90 到 270 元,包含上面全部运维成本。
自建省下的是单次单价,付出的是固定成本加持续的时间投入,还有封号这个尾部风险。多数团队算完这笔账,会选采购。
内容团队一天处理 200 份 5 万字文档,每份一次摘要请求:
单份差 5.8 倍,一天差 36 元,一个月差约 1080 元。
按量的成本跟输入长度线性相关,按次的价是固定的。文档从 5 万字涨到 20 万字,按量成本涨 4 倍,按次还是 0.031 元。这是长文本场景里按次计费的核心优势。
调用频次稳定在高位的用户。一天 500 次 deepseek 档调用是 24.5 元,一个月 700 多元。能稳定跑到这个量级,无限卡把单次成本一并删掉,预算变成一口价,财务上更好排。
第一次一定用 curl 验证,别直接上客户端——客户端报错信息经常被吞掉,curl 能看到原始状态码和 body。
curl https://xyuapi.top/v1/chat/completions \
-H "Authorization: Bearer sk-你的key" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v3.2-thinking",
"messages": [{"role": "user", "content": "说一句你好"}],
"max_tokens": 50
}'
返回里有 choices[0].message.content 就说明链路通了。
| 客户端 | 填 Key 的字段 | 填地址的字段 | 地址怎么填 |
|---|---|---|---|
| Chatbox | API Key | API Host / Base URL | https://xyuapi.top/v1 |
| Cherry Studio | 密钥 | API 地址 | https://xyuapi.top/v1 |
| 酒馆 SillyTavern | API Key | Custom Endpoint | https://xyuapi.top/v1 |
| Cline / RooCode / KiloCode | API Key | Base URL | https://xyuapi.top/v1 |
| Tavo | API Key | Base URL | https://xyuapi.top/v1 |
填地址时最后一个 /v1 不能丢也不能多。多写一个 / 变成 /v1/ 有些客户端能容忍,有些会拼出 //chat/completions 直接 404。
同一个 Key 覆盖 Gemini、Claude、OpenAI、Grok、DeepSeek、Kimi 全系,切模型只改 model 字段的值。建议把模型名从代码里抽出来放进环境变量或配置文件,新版本上线时改一处就行。