OpenRouter 替代:价格透明、无额外路由费
直连式兼容 OpenAI 接口,预付费按 token 计费,页面直接标价,不叠加路由费。
目标关键词: OpenRouter alternative
GeniusRelay 和 OpenRouter 是同一个思路的两种实现:一个兼容 OpenAI 的接口后面挂很多模型。区别是每个模型页直接标价,计费是预付的按 token 扣费,不在上面再叠一层路由费。
真要迁走 OpenRouter,有用的问题只有三个:哪些模型能平移、调用点改什么、新账单长什么样。
提供什么
- 37 家厂商的 599 个模型,含 OpenAI、Anthropic、Google、DeepSeek、智谱、Qwen、Meta、Mistral
- 43 个无审查与消融模型
- 支持的模型最高 2M 上下文
- 线路间自动故障转移
- 预付费按量计费,无订阅
- 按 Key 设消费上限和到期日
- 兼容 OpenAI 的 chat completions
对比
| 维度 | OpenRouter | GeniusRelay |
|---|---|---|
| 接口形态 | 兼容 OpenAI | 兼容 OpenAI |
| 价格展示 | 按模型 | 按模型,输入/输出/缓存分开 |
| 计费 | 购买额度,充值有平台费 | 预付余额,按 token 扣 |
| 无审查目录 | 有限 | 43 个,独立分类 |
| 按 Key 限额 | 有 | 有,另有到期日 |
| 对比页 | 模型列表 | 四模型并排 |
实际的差别在目录形状。OpenRouter 更宽,GeniusRelay 偏向大多数网关会埋掉的长尾和无审查模型。如果你的负载包含角色扮演、中文流量或怕拒答的变体,差别不小。
调用点迁移
格式一样,改三个值:
from openai import OpenAI
client = OpenAI(
base_url="https://api.geniusrelaygpt.com/v1",
api_key="YOUR_GENIUSRELAY_KEY",
)然后映射模型 ID。OpenRouter 的 ID 带厂商前缀(deepseek/deepseek-chat),GeniusRelay 用裸 ID(deepseek-v4.1-flash)。在配置里留一张转换表:
| OpenRouter 风格 | GeniusRelay |
|---|---|
deepseek/deepseek-v4.1-flash | deepseek-v4.1-flash |
anthropic/claude-sonnet-5.5 | claude-sonnet-5.5 |
z-ai/glm-5.3-flash | glm-5.3-flash |
带厂商前缀的一律去掉。启动时校验 ID,未知模型是 400,不是回退。
保留真正在用的路由能力
OpenRouter 用户常依赖供应商偏好或回退列表,换成 GeniusRelay 的说法:
- 回退: 在 5xx/429 时重试第二个模型。回退模型选同价位、能力相近的,免得一次故障账单翻倍。
- 供应商固定: 没有单独字段,模型 ID 就是线路。需要原厂时选原厂的模型。
- 缓存: 稳定前缀放最前,命中支持的缓存输入价。
回退列表别照搬。三层深的贵模型链会把一次故障变成三次扣费。
成本模型
预付余额意味着每笔请求都能看到扣费。两个习惯让账可预期:
- 每个 Key 封顶。 一个应用或一个客户一把 Key,带消费上限和到期日,重试风暴跑不出上限。
- 看清输入输出。 输出是贵的那一头,
max_tokens收住。
跑量时把模型分层:分类和抽取用便宜模型,生成用中档,只有难的那一小块上前沿模型。便宜 LLM API 指南有算术,价格页有实时费率。
参考价:
- DeepSeek V4.1 Flash — 输入 $0.0503/M,输出 $0.520/M
- Claude Haiku 5.5 — 输入 $0.130/M,输出 $0.650/M
- GLM 5.3 Flash 无审查 — 输入 $0.260/M,1M 上下文
切换前要核的
- 模型是否对得上。 有些 OpenRouter 独占模型没有直接对应。列出来,决定替代品能不能过你的提示词,剩下的砍掉。
- 上下文上限。 别假设新模型同窗口,看模型页。
- 工具 schema。 带
tools标签的模型才接受 OpenAI tools 块,其余可能忽略。按工具调用页筛。 - 客户端兼容。 Cursor、Cline、SillyTavern 都走同一个端点:Cursor、Cline、SillyTavern。
常见问题
兼容 OpenAI 吗?
兼容,base URL 改成 https://api.geniusrelaygpt.com/v1,用 GeniusRelay 的 Key。
能配 Cursor 或 Cline 吗?
能,两者都支持自定义 OpenAI 兼容端点,见上面的教程。
收平台费吗?
预付按 token 计费,模型页的价就是价,没有额外订阅。
OpenRouter 的模型这里都有吗?
不是全部。主流模型重叠很多,无审查和中文长尾更强,但不是镜像。
故障转移怎么做?
5xx/429 时重试第二个模型,靠 Key 上限兜底。回退模型保持同价位。
能两家一起跑吗?
能,端点不排他。边测边分流,之后再退掉一家。
开始
打开模型列表和对比页,为你依赖的每个 OpenRouter 模型找两个替代,跑自己的提示词。然后按快速开始接入,切流量前给 Key 设上限。
迁移检查单
切流量前逐条过:
- 从日志导出最近 90 天真正调用过的模型 ID。
- 对照模型列表,标成可直接替换、需要替代或放弃。
- 每个替代品用你的评测集跑两遍。
- 改配置里的 ID 映射,未知 ID 直接失败。
- 每个应用一把 Key,带消费上限和到期日。
- 两个端点影子并行一周,比失败率和每次成功调用的成本。
- 按比例切流量,不要一次全切。
回退写法
回退要无聊且有边界:
def complete(model, messages):
try:
return client.chat.completions.create(model=model, messages=messages)
except Exception as exc:
if getattr(exc, "status_code", 0) in (429, 500, 502, 503, 504):
return client.chat.completions.create(model=FALLBACK, messages=messages)
raise只留一跳。FALLBACK 放同价位,免得一次故障把月预算改一个数量级。记录走了哪条路,回退频繁触发就是换主模型的信号。
回滚
切完把旧 base URL 和 Key 在环境变量里留两周。回滚只改一个值,提前备好就不会被逼着在生产里调试。失败率和成本曲线平了一周,再退掉旧 Key。
看哪些数
- 每次成功调用的成本,不是每 token 成本。
- 按模型拆的失败率,再分 429、5xx、格式坏和拒答。
- 主线路和回退的 P95 延迟。
- 命中回退的流量占比。
第一个数决定迁移成没成,后三个在没成时解释原因。