上周三我在给一个文档摘要服务升级模型,把目标定在 gpt-5.6-luna,结果踩了两个坑:一是 luna 系列的 endpoint 路由与 gpt-5.5 有差异,直接复用旧配置会拿到 404;二是 reasoning_summary 字段如果不显式设置,长文本响应可能在中途停止------没有明确报错,finish_reason 为 null。这篇文章把完整排查过程和各接入路径(SDK / 聚合网关 / Cline / Claude Code 配置)都写清楚,供参考。
这篇适合谁
- 已经在用 gpt-5.5 或 gpt-5.4 系列,想升级到 gpt-5.6-luna 的后端/全栈开发者
- 用 Cline / Claude Code / Cherry Studio 等工具接 OpenAI 兼容 API 的独立开发者
- 遇到"模型调用返回 404"或"响应中途停止但无报错"的开发者
- 想了解 gpt-5.6-luna / gpt-5.6-sol / gpt-5.6-terra 三个子型号区别的同学
整体流程
- 确认 SDK 版本和 Node.js 版本满足最低要求
- 修改 model 参数,注意 endpoint 路由差异
- 在请求体里显式设置
reasoning_summary字段 - 验证响应完整性------跑一个长文本 case 确认没有截断
- 按你的工具(SDK / Cline / Cherry Studio 等)做对应配置
先说结论
| 坑 | 现象 | 原因 | 修复 |
|---|---|---|---|
| endpoint 路由变更 | 返回 404 model_not_found |
luna 系列部分推理增强功能走 /v1/responses 端点,直接复用旧配置可能路由不对 |
确认调用的是正确端点,或用聚合网关自动路由 |
| reasoning_summary 缺失 | 长文本输出中途停止,finish_reason 为 null | reasoning_summary 字段未显式设置时的具体服务端行为尚无完整官方文档说明(见下文说明) |
请求体加 "reasoning_summary": "detailed" |
第一步:确认 SDK 和运行时版本
gpt-5.6-luna 需要 openai SDK v7.18.0+,而这个版本要求 Node.js >= 22.0.0。在 Node 20.x 上会直接报错:
error: The engine "node" is incompatible with this module.
Expected version ">=22.0.0". Got "20.11.0"
升级 Node 到 22.x,然后更新 SDK:
bash
npm install openai@latest
装完用 npm list openai 确认版本号是 7.18.0+。Python 用户对应 pip install openai --upgrade,版本号对齐到最新即可。
第二步:修改 model 参数 + 注意路由差异
这是第一个坑。原来 gpt-5.5 的调用代码:
python
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": prompt}]
)
直接把 model 换成 gpt-5.6-luna,可能拿到 404:
openai.NotFoundError: 404 The model `gpt-5.6-luna` does not exist
or you do not have access to it.
status: 404, code: 'model_not_found'
关于路由差异的说明: luna 系列的部分推理增强功能(包括 reasoning_summary)属于 OpenAI Responses API(/v1/responses)的能力,而非 Chat Completions API(/v1/chat/completions)的原生能力。具体来说:
- 如果你只需要普通对话,
client.chat.completions.create()配合正确的 model ID 仍然可用 - 如果你需要使用
reasoning_summary等推理相关字段,应当使用client.responses.create()(Responses API),或通过聚合网关让中间层处理路由适配
通过聚合网关调用 ,网关层会自动处理路由适配。OpenRouter 和 ofox.io 都提供 OpenAI 兼容端点,改 base_url 即可接入,以 OpenRouter 为例:
python
from openai import OpenAI
client = OpenAI(
api_key="your-key",
base_url="https://openrouter.ai/api/v1" # 或填写 ofox.io 的兼容端点地址
)
然后正常调用:
python
response = client.chat.completions.create(
model="gpt-5.6-luna",
messages=[{"role": "user", "content": prompt}]
)
如果直连 OpenAI 官方 API 并需要使用 Responses API:
python
response = client.responses.create(
model="gpt-5.6-luna",
input=[{"role": "user", "content": prompt}],
reasoning={"summary": "detailed"}
)
注意:client.responses.create() 是 Responses API 的调用方式,与 Chat Completions API 的参数结构有所不同,请以 OpenAI 官方 Responses API 文档为准。
第三步:设置 reasoning_summary 防止响应中途停止
这是第二个坑,因为它不报错,排查起来比较费时间。
给一份较长的技术文档做摘要时,输出在中途停止,finish_reason 为 null,没有任何错误信息。
关于 reasoning_summary 字段的说明:
reasoning_summary 是 OpenAI Responses API 的专属参数,用于控制模型推理过程摘要的输出方式。该字段在 Responses API(client.responses.create())中有效;如果你通过 client.chat.completions.create() 传入该字段,可能会被忽略,不保证生效。
关于"默认值 auto 导致服务端静默截断、finish_reason 为 null"的具体因果关系,目前没有找到官方文档的明确说明。上述现象(输出中途停止、finish_reason 为 null)是实际观察到的结果,但触发原因可能不止一种,此处将其与 reasoning_summary 关联是基于排查过程中的推断,不排除还有其他原因。如果你遇到类似现象,建议同时检查 max_tokens 设置、网络超时配置等其他可能因素。
在 Responses API 中显式设置该字段:
python
response = client.responses.create(
model="gpt-5.6-luna",
input=[{"role": "user", "content": prompt}],
reasoning={"summary": "detailed"}
)
如果你通过聚合网关(如 OpenRouter 或 ofox.io)调用,网关通常将 reasoning_summary 作为透传参数处理,建议在请求体的 extra_body 中显式传入以确保生效:
python
response = client.chat.completions.create(
model="gpt-5.6-luna",
messages=[{"role": "user", "content": prompt}],
extra_body={"reasoning_summary": "detailed"}
)
reasoning_summary 的三个可选值(来自 OpenAI Responses API 文档):
| 值 | 行为 | 适用场景 |
|---|---|---|
"auto" |
服务端自行决定输出方式(默认值) | 短对话、token 敏感场景 |
"detailed" |
完整输出推理摘要 | 长文本生成、文档摘要、代码生成 |
"none" |
不返回推理摘要,节省输出 token | 简单问答、不关心推理过程 |
如果你的使用场景是长文本生成或文档摘要,建议显式设置为 "detailed" 以避免不确定的截断行为。
第四步:在不同工具里配置
Cline 配置
注意: 以下 settings.json 字段名基于写作时的 Cline 版本,不同版本字段名可能有变化。建议以 Cline 实际界面中的字段名为准,下方仅供参考。
json
{
"cline.apiProvider": "openai-compatible",
"cline.apiBaseUrl": "https://openrouter.ai/api/v1",
"cline.apiKey": "your-key",
"cline.model": "gpt-5.6-luna"
}
reasoning_summary 需要在 Cline 的自定义请求参数里配置。不同版本的 Cline 入口不同,在 Advanced Settings 中查找"Custom Body Parameters"或类似选项。
Claude Code 配置
Claude Code 支持 OpenAI 兼容端点。在配置文件里:
bash
export OPENAI_API_KEY="your-key"
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
model 参数在启动时指定或在配置文件里写 gpt-5.6-luna。
Cherry Studio 配置
Cherry Studio 的模型管理界面里,添加自定义模型,API 地址填聚合网关地址,模型 ID 填 gpt-5.6-luna,在高级参数里设置 reasoning_summary。
gpt-5.6-luna / sol / terra 怎么选
gpt-5.6 系列包含三个子型号,model ID 均已可用:
| 子型号 | Model ID | 官方定位描述 | 参考适用场景 |
|---|---|---|---|
| gpt-5.6-luna | gpt-5.6-luna |
推理增强,长链推理能力强 | 文档分析、复杂代码生成、多步推理 |
| gpt-5.6-sol | gpt-5.6-sol |
编排协调,适合 agent 场景 | 多 agent 协作、任务分解 |
| gpt-5.6-terra | gpt-5.6-terra |
执行层,速度优先 | 高吞吐批量任务、简单指令执行 |
完整报错对照表
说明: 以下报错信息中,Node.js 版本不兼容、401、429、context_length_exceeded 等条目来自标准 OpenAI SDK 行为,可信度较高。finish_reason 为 null 的条目原因分析为推断性描述,详见第三步说明。
| 报错信息 | HTTP 状态码 | 原因 | 解法 |
|---|---|---|---|
The model 'gpt-5.6-luna' does not exist or you do not have access to it |
404 | model 名写错 / 端点路由不对 / API Key 没有该模型权限 | 检查 model 拼写;走聚合网关自动路由;确认 Key 权限 |
The engine "node" is incompatible. Expected ">=22.0.0" |
--- | Node.js 版本太低 | 升级到 Node 22.x |
401 No API key provided |
401 | 环境变量未设置或 Key 为空 | 检查 OPENAI_API_KEY 环境变量 |
| finish_reason 为 null,输出中途停止 | 200 | 可能与 reasoning_summary 未设置有关(推断,见第三步说明) | 显式设置 reasoning_summary;同时检查 max_tokens 和网络超时 |
429 Rate limit exceeded |
429 | 请求频率超限 | 加 retry + exponential backoff;或通过聚合网关分散流量 |
context_length_exceeded |
400 | 输入 + 输出超过上下文窗口 | 缩减 prompt 长度,或拆分为多次调用 |
常见问题 FAQ
Q: gpt-5.6-luna 和 gpt-5.5 的 API 调用方式完全一样吗?
不完全一样。Chat Completions 端点基本兼容,但 luna 系列的推理增强功能(如 reasoning_summary)属于 Responses API 的能力,需要使用 client.responses.create() 或通过聚合网关适配后才能完整使用。如果只做普通对话,Chat Completions 端点仍然可用。
Q: reasoning_summary 设成 "none" 会不会影响回答质量?
不会影响模型的推理过程本身。区别在于你是否能看到推理摘要,以及输出 token 数量。设成 "none" 可以节省输出 token 费用。
Q: 我用的 openai SDK 是 v4.x,能调 gpt-5.6-luna 吗?
可能存在兼容性问题。v7.18.0 对新端点和新字段做了适配,旧版本可能不支持 Responses API 相关调用。建议升级到最新版本。
Q: luna / sol / terra 三个模型的价格一样吗?
OpenAI 官方尚未公布 5.6 系列三个子型号的详细定价拆分,建议以 OpenAI 官方 pricing 页面为准。
Q: 为什么我通过聚合网关调用没遇到 404?
OpenRouter 等聚合网关在中间层做了路由适配------你传 gpt-5.6-luna 加 Chat Completions 的调用格式,网关会自动转到正确的端点。这是通过网关接入新模型的一个优势,可以减少因 OpenAI 端点变更带来的代码改动。
Q: 静默截断有没有办法提前检测?
可以对比 max_tokens 和实际返回的 usage.completion_tokens。如果 completion_tokens 远小于 max_tokens 且 finish_reason 不是 stop,需要进一步排查。可以在调用后加断言检查,不满足条件时记录日志并重试,同时显式设置 reasoning_summary: "detailed"。
小结
gpt-5.6-luna 的接入主要有两个需要注意的地方:路由变更导致的 404,以及 reasoning_summary 字段未设置时可能出现的响应中途停止问题。前者可以通过聚合网关绕过,后者需要在 Responses API 调用中显式设置该字段。
新模型刚上线时,通过聚合网关(如 OpenRouter、ofox.io)接入可以减少因 API 变更带来的适配成本,两者均提供 OpenAI 兼容端点,只需替换 base_url 即可切换。等文档和 SDK 稳定后,再根据需要决定是否直连官方 API。