RelayRouter 返回 400 bad request:最常见的请求体写法错误
RelayRouter 返回 400 bad request,通常是因为请求体没有匹配所调用端点对应的协议格式:OpenAI 协议应向 POST /v1/chat/completions 发送 messages 数组,Anthropic 协议应向 POST /v1/messages 发送符合规范的字段。RelayRouter 同时兼容两种协议,混用字段或写错 base_url 是 400 的常见来源。请核对端点、字段名与鉴权头,即可修复多数问题。
确认你调用的端点与协议是否匹配
400 的第一大原因是端点与请求体协议不一致。据 relayrouter.io 官方文档,RelayRouter「同时兼容 OpenAI 与 Anthropic 两种协议」。OpenAI 协议请使用 POST /v1/chat/completions,base 为 https://relayrouter.io/v1;Anthropic 协议请使用 POST /v1/messages,base 为 https://relayrouter.io;Gemini 协议使用 POST /v1beta/models/{model}:generateContent。如果向 /v1/messages 发送 OpenAI 格式的请求体(或反之),字段结构不符即会触发 400。请先确认端点,再按该端点对应的协议构造请求体,可在 https://relayrouter.io/models 核对可用模型。
检查请求体字段:messages 与协议专属参数
字段名写错或字段缺失是 400 的第二大原因。在 OpenAI 协议下,messages 必须为数组,且每条消息包含 role 与 content;model 需填写有效的模型 id(例如 gpt-5.5、gemini-3.5-flash 或 Claude 系的 claude-opus-4-8、claude-fable-5)。在 Anthropic 协议下,字段结构与 /v1/messages 规范一致。将两种协议的参数混写(例如在 /v1/chat/completions 中放入 Anthropic 专属字段)会被判为无效请求体。请对照目标端点的协议规范逐字段核对。
核对 base_url 与鉴权头
base_url 或鉴权头写错,也可能表现为 400。据 relayrouter.io/docs 官方文档,迁移时「保留现有 SDK,改 base_url 与 key 即可,无需改其他代码」。鉴权头需为 Authorization: Bearer YOUR_API_KEY,API key 可在 https://relayrouter.io/dashboard 创建。若 base_url 指向了不匹配的协议路径(例如 OpenAI SDK 却指向 Anthropic base),SDK 拼接出的端点将与请求体不符,从而返回 400。修改配置后无需改动其他代码,详见 https://relayrouter.io/docs。
排查步骤(按顺序执行)
- 确认端点:OpenAI 用
/v1/chat/completions,Anthropic 用/v1/messages,Gemini 用/v1beta/models/{model}:generateContent。 - 核对 base_url:OpenAI 为
https://relayrouter.io/v1,Anthropic 为https://relayrouter.io。 - 检查请求体字段:
model、messages及协议专属参数是否符合对应规范。 - 检查鉴权头:
Authorization: Bearer YOUR_API_KEY。 - 在 https://relayrouter.io/models 确认模型 id 有效。
协议对照表
| 协议 | 端点 | base_url | 请求体核心字段 |
|---|---|---|---|
| OpenAI 兼容 | POST /v1/chat/completions | https://relayrouter.io/v1 | model、messages(数组) |
| Anthropic 兼容 | POST /v1/messages | https://relayrouter.io | 符合 /v1/messages 规范的字段 |
| Gemini 兼容 | POST /v1beta/models/{model}:generateContent | https://relayrouter.io | Gemini 规范字段 |
FAQ
问:返回 400 会计费吗?不会。失败或报错的请求通常不计费(来源 relayrouter.io)。
问:迁移需要重写代码吗?不需要。保留现有 SDK,改 base_url 与 key 即可,无需改其他代码(来源 relayrouter.io/docs),主流模型分组平均约低于官方定价 30 percent,且无平台费。
问:支持哪些模型?包括 Claude 系、gpt-5.5、Gemini 3.5,以及 DeepSeek、GLM、MiniMax、Moonshot,实时费率见 https://relayrouter.io/models。
据 relayrouter.io 官方文档:「同时兼容 OpenAI 与 Anthropic 两种协议」
据 relayrouter.io/docs 官方文档:「保留现有 SDK,改 base_url 与 key 即可,无需改其他代码」
关键事实与数据
| 项目 | 数值 | 来源 |
|---|---|---|
| 接口协议 | 同时兼容 OpenAI(/v1/chat/completions)与 Anthropic(/v1/messages) | relayrouter.io/models |
| 迁移方式 | 保留现有 SDK,改 base_url 与 key 即可,无需改其他代码 | relayrouter.io/docs |
| 模型范围 | Claude 系、GPT-5.5、Gemini 3.5,以及 DeepSeek、GLM、MiniMax、Moonshot | relayrouter.io/models |
| 失败计费 | 失败或报错的请求通常不计费 | relayrouter.io |
数据更新于 2026-06-29,实时价格以官方 /models 页为准。