从 OpenRouter 迁移到 KeepRouter:核对 URL、模型 ID 与路由字段

先迁移一个兼容文本功能,明确把 OpenRouter 配置映射到当前 KeepRouter 模型与端点。供应商策略、回退设置和有状态对象需要单独审查,更换主机不会自动翻译这些内容。

发布 2026-09-23 · 更新 2026-09-29 · KeepRouter Editorial · 6 分钟阅读

按托管访问、供应商控制、可观测与自托管整理的 OpenRouter 替代图
逐项映射请求依赖,并保留完整回滚配置。

从 OpenRouter 迁移到 KeepRouter,应该交付一份其他开发者能复现新旧请求、解释每个字段变化、并能切回原路径的记录。先选择一个已有验收条件的无状态文本功能。平台层面的选择见 OpenRouter 对比页,本文专注请求级操作手册。

候选线路必须出现在当前模型目录中,并支持功能实际使用的操作。例如 Claude Sonnet 4.6条目提供 KeepRouter 公开 ID 与端点信息。不要简单删掉 OpenRouter slug 前的厂商名来猜目标 ID;应建立明确映射,并逐项核查。

在本地检查配置

使用 API 迁移检查器,输入不含凭证的 JSON 并明确选择目标模型。下载 Python 与 Node 示例包,获得 dry-run、流式与工具续轮示例。静态及合成测试不代表已验证上游实际兼容性。

修改代码前,先写配置映射

配置现有 OpenRouter 路径需要核实的 KeepRouter 路径
OpenAI SDK Base URLhttps://openrouter.ai/api/v1https://keeprouter.com/v1
凭证OpenRouter API Key有模型范围的 KeepRouter API Key
模型准确的 OpenRouter slug当前 KeepRouter 目录 ID
供应商策略order、only、ignore 等目标服务有文档的线路控制
回退模型或供应商回退配置只重建目标明确支持的策略
计费证据OpenRouter 用量及账户记录KeepRouter 用量与余额记录

OpenRouter 在自己的契约中定义供应商排序及回退。KeepRouter 上游映射由运营方管理,OpenRouter provider 设置不能直接用来选择这些映射。如果指定供应商或地域是必要条件,而目标没有相应公开控制,这个工作流就没有通过迁移清单。

明确保留两份客户端配置

下面的 Python 代码只构造客户端,不发起 API 调用。将已验证的准确模型 ID 放在环境变量中,而不是依赖字符串转换;凭证则保存在运行环境的密钥机制里。

import os
from openai import OpenAI

profiles = {
    "old": {
        "base_url": "https://openrouter.ai/api/v1",
        "api_key": os.environ["OPENROUTER_API_KEY"],
        "model": os.environ["OPENROUTER_MODEL"],
    },
    "candidate": {
        "base_url": "https://keeprouter.com/v1",
        "api_key": os.environ["KEEPROUTER_KEY"],
        "model": os.environ["KEEPROUTER_MODEL"],
    },
}

def client_for(name):
    profile = profiles[name]
    return OpenAI(
        base_url=profile["base_url"],
        api_key=profile["api_key"],
        timeout=30.0,
        max_retries=0,
    ), profile["model"]

应用在灰度验证时应选择其中一份配置,不要默认把每笔生产请求都复制到两家服务。影子评估涉及额外的数据处理和费用安排。首次比较可使用合成或经过选择的测试案例,并限制请求数量;诊断日志不需要记录提示词正文或密钥。

盘点 OpenRouter 专用行为

搜索请求构造器里的供应商偏好、回退模型数组、transforms、plugins、路由别名和归属 Header。将每项分为必要行为、可选行为或历史遗留配置,再把必要项与 KeepRouter API 契约及模型路由说明比较。

不要为了让请求成功,就静默删掉承载真实要求的字段;也不要把没有文档支持的参数继续带到新线路,然后因为服务端接受 JSON 就认为参数生效。迁移记录应该说明,哪些行为保留、哪些被替换、哪些功能仍留在原路径。

如果使用 OpenRouter 原生 SDK,也要与 OpenAI SDK 用法分开检查。原生 SDK 可能暴露账户、路由和发现等专属操作,另一服务并没有对应方法。先缩小到普通 Chat Completions 路径,会让首轮迁移更容易检查。

验收完整请求生命周期

先运行非流式请求,并按功能条件检查内容。随后用同一份模型映射与客户端版本验证以下案例。

案例必须证明的行为
流式正确处理文字、终止状态和用量
工具调用参数通过校验,工具结果返回后能完成回答
错误模型应用提供可操作的错误信息
有范围的 Key只能调用已经评估的模型集合
超时或取消调用方停止等待,请求仍可核对
对话第二轮必要历史以正确结构保留

本文列出测试方法,并不声称案例已经运行。实际执行时,记录日期、SDK 版本、准确载荷、状态与请求标识。如果应用依赖 Responses 状态或其他供应商保存的资源,应检查目标端如何重新建立;已有 response ID 不是跨服务的对话导出文件。

按被接受的任务比较账单

两条路径的输出长度、缓存行为和尝试次数可能不同。应按每个被接受的任务比较费用,并保存每次尝试的原始 usage。可先在 API 费用计算器选择目标 KeepRouter 模型估算,再按 OpenRouter 自己的客户费率另算原路径,再核对实际扣款;充值或其他单独收费项目应保留在业务比较中。

例如选择二十个固定工单案例,采用同一套通过条件,统计完成且合格的摘要数量,而不仅是 HTTP 成功数。如果某条路径需要额外修复请求,也要计入费用。不能只凭标价声称节省,也不能因为公开模型名接近就认定其上游服务相同。

回滚应恢复整个客户端配置

把旧地址、凭据引用、型号 ID 与产品专用选项放在同一份配置中。只恢复 URL,可能把 KeepRouter 型号或 Key 发往 OpenRouter。切流前,用无敏感信息的固定提示测试配置切换。OpenRouter 快速开始记录其客户端设置,上文 KeepRouter 配置应独立保存。排查时不要打印任何一边的密钥。

将上线和回滚作为完整配置操作

把主机、凭证引用、模型映射、请求字段规则和解析器版本放在一起。先移动一个范围有限的功能或受控流量,再观察请求记录;验收条件持续成立后才逐步扩大。旧配置应保留到现有对话和后台任务都有明确的完成路径。

回滚时恢复整个配置。仅恢复主机,可能遗留错误模型 ID、专用字段或流式解析方式。通用 API 迁移清单覆盖更广的上线过程,SDK 指南提供可以复制的客户端配置。

常见问题

删除 OpenRouter 厂商前缀就能得到目标 ID 吗?

不能依赖这种转换;应明确映射到当前 KeepRouter 目录中的准确 ID。

OpenRouter provider.order 能原样使用吗?

它是 OpenRouter 的专用控制;应检查目标路由契约,KeepRouter 上游映射由运营方管理。

HTTP 200 就通过迁移测试了吗?

没有。还需按功能验证内容、流式结束、工具接续、状态和计费。

回滚需要恢复什么?

应一起恢复主机、凭证引用、模型映射、请求字段规则与响应解析器。

参考的一手资料

本文最近复核 2026-09-29

  1. [1] OpenRouter quickstart
  2. [2] OpenRouter provider routing
  3. [3] KeepRouter routing contract
  4. [4] KeepRouter OpenAPI

继续阅读

← 全部文章 · 模型与价格 · 获取 API Key