跳到主要内容

厂商调用差异

所有厂商共用同一个 API Key、同一个 Base URL,鉴权和路径见认证与 Base URL

本页只讲各家真正不一样的地方——协议支持范围、特殊参数限制、思考模式差异。没提到的说明按通用方式调用即可。

协议支持一览

厂商Chat CompletionsAnthropic MessagesResponses APIGemini 原生
OpenAI
Anthropic
Google
DeepSeek
智谱 GLM
Kimi
MiniMax
Responses API 只有 GPT 系可用

非 GPT 系模型调 /v1/responses 会返回 not implemented。用 /v1/chat/completions/v1/messages 代替。

不能因为某模型的 /v1/chat/completions 能用就假定它支持 Responses——这是 Codex 接入时最容易踩的坑。

所有厂商的共同约束

这几条对所有非 OpenAI 厂商都适用,先看这里能省掉大部分排查:

不支持 developer 角色 — OpenAI 兼容入口只认 system / user / assistant 三种 role。

Anthropic 通道的 system 走顶层字段 — 不要塞进 messages 数组,用顶层 system 字段传。

多轮对话不要回传思考内容 — 拼接历史时只回传上一轮的 content(OpenAI 通道)或 text 块(Anthropic 通道)。把 reasoning_contentthinking 块塞回 messages 会直接报参数错误。

思考链的字段位置 — OpenAI 通道在 choices[].message.reasoning_content,Anthropic 通道在 content 数组的 thinking 块里。

DeepSeek

思考模式只有 pro 能用

模型enable_thinking(OpenAI 通道)/ thinking(Anthropic 通道)
deepseek-v4-pro✅ 生效
deepseek-v4-flash❌ 参数被忽略,不返回思考内容

给 flash 传思考参数不会报错,但也不会有思考内容——需要推理链就用 pro。

Kimi

部分模型强制 temperature=1

kimi-k3 实测要求 temperature=1,传其他值会报 400。

遇到参数错误先把 temperature 设回 1。

长上下文场景:单次请求超过 200K token 时建议开 stream: true,能明显降低首字延迟。

MiniMax

模型名大小写敏感

必须严格按模型列表的写法:MiniMax-M2.7MiniMax-M3

写成 minimax-m2.7 会被直接拒绝。这是 MiniMax 唯一一家用大写字母开头的厂商,最容易写错。

智谱 GLM

共同约束外无特殊限制,按标准 OpenAI 兼容方式调用即可。

Anthropic

原生支持 /v1/messages。Claude 模型有工具 schema 复杂度限制——请求里工具定义过多(约 12 个以上复杂工具)会返回 HTTP 400。

在 Agent 类工具中使用 Claude 时需要精简工具集,具体做法见 Hermes 的 Claude Profile 方案

Google

除通用接口外支持 Gemini 原生格式 /v1beta/models/{model}:generateContent,模型名写在 URL 路径里。

鉴权两种都行:请求头 x-goog-api-key,或查询参数 ?key=

必填 contents 字段。常用参数放在 generationConfig 里:maxOutputTokenstemperaturetopP

OpenAI

功能最全的一家,Chat Completions、Responses、图片生成 / 编辑都支持。

图片相关:

接口说明
/v1/images/generations图片生成,用 gpt-image-2
/v1/images/edits图片编辑,需上传有效图片文件

图片编辑的 mask 参数和 stream=true 当前环境实测不稳定,暂不建议使用。

遇到 400 怎么办

按这个顺序排:

  1. 模型名大小写对不对(尤其 MiniMax)
  2. 是不是给不支持的模型调了 Responses API
  3. temperature 有没有踩到模型的固定值要求(Kimi)
  4. 多轮历史里是不是混进了 reasoning_content / thinking
  5. 有没有用 developer 角色
  6. Claude 场景下工具定义是不是太多

错误响应体通常会说明具体哪个参数有问题,按提示改即可。更多见常见问题