硅基流动和 OpenRouter 的机制差异:怎么按场景选

2026-08-31

数据截至 2026-08,价格与限额以各官网为准。本文只讲计费与接入机制,不列具体价格数字。

这两家经常被放在一起比,但它们的官方文档讲的根本不是同一件事。OpenRouter 的文档里有一整套「上游供应商」的概念——路由顺序、故障转移、只允许哪几家,而硅基流动的文档里没有对应概念,它讲的是模型广场、每个模型单独的限额、以及一套很中国化的实名与开票流程。限流口径也完全不同:OpenRouter 把限制切成「能花多少钱」和「能发多少次请求」两类,硅基流动则是七个指标任一先达峰就触发。连 403 的含义都不一样。下面这些差异全部能在两边官方文档里逐句对上,看完你应该能自己判断该用哪边,而不是听谁推荐。

先分清它们在调用链上站的位置不一样

OpenRouter 官方文档里有一个大量出现的概念是 provider(上游供应商)。它提供 provider.order 字段,官方对这个字段的说明是「按顺序尝试的供应商 slug 列表」,行为描述是路由器会在这个列表里按顺序优先选择供应商;如果不设这个字段,路由器会在头部供应商之间做负载均衡以提高可用性。注意这里的措辞——它只排序,不会把候选池筛空。真正会把候选池筛窄的是 provider.only,官方那条「没有可用供应商」的报错原文里自己就点了名,说明这条请求的 provider.only 偏好只允许某一家。另外还有 allow_fallbacks,官方在 529(供应商临时过载)的处理建议里让你打开它来自动切到备用供应商。

硅基流动的文档里没有这一层。本文核到的官方页面覆盖的是快速上手、错误码、限流与用量级别、财务、实名认证这几块。你在它的官方文档里找不到「选哪个上游供应商」这类可配置项。

这个差异不是谁高谁低的问题,而是决定了两件事:你要不要在应用层为「某一家上游挂了」做准备,以及同一个模型名在不同时间会不会落到不同的机器上。需要显式控制这件事的团队,只有一边给了字段。

接入层:都兼容 OpenAI 协议,但兼容的范围不一样

硅基流动的 API 基址是 https://api.siliconflow.cn/v1,聊天端点是 https://api.siliconflow.cn/v1/chat/completions,鉴权头是 authorization: Bearer <你的 apikey>。官方明确写了它同时兼容 OpenAI 与 Anthropic 两种对话协议,大语言模型可以直接用 OpenAI 官方库调用,只需要把 base_url 指向上面的基址,官方 Python 示例用的就是 OpenAI(api_key=..., base_url="https://api.siliconflow.cn/v1"),并要求 Python 3.7.1 或更高版本。

OpenRouter 的端点是 https://openrouter.ai/api/v1/chat/completions,鉴权头是 Authorization: Bearer <OPENROUTER_API_KEY>。官方同样说明可以把 OpenAI SDK 直接指向它作为 drop-in 替代,baseURLhttps://openrouter.ai/api/v1。除此之外它还有两条自家路径:Client SDK(@openrouter/sdk)和 Agent SDK(@openrouter/agent)。它还有两个可选请求头 HTTP-RefererX-OpenRouter-Title,用于在它自己的应用榜单上展示你的应用,不是必需项。

所以在「换一个 base_url 就能跑」这件事上两边是一样的,具体填法可以参考硅基流动 API 接入。真正的差别在于:如果你的客户端是按 Anthropic 协议写的,硅基流动的官方文档明写了它兼容这套协议;OpenRouter 的文档在这一点上给的是 OpenAI 兼容与自家 SDK 两条路。

限流:一个切成两类,一个铺成七个指标

OpenRouter 官方文档把限制明确分成两类,而且给了一张四列的表:限制类型、管什么、超限报什么错、去哪查。第四列这个信息很实用——额度类限制去 GET /api/v1/keylimit_remaining;速率类限制看错误响应上返回的 X-RateLimit-* 系列响应头。

额度类限制官方说来自两个地方:一是账户余额,二是单个 API key 上可选配置的消费上限,后者由 GET /api/v1/key 响应里的 limitlimit_resetlimit_remaining 三个字段描述。官方给 402 的处理顺序也是照这个来的:先充值把余额补到正数,再看 key 上的 limit_remaining 是不是耗尽了(耗尽就提高上限或等 limit_reset),最后是主动定期调这个接口提前监控。

硅基流动这边是七个指标:RPM、RPH、RPD、TPM、TPD、IPM、IPD,分别对应每分钟/每小时/每天的请求数、每分钟/每天的 token 数、每分钟/每天的图片数。关键在于任一指标先达峰就触发,不需要全部达标。官方举的例子就是这个意思:一分钟内把请求数发满,哪怕 token 用量离上限还差得远,限流照样触发。它还有两条容易被忽略的规则——Rate Limit 定义在用户账户级别,不是 API key 维度;每个模型单独设置限额,一个模型超限不影响其他模型。收费模型的限额按账户用量级别分层,用量级别按月消费金额划分,取「上月」与「当月 1 号至今」两者的最高值换算,达标自动升级、立即生效,新用户从最低档起步。

