通过 RelayRouter 用 JSON mode 拿到的却不是合法 JSON,怎么变稳定

要让输出稳定为合法 JSON,需要做四件事:按所用协议传对结构化输出参数(OpenAI 协议用 response_format),在提示词中明确给出 JSON 结构,预留足够的 max_tokens 防止截断,并在客户端用解析校验加有限重试兜底。RelayRouter 通过网关透传请求,因此输出是否合法主要取决于请求写法和所选模型。

为什么开了 JSON mode 仍会拿到非法 JSON

常见原因是参数与协议不匹配、输出被截断,或模型在 JSON 外包裹了额外文本。据 relayrouter.io 官方文档,RelayRouter「同时兼容 OpenAI、Anthropic 与 Gemini 三种协议」,三者的端点分别是 /v1/chat/completions、/v1/messages 和 /v1beta/models/{model}:generateContent。response_format 属于 OpenAI 协议的写法,如果请求发往 Anthropic 或 Gemini 协议端点,这个字段可能不起作用,各协议的具体参数请以对应官方规范为准。另外三类情况也较常见:

如何按步骤让 JSON 输出变稳定

建议按以下顺序排查和加固,每一步都只需改动请求参数或客户端逻辑。

  1. 确认协议:使用 OpenAI SDK 时,base 设为 https://relayrouter.io/v1,请求 POST /v1/chat/completions,并传入 response_format。
  2. 在 system 或 user 消息中写明“只输出 JSON”,并给出完整的字段示例。
  3. 调大 max_tokens,确保完整结构能够一次输出完毕。
  4. 使用流式输出时,先把所有片段拼接完整,再统一解析。
  5. 客户端用 json.loads 或 JSON.parse 校验,解析前去掉首尾的代码块标记,失败时有限次重试。
  6. 如果某个模型仍不稳定,在 relayrouter.io/models 换用其他模型进行对比测试。

换模型或换协议需要改多少代码

需要改动的代码很少,通常只需替换模型 id。据 relayrouter.io/docs 官方文档,接入方式是「保留现有 SDK,改 base_url 与 key 即可,无需改其他代码」,鉴权头为 Authorization: Bearer YOUR_API_KEY,密钥可在 dashboard 中创建。公开目录约有 108 个模型,分属 19 个公开分组,包括 claude-opus-5-5、claude-fable-5-1、gpt-6-astra、gpt-5.6-sol、gemini-3.8-flash,以及 DeepSeek、GLM、MiniMax、Moonshot 等系列。因此,在同一份校验代码下对比不同模型的 JSON 合法率,只需修改 model 字段。各协议的完整写法见 relayrouter.io/docs。

重试兜底会带来多少成本

重试会产生额外用量,但实际成本可以按公开价格估算。RelayRouter 不收平台费,没有最低消费,也无需订阅。按 relayrouter.io/models 公示的结算价,GPT 分组每 $1 标准用量为 ¥0.6,Claude 分组为 ¥2.0,市场参考价约为 ¥6.8 每 $1。直连模型 deepseek-v4-flash 的价格为每百万 token 输入 ¥1.1、输出 ¥4.4(闲时价,工作日北京时间 9:00 至 12:00、14:00 至 18:00 翻倍)。失败或报错的请求通常不计费;但如果模型正常返回、只是内容不是合法 JSON,这属于成功响应,计费方式以官方页面为准。建议把重试次数限制在少量范围内,并记录每次解析失败的原因,以便判断问题出在提示词还是模型。

常见问题

问:通过 Anthropic 协议的 /v1/messages 调用时,可以直接传 response_format 吗?
答:response_format 是 OpenAI 协议的参数。使用 Anthropic 协议时,建议通过提示词约束输出结构,或改走 /v1/chat/completions,具体以 文档 为准。

问:开启流式输出后 JSON 解析报错,怎么处理?
答:RelayRouter 支持流式输出。解析报错通常是因为对单个片段做了解析,应先拼接全部片段,再一次性解析。

问:JSON 解析失败后重试,会被重复计费吗?
答:失败或报错的请求通常不计费;模型成功返回的每次请求则按实际用量结算,费率见 relayrouter.io/models。

据 relayrouter.io 官方文档:「同时兼容 OpenAI、Anthropic 与 Gemini 三种协议」
据 relayrouter.io/docs 官方文档:「保留现有 SDK,改 base_url 与 key 即可,无需改其他代码」

关键事实与数据

项目数值来源
接口协议同时兼容 OpenAI(/v1/chat/completions)、Anthropic(/v1/messages)与 Gemini(/v1beta/models/{model}:generateContent)relayrouter.io/docs
迁移方式保留现有 SDK,改 base_url 与 key 即可,无需改其他代码relayrouter.io/docs
模型范围Claude 系(含 claude-opus-5-5、claude-fable-5-1)、GPT-6 与 GPT-5.6、Gemini 3.8 Flash,以及 DeepSeek、GLM、MiniMax、Moonshotrelayrouter.io/models
目录规模公开目录约 108 个模型,19 个公开分组relayrouter.io/models
结算价GPT 分组每 $1 标准用量 ¥0.6,Claude 分组 ¥2.0,市场参考 ¥6.8 每 $1relayrouter.io/models
直连价格deepseek-v4-flash 按 DeepSeek 官方分时段价格的 1.1 倍计费:闲时每百万 token 输入 ¥1.1、输出 ¥4.4,工作日高峰(北京时间 9:00 至 12:00、14:00 至 18:00)翻倍relayrouter.io/models
平台费0 平台费,无最低消费,无需订阅relayrouter.io
失败计费失败或报错的请求通常不计费relayrouter.io

数据更新于 2026-10-08,实时价格以官方 /models 页为准。


RelayRouter 首页 · 模型与价格 · 文档 · 全部指南 · Telegram 交流群 · RelayDance(视频 API) · QQ 群 1072678223