依据契约选择,而不是只看厂商
Section titled “依据契约选择,而不是只看厂商”网关提供 LLM 原生协议。通过 /v1/models 查询公开模型 ID、协议标签与声明的能力;该接口不提供端点列表。选择 SDK 或修改 base URL 前,应查阅目标模型的当前指南,确认支持的端点与请求参数,不要仅凭协议标签推断端点兼容性。只替换模型字符串,不会把 Chat Completions 请求转换成 Claude 或 Gemini 请求。
| 协议 | 请求端点 | 认证 | 输入结构 |
|---|---|---|---|
| OpenAI Chat Completions | /v1/chat/completions | Authorization: Bearer API_KEY | model、messages |
| OpenAI Responses | /v1/responses | Authorization: Bearer API_KEY | model、input |
| Claude Messages | /v1/messages | x-api-key: API_KEY、anthropic-version: 2023-06-01 | model、messages、max_tokens |
| Gemini content | /v1beta/models/{model}:generateContent | x-goog-api-key: API_KEY | 包含 parts 的 contents |
表格说明网关端点类型,并不表示每个模型都支持全部端点。使用模型示例中的平台域名,不要把平台密钥发送到上游厂商域名。
请求和响应要一起适配
Section titled “请求和响应要一起适配”Chat Completions 的文本通常位于 choices[].message;Claude 返回内容块,Gemini 返回包含 parts 的 candidates,Responses 则返回 output items。保留原生 usage 与结束原因,不要将它们强行转换成媒体任务结构。
工具调用是交给应用执行的结构化指令,不代表工具已经执行。执行前仍需应用自己的参数校验和权限控制。工具、结构化输出、图片输入与推理能力仅在准确路由明确支持时开启;未声明能力不等于承诺支持。
- 记录现有端点、模型 ID、角色结构、输出限制字段和结果解析方式。
- 选择可用目标路由,阅读对应模型指南。
- 同时适配请求与响应,首次请求不带不必要的可选参数。
- 用已获批准的小样本覆盖空结果、拒绝、截断与错误。
- 按评测工作表比较任务质量和总用量,再决定是否切换生产流量。
部分 SDK 会自动添加 /v1、默认重试或选择其他端点。检查最终 URL 与重试配置,但不要打印密钥。SDK 初始化成功并不说明协议兼容。
首次请求提供最小 Chat Completions 示例;Claude Opus 5.5展示 Messages,Gemini 3.6 Flash展示原生内容请求。执行前再次确认可用性。不同协议的流式事件也不同,继续阅读流式处理。