有意思的是两边在「能不能靠多开 key 分摊」上给了同样的答案。OpenRouter 官方在 Limits 页顶部就有一条提示:多建账号或多建 API key 不会影响你的速率限制,因为容量是全局治理的;但不同模型的速率限制不同,可以靠换模型来分担负载。硅基流动那句「限额定义在账户级别不是 key 维度」+「每个模型单独设限额」说的是同一个结构。想先弄清 RPM/TPM 这些口径本身的含义,可以看限流额度怎么估

免费模型:一个靠后缀,一个靠前缀,而且方向相反

OpenRouter 的做法是变体后缀。官方说给模型 ID 追加 :free 就能访问模型的免费版本,并且用的是「免费变体可能在速率限制或可用性上与付费版不同」这种措辞——是可能,不是一定。文档另一处的表述是「用于存在免费端点的模型」。至于给一个根本没有免费端点的模型加上这个后缀会发生什么,官方文档没有说明,别自己推断。它另外还有一个 openrouter/free 免费模型路由器,会自动为请求挑一个免费模型。免费变体本身有每分钟和每天两档请求上限,官方说这两档按累计购买额度分档——买得越多,每日上限越高。

硅基流动的做法是前缀,而且方向反过来:部分模型同时有免费版与收费版,免费版按原名称命名,收费版在名称前加 Pro/ 前缀。免费版的 Rate Limits 是固定的,收费版的 Rate Limits 才随账户用量级别变化。更细的一条是 DeepSeek R1 与 V3 按支付方式区分命名:Pro/仅支持充值余额支付,非 Pro 版支持赠费余额和充值余额支付。还有一道本站特有的门槛——官方明写实名认证之后才能使用全部免费模型。免费档能用到什么程度,可以对照硅基流动免费额度那篇。

两边还有一个共同的坑,但触发方式不同。OpenRouter 官方原文说的是:账户余额为负时你可能会看到报错,免费模型也会被波及,把余额补到零以上就能重新用这些模型——注意情态是「可能」。硅基流动那边则是没实名就用不了全部免费模型。同样是「免费的用不了」,一个查余额,一个查实名。

钱怎么进来、票怎么开:差异最大的一块

OpenRouter 站点与 API 的定价统一按官方说明的基础货币计价,不是人民币体系。官方接受的支付方式原文是「所有主流信用卡、支付宝以及 USDC 加密货币支付」,另有一句说 PayPal 正在整合中。费用结构是这样的:购买额度时收取一笔费用,但不对底层模型加价(官方用词是 without any markup,你付的和直接找那家供应商是同一个价),加密支付另有一档费率——具体是多少去官方定价页看,别信任何二手数字。额度不是永久的,官方保留在购买后经过一段时间使未使用额度作废的权利,期限以官方条款为准。退款方面官方给的规则很硬:交易处理后有一个申请窗口,超过这个窗口就不能退了;在 Credits 页面用退款按钮操作,退回原支付方式;平台手续费不退加密货币支付永远不可退。另外官方明写目前不提供按采购量给出的价格优惠,特殊场景可以邮件沟通。开票走 Stripe,settings/credits 页面可以保存 Tax ID,保存后会挂到 Stripe 客户记录上并出现在之后每一张发票上。组织账户还有一条权限边界:普通成员不能购买额度也不能查看账单信息,得找管理员。

硅基流动是完全另一套。它有三种充值方式:在线充值(支付宝或微信,电脑端扫码、手机端跳转 App,即时到账);支付宝自动充值(签约后余额低于设定阈值自动补充,平台每 10 分钟检测一次余额,默认夜间 22:00 到次日 08:00 不执行、可在设置里调整,执行前 10 分钟发短信通知,扣款失败时自动停止、需要手动解约再签,想调整阈值也得先解旧约再签新约);对公转账汇款(面向企业大额,需要先完成企业认证再创建订单,打款账户名称必须与实名认证主体一致否则充值失败,必须先创建订单再汇款且金额完全一致,转账后 1 到 5 分钟更新状态、不要重复转账,未按要求转账导致失败的资金通常 24 小时内退回)。

