换到 OpenAI 兼容 API:要改哪 3 处、要测哪 4 项
LanoX 团队|文中事实于 2026 年 11 月 3 日(迪拜时间)核对|以 LanoX 为例,换别的 OpenAI 兼容网关也按同样的思路查。
项目已经在用 OpenAI SDK,换到 OpenAI 兼容 API,一般只改 3 处:服务地址(base URL)、API Key、模型 ID,SDK 通常不用换。改完先别急着上生产,流式输出、工具调用、图片输入、结构化输出这 4 项要逐个测,因为兼容接口对它们的支持不一定一样。
LanoX 文档 FAQ 03 原话:「如果项目使用的接口格式在 LanoX 已支持,通常可以沿用相应 SDK,并修改服务地址、API Key 和模型 ID。迁移后仍要测试流式输出、工具调用、图片输入等已用功能;Chat Completions、Responses、Claude Messages 的兼容性需要分别确认。」(2026-11-03 核对)
要改的 3 处是什么?
| 设置 | 怎么改 | LanoX 的值 | 出处 |
|---|---|---|---|
| 服务地址 | SDK 指向新网关 | OpenAI 兼容客户端用 https://api.lanox.ai/v1 | 文档 |
| API Key | 换成新平台的 Key,按 Bearer Token 传 | 在控制台创建,放环境变量里 | 文档 |
| 模型 ID | 用新平台返回的准确 ID | 文档示例是 gpt-5.6-sol;你的以 GET /v1/models 为准 | 文档 |
2026-11-03 核对。messages、tools、temperature 这些请求内容一般不用动。
代码具体改哪几行?
下面是 LanoX 首页的 Python 示例,2026-11-03 原样复制。和标准 OpenAI 客户端比,只有 base_url、api_key 这 2 行不一样,模型 ID 按你账户里能用的填。
from openai import OpenAI
client = OpenAI(
base_url="https://api.lanox.ai/v1", # 只改这一行
api_key="<LANOX_API_KEY>",
)
response = client.chat.completions.create(
model="gpt-5.6-sol",
messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)首页下面一句:「Base URL 指向 LanoX,填入你的 API Key,其余 OpenAI 兼容请求结构保持不变。」实际项目里 Key 从环境变量读,别写进代码仓库。
你的项目用的是哪种接口格式?
「OpenAI 兼容」不止 1 种格式。换之前先看清代码调的是哪一种,网关可能支持这种、不支持那种。
| 格式 | 是什么 | LanoX 端点(2026-11-03 核对) |
|---|---|---|
| Chat Completions | 大多数 OpenAI SDK 代码用的 messages 请求 | POST /v1/chat/completions |
| Responses | OpenAI 较新的请求格式,Codex 用它 | POST /v1/responses |
| Claude Messages | Anthropic 的请求格式,Claude Code 用它 | 见文档的 Claude 部分 |
| 原生接口 | 厂商自己的 API,带专有参数 | 和兼容接口不是一回事(见下) |
文档写明:「文本接口支持 OpenAI Compatible 与 Claude Messages」。
原生和兼容的区别,文档 FAQ 04 原话:「模型原生接口由厂商定义,可提供其专有参数和功能;兼容接口提供约定的请求与响应格式,方便复用客户端。两者对流式输出、工具调用、结构化输出和多模态输入的支持范围可能不同,需要按业务用到的能力逐项核对。」(2026-11-03 核对)
base URL 到底带不带 /v1?
看客户端,这是最常见的 1 个配置错误。LanoX 的情况(2026-11-03 核对):
| 客户端 | 服务地址 | 注意 | 配置指南 |
|---|---|---|---|
| OpenAI SDK / Codex | https://api.lanox.ai/v1 | Codex 上游格式「选择 Responses(原生),不要选择 Chat Completions」 | Codex 指南 |
| Claude Code | https://api.lanox.ai | 「不要带 /v1,也不要以 / 结尾。」 | Claude Code 指南 |
客户端一步步怎么配,看上面的指南。本文只讲该查什么,不讲配置界面。
准确的模型 ID 从哪拿?
写进代码之前,先用你的 Key 调一次 GET /v1/models。文档说它「获取当前 API Key 可访问的模型列表」,并且「返回内容按 API Key 权限过滤;字段不再套 data/code/codeMsg 业务响应壳。」(2026-11-03 核对)文档列了 13 个返回参数,常用的是这几个:
| 字段 | 看什么 |
|---|---|
id | 要传的模型 ID,比如 gpt-5.6-sol |
owned_by / provider | 模型供应商 |
supported_endpoint_types | 这个模型接受哪些格式:chat.completions、responses、messages |
display_name | 展示名称 |
pricing_mode / input_mode | 计价模式、输入模式;模型配置未提供时省略 |
rpm_limit / tpm_limit | 每分钟请求限制、每分钟 Token 限制;仅配置为正整数时返回 |
文档示例里 rpm_limit 是 60、tpm_limit 是 100000,这是示例值,不是承诺的额度,以你自己 Key 的返回为准。每个模型都要看 supported_endpoint_types,别默认所有模型都支持所有格式。价格看模型与价格页,2026-11-03 列了 58 个文本模型。
第一次测试请求怎么发?
文档给的 Chat Completions 示例带了一个工具定义(2026-11-03 原样复制;先在终端设好 API_KEY 环境变量):
curl -X POST "https://api.lanox.ai/v1/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"messages": [{"role": "user", "content": [{"type": "text", "text": "查询上海天气"}]}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询城市天气",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
"additionalProperties": false
},
"strict": true
}
}],
"tool_choice": "auto",
"temperature": 0.2,
"max_completion_tokens": 300,
"stream": false
}'示例把输出上限设成 300 个 token,测试花不了多少钱。
换完必须测哪 4 项?
业务用到哪项就测哪项,而且要用生产上真正要跑的那个模型 ID 测。我们没有公开逐模型的功能支持表,测出来的结果就是答案。
| 功能 | 看什么 |
|---|---|
| 流式输出 | 分块按顺序到达,结束正常 |
| 工具调用 | 模型返回合法的工具调用,也能接住工具结果 |
| 图片输入 | 你代码发的图片格式能被接受 |
| 结构化输出 | 每次返回都符合你的 JSON Schema |
每次测试还要对 2 份记录:返回里的模型和你请求的一致;控制台里的用量和扣费和实际收发一致。文档写的是「在控制台中检查请求模型、实际结果、使用记录和最终费用」,一共 4 项。
什么项目不适合这样换?
- 项目建在某家厂商的原生 SDK 上。 文档列的文本格式是 2 种:OpenAI Compatible 和 Claude Messages。其他原生格式要改代码,不是改 3 处就行。
- 业务依赖厂商专有参数。 文档 FAQ 04 说原生接口可能有兼容接口没有的功能。
- 一定要先看到公开功能支持表才肯测的。 2026-11-03 我们没找到可以引用的,这 4 项只能自己测。
- 生产系统没有测试窗口的。 先在测试环境换。
常见问题
- 换 OpenAI 兼容 API 要换 SDK 吗?
- 一般不用。改服务地址、API Key、模型 ID,再把用到的功能测一遍。见 LanoX 文档。
- base URL 要不要带 /v1?
- LanoX 上 OpenAI 兼容客户端和 Codex 带:
https://api.lanox.ai/v1。Claude Code 不带:https://api.lanox.ai,结尾也不加 /。 - 一个 Key 能调多家的模型吗?
- 在 LanoX,
GET /v1/models会列出你这个 Key 能用的所有模型,跨供应商。调用前逐个看supported_endpoint_types。怎么挑多模型平台,见多模型 API 平台怎么比(待上线)。 - OpenAI 兼容就是完全兼容吗?
- 不一定。流式、工具调用、结构化输出、多模态输入都可能有差别,逐项测。
资料来源
- LanoX 文档核对于 2026-11-03
- LanoX 首页核对于 2026-11-03
- Codex 指南核对于 2026-11-03
- Claude Code 指南核对于 2026-11-03
- 模型与价格核对于 2026-11-03