跳到主要内容
注册

沉浸式翻译自定义 API 配置:用 OpenAI 兼容接口接入 Router One

沉浸式翻译是双语对照翻译浏览器扩展:它把译文放在网页原文旁边,旧版 PDF 和 EPUB 阅读器也使用同一个翻译服务。它内置的 OpenAI 服务可以不开通沉浸式翻译 Pro 会员,改用你自己的 API Key 和自定义 API 接口地址,Router One 就是这样接入的:每一批段落对应一次发往 /v1/chat/completions 的 POST,这个端点服务目录里的全部对话模型,所以一把 Key 就能用 Claude、Gemini、DeepSeek、GPT 或 Grok 模型来翻译,每一批的 tokens 和费用都能在控制台 → 日志里看到。翻译是高频调用,所以本指南讲:地址该怎么填(https://api.router.one/v1/chat/completions 在所有版本都能用)、怎么添加目录里的模型名称、一个页面会产生多少请求以及如何避开限流、哪些模型适合批量翻译,还有会丢弃译文的质量校验。按沉浸式翻译 1.33.3(Chrome 应用商店版本)和 1.30.2(Firefox 附加组件商店分发的版本)核对(2026-09-27)。

填写沉浸式翻译的自定义 API 接口地址与 Key

打开沉浸式翻译 设置 → 翻译服务 → OpenAI,把服务从 Pro 切换为「自定义 API Key」。在 APIKEY 里粘贴你的 Router One Key。点「展开更多自定义选项」,填写「自定义 API 接口地址」。字段自带的说明写着「可填写 API Base URL 或完整接口地址」,而完整的 Chat Completions 地址是所有版本处理方式都一样的写法。然后打开「设置更多模型」,添加要用的目录 ID(见下文),再在「模型」里选中一个。点「点此测试服务」,翻译一个短页面,到控制台 → 日志按时间和模型找到对应的新记录,确认无误后再翻译整篇文档:

Custom API interface address(自定义 API 接口地址)
https://api.router.one/v1/chat/completions
immersive-translate-settings
# Immersive Translate → Settings → Translation Services → OpenAI
# 沉浸式翻译 → 设置 → 翻译服务 → OpenAI
Service(服务):  Custom API Key(自定义 API Key), not Pro
APIKEY:  sk-your-router-one-key
Custom API interface address(自定义 API 接口地址), works in every version:
  https://api.router.one/v1/chat/completions
Set up more models(设置更多模型):  -all,+anthropic/claude-haiku-4.5,+deepseek-v4-flash
Model(模型):  pick one of the IDs you added, then click Verify service(点此测试服务)

地址怎么填:完整地址、/v1 还是只填主机名

沉浸式翻译会把你填的内容改写成实际的请求地址,而这条规则在不同版本间有变化。Chrome 应用商店分发的是 1.33.3(Edge 加载项商店目前是 1.33.1),1.33.3 几乎怎么填都能补全;Firefox 附加组件商店目前仍分发 1.30.2,对只填主机名的写法更严格。填完整地址,就不用管版本。以 /responses 结尾的地址会保留这个路径,而 Router One 的 /v1/responses 只服务 GPT 系列、DeepSeek ID 与 Grok 对话模型,所以请保持 /chat/completions。

地址怎么填:完整地址、/v1 还是只填主机名
你填写的1.33.3(Chrome)1.30.2(Firefox 附加组件商店)结论
https://api.router.one/v1/chat/completions原样使用原样使用推荐:所有版本通用
https://api.router.one/v1自动拼上 /chat/completions自动拼上 /chat/completions1.30.2 及以后可用
https://api.router.one补全为 /v1/chat/completions变成 /chat/completions:HTTP 404,提示加上 /v1不要这样填

用「设置更多模型」添加目录里的模型名称

OpenAI 服务内置的模型列表是 OpenAI 自己的名称,不带厂商前缀,比如 gpt-5.5、gpt-5.4-mini,所以要自己添加目录里的精确 ID。「设置更多模型」接受逗号分隔的列表:直接写名称就是添加(前面加 + 效果相同),-名称 隐藏一个内置名称,-all 隐藏全部内置名称,名称=显示名 可以给列表里已有的名称换一个好认的标签。例如 -all,+anthropic/claude-haiku-4.5,+deepseek-v4-flash,+google/gemini-3.1-flash-lite 只保留这三个。也可以在「输入自定义模型名称」里直接填一个 ID。ID 必须与 /models 完全一致,因为它会原样作为 model 字段发送,不认识的 ID 会被拒绝。当前单价在各模型详情页;翻译会让单价乘上大量 tokens,选之前先比较。

一个页面会发多少请求,以及怎么避开限流

OpenAI 服务每次请求最多发送 4 个段落(「每次请求最大段落数」),按官方文档,默认每秒最多 10 个请求,所以一篇长文章会在控制台 → 日志里产生几十条请求,每条按各自的输入和输出 tokens 计费。译文默认在本地缓存 30 天,重新打开已经翻译过的页面,可能一个新请求都不会发。频率相关的设置在「展开更多自定义选项」里:「每秒最大请求数」「每分钟最大请求数」「每次请求最大文本长度」「每次请求最大段落数」。Router One 对每把 Key 和每个账户都有默认的请求数与 token 限额。突发请求超过其中之一时,会返回 429,错误码是 RATE_LIMIT_EXCEEDED 或 TOKEN_QUOTA_EXCEEDED,并用 X-RateLimit-Scope 响应头标明是哪一项限额,对应的段落就会翻译失败。调低「每秒最大请求数」(官方文档建议翻译电子书时调到每秒 5 个左右)或「每分钟最大请求数」即可。APIKEY 也可以填多个用英文逗号分隔的 Key,文档称之为负载均衡,但同一个 Router One 账户下的多把 Key 仍共享账户限额。如果日常用量确实需要更高,Key 和账户的限额可以申请调高:发邮件到 support@router.one,写明账户 ID、Key 的名称和预计峰值。

选一个适合批量翻译的模型,以及质量校验

翻译会把同一类请求发上成千上万次,所以小而快、不带推理的对话模型通常最划算。可以考虑 anthropic/claude-haiku-4.5、deepseek-v4-flash、deepseek-v4.1-flash、google/gemini-3.1-flash-lite、google/gemini-3.7-flash 和 openai/gpt-5.6-terra。避开每次请求都会思考的 ID:anthropic/claude-opus-5.5 始终开启自适应思考,以 -thinking 结尾的 ID 默认开启思考,这样每一批都会额外按输出单价计费思考 tokens。沉浸式翻译 1.33.3 自己会调整一部分 GPT 请求:对匹配 gpt-5.6 及其 Sol、Terra、Luna 变体,以及 gpt-5.1、gpt-5.2、gpt-5.4、gpt-5.5 的名称,它会把 reasoning_effort 设为 none 并去掉 temperature,而且这个匹配也会命中 openai/gpt-5.6-terra、azure/gpt-5.6-sol 这类带前缀的 ID。每次拿到结果后,扩展会比较输出与输入的 token 数;比例超出范围(默认 0.21 到 8)时,它会丢弃这份译文,改用其他翻译方案。设置 strictPrompt: true 可以跳过这项校验,文档只建议在自定义提示词不是单纯翻译时这样做。

高级设置:temperature、超时、频率与输出上限

上面这些也都可以在 开发者设置 → Edit Full User Config 里用 JSON 设置,写在 translationServices.openai 下:temperature、requestTimeout(毫秒,AI 服务默认 101000)、limit(每秒请求数)、maxTextGroupLengthPerRequest、maxTextLengthPerRequest、用于附加请求字段的 bodyConfigs 和 headerConfigs、按模型覆盖的 modelsOverrides、strictPrompt 和 langOverrides。请求路径保存在 baseUrlApiPath 里,默认是 /chat/completions,这也是只填 base URL 能用的原因。有一个字段值得注意:当主机是 OpenAI 或 Azure 的,或者模型名称最后一段以 gpt-5、o1、o3、o4 开头时(openai/gpt-5.6-terra 也算),1.33.3 会把输出上限作为 max_completion_tokens 发送。Router One 的 Chat Completions 参考文档写的输出上限字段是 max_tokens,所以要限制输出长度,就在 bodyConfigs 里设置 max_tokens,之后扩展对所有模型都会用这个字段。编辑前先备份配置,JSON 写错时扩展会忽略整段配置:

Edit Full User Config
{
  "translationServices": {
    "openai": {
      "temperature": 0.2,
      "requestTimeout": 60000,
      "limit": 5,
      "bodyConfigs": { "max_tokens": 2048 }
    }
  }
}

沉浸式翻译该填哪个模型 ID?

从 /models 页复制精确的模型 ID,保留大小写、连字符和版本后缀,不要用展示名称代替。打开该模型的详情页,核对支持的 API 端点、上下文窗口和工具调用等能力,再与沉浸式翻译当前选择的 provider 和功能对应。模型出现在目录里,不等于当前客户端能调用它的所有功能。建议为每个客户端或应用单独建 API Key,并设置 maxSpend 消费上限。

沉浸式翻译用的是哪种 API 协议?

OpenAI 兼容描述的是接口格式,不能据此推断 Chat Completions(/v1/chat/completions)、Responses(/v1/responses)和 Anthropic Messages(/v1/messages)可以互换。先核对工具当前版本、provider 配置和实际请求路径,再查模型详情与 API 兼容性事实页。一次普通对话成功,也不能证明服务端工具、历史状态或文件编辑功能都受支持。

在请求日志里核对沉浸式翻译的调用

先在沉浸式翻译发出一次简单文本请求,再到控制台 → 日志按时间、模型和 request_id 找到这条记录,核对 Token、花费、总耗时和状态码。成功后再分别验证流式输出、工具调用和多轮历史。失败时保留实际请求路径、完整错误消息及 request_id;没有对应日志时,先查客户端配置和网络,不能仅凭客户端报错认定是网关或上游故障。

常见问题

「自定义 API 接口地址」到底填 base URL 还是完整地址?

当前版本两种都行,而完整地址在所有版本都行。从 1.30.2 起,这个字段接受以 /v1 结尾的 base URL,扩展会自己拼上 /chat/completions;1.33.3 甚至能把只填的主机名补全。Firefox 附加组件商店的版本(1.30.2)会把只填的主机名拼成 /chat/completions,Router One 对此返回带提示的 404。直接填 https://api.router.one/v1/chat/completions,就不用管这些差别。翻译一开始就报错时,先检查这个字段,再核对模型 ID 与 /models 是否一致。

翻译一个网页,为什么日志里出现几十条请求?

因为扩展会把页面拆成段落、分小批发送,默认每次请求最多 4 个段落,而且随着你往下滚动还会继续翻译。每一批都是一个单独计费的请求,有各自的 tokens。这是正常现象;想知道一个页面花了多少,就在控制台 → 日志里按给扩展用的那把 Key 筛选,把那段时间的记录加起来。之前翻译过的页面默认会在 30 天内从本地缓存读取,不产生费用。

沉浸式翻译报 429 怎么办?

让扩展慢下来。它默认每秒最多可以发 10 个请求,一篇长网页或一本电子书就可能超过 Key 或账户的默认限额。429 会带 RATE_LIMIT_EXCEEDED 或 TOKEN_QUOTA_EXCEEDED 错误码,以及标明是哪一项限额的 X-RateLimit-Scope 响应头。把「每秒最大请求数」调到 5 左右(官方文档对电子书的建议),或者设置「每分钟最大请求数」。同一账户下的多把 Key 不会提高账户限额;如果长期需要更高的用量,发邮件到 support@router.one 申请调高。

翻译用哪个模型更划算?

通常是小而快、不开扩展思考的对话模型,因为翻译会发大量短请求。可以先从 anthropic/claude-haiku-4.5、deepseek-v4-flash 或 google/gemini-3.1-flash-lite 开始,用其中两三个翻译同一个页面,再对照控制台 → 日志里这些请求的费用比较译文质量。批量翻译别用 anthropic/claude-opus-5.5 和以 -thinking 结尾的 ID:它们每次请求都会思考,而思考按输出计费。当前每 token 单价见各模型详情页。

需要开通沉浸式翻译会员吗?

这种配置不需要。扩展的 OpenAI 服务有两种用法:Pro,用沉浸式翻译自己的通道;自定义 API Key,用你自己的 Key;官方文档把它们列为二选一。选「自定义 API Key」后,请求发往你填写的地址,由 Router One 按请求计费。

内置 OpenAI 服务和「添加自定义翻译服务」选哪个?

两种都能用同样的值接入。内置 OpenAI 服务最快:切换到「自定义 API Key」,按上文填好即可。「添加自定义翻译服务」会新建一个单独的条目,有自己的名字,适合想让 Router One 和其他服务并存,或者用两个条目分别对应不同模型。填写「自定义翻译服务名称」(比如 Router One)、同样的「自定义 API 接口地址」、你的 Key 和模型名称,再点「点此测试服务」。自定义服务的地址规则与内置服务相同。

译文偶尔被丢弃、换成了别的翻译?

这是扩展的质量校验。它比较输出与输入的 token 数,比例超出范围(默认 0.21 到 8)时,就把这份结果视为无效,改用其他翻译方案。提示词要求的不只是翻译、或者模型喜欢加说明时最容易出现。换一个只输出译文的模型;如果你的自定义提示词本来就不是单纯翻译,可以在 Edit Full User Config 里给 openai 服务设置 strictPrompt: true。

怎么设置 temperature、超时或输出上限?

在 开发者设置 → Edit Full User Config 里,把它们加到 translationServices.openai 下,例如 temperature 设为 0.2、requestTimeout 设为 60000,再在 bodyConfigs 里写 max_tokens。Router One 的 Chat Completions 参考文档写的输出上限字段是 max_tokens,bodyConfigs 里有了 max_tokens 之后,扩展对所有模型都会用这个字段。改之前先备份:JSON 写错会让扩展忽略整段配置。

沉浸式翻译能通过网关用哪些模型?

选用当前目录中同时支持沉浸式翻译所用端点和所需功能的模型。精确 ID、当前单价与能力以 /models 及模型详情为准;不要仅按 GPT、Claude 等系列名判断兼容性。客户端能列出模型,只说明它从自身配置或 GET /v1/models 读到了这个 ID,仍需验证实际调用。

能列出模型,但调用报 400 或 404,怎么办?

先记录实际请求路径和错误消息,再核对精确模型 ID。400 可能是参数、工具类型或模型与端点不匹配;404 可能是请求路径或资源不存在,不能直接判定模型下线。若错误提示 must be called via,按它指明的端点调整客户端 provider,或换用支持当前端点的模型。不要在所有工具里统一增删 /v1 或 /chat/completions。

中国大陆能直连吗?

能。网关在大陆可直连、无需 VPN,配置与全球环境完全一致。

报 401/402/403/429 怎么排查?

先到控制台 → 日志核对这条请求及错误消息。401 查 Key 是否传入和有效;402 查钱包余额与 maxSpend;403 查 Key 权限和访问限制;429 查请求频率、token 限额及上游限流,按错误来源处理。保留 request_id,再按错误码速查页逐项排查。