这里有一条特别反直觉、也是最容易踩的:官方的勾选项里明确写着充值资金不支持直接开具发票,开票是按实际消耗的费用开,而且需要发邮件申请。不实名的后果也很直接——无法充值、无法申请开发票。实名分个人与企业两类,账号归属和开票资质都由认证类型决定:企业认证可以开增值税专用发票与普通发票,个人认证只能开个人抬头的增值税普通发票,企业用户不要去做个人实名认证,一个账号只允许绑定一个认证主体,而且30 天内只能完成一次变更或修改。个人认证走支付宝 App 扫码人脸识别,支持的证件官方列了身份证、港澳往来大陆通行证、台湾往来大陆通行证、港澳居民居住证、台湾居民居住证、外国人永久居留证,没有这些证件的暂不支持线上认证;官方还写明不对未成年人提供在线实名认证服务。

报错语义不一样,排查经验不能直接搬

最典型的是 403。OpenRouter 的 403 对应 error_typepermission_denied,官方解释是 key 有效但缺少所需权限,或者请求被 guardrail 拦截——它不是区域限制。硅基流动的 403 官方写的是权限不够,而且点明最常见的原因是该模型需要实名认证。同一个状态码,一个让你去查权限和内容拦截,一个让你去做实名,排查方向完全不同。

其余状态码大体能对上但细节有别。硅基流动这边:400 是参数不正确、按 message 修正;401 是 API Key 没有正确设置;402 是账户欠费;429 要按 message 判断是七个指标里的哪一个;503 和 504 是服务负载较高,官方建议稍后再试,对话与 TTS 请求可以尝试改用流式输出;500 是未知错误、联系官方排查。它的错误响应结构是 codemessagedata 三个字段,官方示例形如 {"code":20012,"message":"Model does not exist. Please check it carefully.","data":null}——注意这个 code 是它自己的业务码,跟 HTTP 状态码不是一回事。官方给的通用排查四步也很实在:打印错误码与 message、用 curl 复现、换一个模型试、如果开了代理就关掉代理再试

OpenRouter 这边除了按状态码分类,还有一层更精确的 error_type 字段,官方列出的取值包括 authenticationpermission_deniedpayment_requiredrate_limit_exceededprovider_overloadedprovider_unavailableinvalid_requestnot_foundmax_tokens_exceededtoken_limit_exceededstring_too_long 等(以官方文档当前版本为准)。这里有一条容易被写错的规则:官方说 HTTP 状态码与 error.code 相同是有条件的——只在「请求本身非法」和「key 或账户额度不足」这两种情况下才一致;其余情况下,模型已经开始产出之后才发生的错误,HTTP 状态是正常的,错误会走响应体或 SSE 数据事件返回。按前一种情况写的重试逻辑,碰到后一种就会静默漏掉错误。429 的处理官方也给了顺序:先做指数退避重试,再考虑在免费变体上购买一定量额度以提高每日上限;重试时要尊重 Retry-After 头。硅基流动的 429 官方同样推荐指数退避。

按什么维度自己选

这篇不给「谁更好」的结论,但可以给你几条能直接对着自己情况打勾的分界,每一条都对应上面某个已经核过的机制:

  • 要不要显式控制上游供应商:需要指定优先级、需要故障自动转移、需要限定只走某几家的,只有一边的文档里有对应字段。
  • 票据形态:需要人民币增值税发票(尤其是专票)的,看的是实名认证与「按实际消耗开票、充值资金不直接开票」这套规则;需要在境外发票上挂 Tax ID 的,看的是 Stripe 那条路径。两边不是同一种票。
  • 协议兼容:客户端按 Anthropic 协议写的,注意硅基流动官方明写兼容这套协议。
  • 限流形态:你的流量是「请求多但每个都短」还是「请求少但每个都长」,决定了你先撞哪个指标;七指标任一触顶即触发的口径下,图片类请求还有单独的 IPM/IPD 要算。
  • 免费怎么用:一边是给模型 ID 加免费后缀、上限按累计购买额度分档;一边是免费版用原名、收费版加 Pro/ 前缀、且要先实名。

有一条两边一样、不用作为选型依据:多开账号或多建 key 都绕不开限流,这是两边官方各自写明的。

最后是几个真会栽的坑

第一,别把一边的经验平移到另一边的命名上。:free 后缀和 Pro/ 前缀方向是反的——前者是给免费版加标记,后者是给收费版加标记,记混了就会调错模型。

第二,403 别当成区域问题处理。两边的官方解释一个是权限或 guardrail,一个是实名认证,都不是区域。

第三,硅基流动这边,充值成功不等于能开票,也不等于能用全部免费模型;前者要走「按实际消耗申请开票」的路径,后者要先实名。

第四,OpenRouter 这边,加密货币支付一旦完成就永远不可退,手续费在任何情况下都不退——这两条在动手充值之前就得知道。

第五,两边的价格与限额都在变。本文只写机制不写数字,具体单价、费率、限额数值请以各自官方定价页与文档为准。真要做迁移,先按换厂商迁移清单把调用侧的差异逐条对完,再动生产流量。

想系统学会用 AI?报名体系课或加入会员,照着学、照着用。

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。