openai-python 3.50.0 与 openai-node 7.56.0:Responses API 的 reasoning 输入变换(input_transformations)
2026-11-12 发布的官方 SDK 双包:python v3.50.0 与 node v7.56.0 给 Responses API 的响应对象加上 input_transformations——按输入顺序报告被拦下、未送达模型的 reasoning 输入及原因枚举;stable 与 beta 双形态同步,请求侧类型零改动。
openai-python v3.50.0 与 openai-node v7.56.0 于 2026-11-12T19:26Z 前后一分钟内先后发布(python GitHub release 19:26:07Z、node 19:26:48Z),两包的 feature 条目指向同一件事:把「reasoning input transformations on responses」落到 Responses API 的响应对象上——新增可选数组 input_transformations,按输入顺序报告哪些 reasoning 输入被服务端拦下、未送达模型。本文全部事实经 PR diff 与 v3.50.0 / v7.56.0 tag 源码当日核对,紧邻前一版(v3.49.0 / v7.55.0)的基线对照确认字段确为本批新增。核对通道说明:本批工作窗口内 developers.openai.com 对本站 403,官方文档域的现状断言以 2026-11-12 的成功抓取为界。
1. 版本与上架时间线
| 包 | GitHub release | registry 上架 | release notes 构成 |
|---|---|---|---|
| openai-python v3.50.0 | 2026-11-12T19:26:07Z | PyPI latest=3.50.0,2026-11-12T19:26:52Z 上架(GitHub 后 45 秒) | #4268(feature)+ #4261(CI 依赖 bump)+ #4266(docs) |
| openai-node v7.56.0 | 2026-11-12T19:26:48Z | npm latest=7.56.0,2026-11-12T19:37:47Z 上架(GitHub 后约 11 分钟) | #3145(feature)+ #3127/#3131(ecosystem-tests 开发依赖 bump)+ #3142(docs) |
两包 release notes 的 feature 条目不同名但同一件事:python 是 api: expose reasoning input transformations on responses,node 是 api: type reasoning input transformations on responses——一个「expose」一个「type」,对应 python 侧 pydantic 响应模型与 node 侧 TypeScript interface 两种产物形态。
2. 变更本体:Response.input_transformations
新字段挂在 Response 对象(stable 与 beta 双形态)上。OpenAPI 层(api_reference/openapi.transformed.yml,随 PR 一同入库)新增两个 schema:
- InputRemovalReason:字符串枚举,五个取值——
organization_mismatch、end_user_mismatch、model_mismatch、prefix_mismatch、turn_boundary; - ReasoningInputTransformation:对象,必填四字段——
type(恒reasoning)、id(The original reasoning item ID.)、action(恒removed)、reason(引用 InputRemovalReason)。beta 侧对应BetaInputRemovalReason与BetaReasoningInputTransformation两件,形状一致。
响应对象上新增的数组字段(OpenAPI 原文照录):
input_transformations:
type: array
description: Reasoning inputs withheld from the model, in input order.
items:
$ref: '#/components/schemas/ReasoningInputTransformation'
文档串只有一句:Reasoning inputs withheld from the model, in input order.(按输入顺序、列出未送达模型的 reasoning 输入。)五个 reason 取值在 OpenAPI schema、python 类与 node interface 三处都没有逐值描述;字面直译(组织不匹配 / 终端用户不匹配 / 模型不匹配 / 前缀不匹配 / 轮次边界)仅供检索,语义以官方文档为准,本文不推断。什么场景会拦下 reasoning 输入、字段何时省略,本批可核对的源材料同样没有说明。
3. python 侧:InputTransformation 类与字段(v3.50.0 tag 照录)
class InputTransformation(BaseModel):
id: str
"""The original reasoning item ID."""
action: Literal["removed"]
reason: Literal["organization_mismatch", "end_user_mismatch", "model_mismatch", "prefix_mismatch", "turn_boundary"]
type: Literal["reasoning"]
Response 与 BetaResponse 上各加一个可选字段(同 tag 照录):
input_transformations: Optional[List[InputTransformation]] = None
"""Reasoning inputs withheld from the model, in input order."""
InputTransformation 同时进了模块 __all__ 导出清单(diff 中两处 export 列表各加一项)。action 与 type 都是单值 Literal——当前唯一的动作取值是 removed,当前唯一的对象类型是 reasoning;这是类型层可核对的事实本身,不含任何方向性推断。
4. node 侧:InputTransformation interface(v7.56.0 tag 照录)
export interface InputTransformation {
/**
* The original reasoning item ID.
*/
id: string;
action: 'removed';
reason:
| 'organization_mismatch'
| 'end_user_mismatch'
| 'model_mismatch'
| 'prefix_mismatch'
| 'turn_boundary';
type: 'reasoning';
}
字段侧(stable 与 beta 两个 responses.ts 同型,命名空间分别为 Response 与 BetaResponse):
/**
* Reasoning inputs withheld from the model, in input order.
*/
input_transformations?: Array<Response.InputTransformation>;
5. 作用域与基线:仅响应侧类型,stable 与 beta 双形态
本批 diff 的文件清单就是作用域边界:python 只改 src/openai/types/responses/response.py 与 src/openai/types/beta/beta_response.py;node 只改 src/resources/responses/responses.ts 与 src/resources/beta/responses/responses.ts;其余为 api_reference/openapi.transformed.yml、castiron 代码生成统计与 generated-files.json 哈希。请求/参数侧类型零改动——input_transformations 是响应对象上的可读字段,不是新参数。
| 对照 | v3.49.0 / v7.55.0(上一版) | v3.50.0 / v7.56.0(本批) |
|---|---|---|
| python response.py / beta_response.py | 0 处 | 3 处 / 3 处 |
| node responses.ts / beta responses.ts | 0 处 | 2 处 / 2 处 |
计数口径:grep -c 'InputTransformation\|input_transformations' 对 tag 同路径文件(raw.githubusercontent.com),2026-11-13 本站实测;0 处 → 有,确认确为本批新增(对照范围仅紧邻前一版)。
6. 其余变更与核对方法
- docs:两包各一条「simplify review handoff instructions」(python #4266、node #3142)——仓库协作文档调整,与 API 无关。
- 依赖:python #4261 把 CI action astral-sh/setup-uv 从 10.3.0 升到 10.3.3;node #3127 与 #3131 是 ecosystem-tests 下两个目录的开发依赖 bump(@cloudflare/workers-types、webpack)——均为 deps / deps-dev 范畴,非运行时依赖变更。
- 核对方法:release 对象与 PR diff 经 gh api 已登录通道拉取(GitHub api 匿名配额本批已耗尽);类型事实逐条对照 v3.50.0 / v7.56.0 tag 源文件,基线对照用 v3.49.0 / v7.55.0 同路径文件。
7. 常见错误与排查
- 把它当请求参数找:
input_transformations在响应对象上;本批 diff 未改任何请求类型,请求构造里没有对应输入项。 - 以为五个 reason 有官方解释:目前只有枚举字面量。逐值语义请等官方文档,不要照本文的字面直译写迁移逻辑。
- 版本装错:字段要求 openai-python ≥ 3.50.0 / openai-node ≥ 7.56.0;v3.49.0 / v7.55.0 的类型层零处出现,读不到该字段。
- beta 与 stable 的命名差异:OpenAPI schema 名在 beta 侧带 Beta 前缀(BetaReasoningInputTransformation / BetaInputRemovalReason);python 类名在两个形态下同名(InputTransformation,分别定义在 response.py 与 beta_response.py);node 的 interface 分别嵌在
Response与BetaResponse命名空间下。
下一步
- 上一批 SDK 双包(3.49.0 / 7.55.0)的解读见《openai-python 3.49.0 与 openai-node 7.55.0:Agents 函数工具 async 设置的类型补齐》。
- beta Agents 会话的压缩 / 审查 / 支出上限等既有会话设置见《openai-python 3.42.0 与 openai-node 7.46/7.47 更新解读:Agent 压缩与审查设置、外部密钥管理与 SIP DTMF》。
- 全部 OpenAI 发布节点按时间线浏览见《OpenAI 模型更新日志(2026 持续更新)》。
关键要点
- 版本与上架核对(2026-11-13 本站经 gh api 与 registry 核对):python v3.50.0 GitHub release 2026-11-12T19:26:07Z、PyPI latest=3.50.0 于 19:26:52Z 上架(GitHub 后 45 秒);node v7.56.0 GitHub release 19:26:48Z、npm latest=7.56.0 于 19:37:47Z 上架(GitHub 后约 11 分钟)
- python #4268(release notes 标题「api: expose reasoning input transformations on responses」)只改两个类型文件:src/openai/types/responses/response.py 与 src/openai/types/beta/beta_response.py——Response 与 BetaResponse 各新增 input_transformations: Optional[List[InputTransformation]] = None(文档串「Reasoning inputs withheld from the model, in input order.」),InputTransformation 四字段中 action 与 type 均为单值 Literal
- node #3145(release notes 标题「api: type reasoning input transformations on responses」)同样只改两个文件:src/resources/responses/responses.ts 与 src/resources/beta/responses/responses.ts——两个 interface 各加 input_transformations?: Array<…InputTransformation> 与 InputTransformation(action: 'removed'、type: 'reasoning'、reason 五值联合)
- OpenAPI 层(api_reference/openapi.transformed.yml,随 PR 入库)新增 InputRemovalReason 五值枚举与 ReasoningInputTransformation 对象 schema;beta 侧对应 BetaInputRemovalReason 与 BetaReasoningInputTransformation 两件
- 基线对照(grep 计数,2026-11-13 本站实测):v3.49.0 的 response.py 与 v7.55.0 的 responses.ts 对本特性零处出现,v3.50.0 / v7.56.0 对应文件分别 3 处与 2 处——确为本批新增;本批 diff 未触及任何请求/参数侧类型
- 其余条目:两包各一条 docs(simplify review handoff instructions,#4266/#3142);python 一条 CI 依赖 bump(astral-sh/setup-uv 10.3.0 → 10.3.3,#4261);node 两条 ecosystem-tests 开发依赖 bump(@cloudflare/workers-types #3127、webpack #3131)——均非运行时依赖变更
常见问题
官方参考
- 更新openai-python v3.50.0 release notes(本站经 gh api 同资源核对)
- 更新openai-node v7.56.0 release notes(本站经 gh api 同资源核对)
- 文档openai-python PR #4268:expose reasoning input transformations on responses
- 文档openai-node PR #3145:type reasoning input transformations on responses
- 文档openai-python v3.50.0 response.py(tag 源码)
- 文档openai-node v7.56.0 responses.ts(tag 源码)
相关文章
openai-python 3.49.0 与 openai-node 7.55.0:Agents 函数工具 async 设置的类型补齐
2026-11-10 发布的官方 SDK 双包:python v3.49.0 与 node v7.55.0 给 beta Agents 的函数工具形状补上既有 async 设置的类型标注——python 新增 async_ 别名字段与保留字 TypedDict,node 四个 interface 加 async 可选属性;python 同批修复 Microphone 录音的 WAV 编码。
阅读全文openai-python 3.48.0 与 openai-node 7.54.0:Agent 会话事件流的混淆填充与 stream_options
2026-11-09 发布的官方 SDK 双包更新:python v3.48.0 给 agent 会话事件流加了混淆填充开关(stream_options 与 include_obfuscation,33 个事件类型新增 obfuscation 字段);node v7.54.0 仅同步 gpt-6-rosalind 类型与 agent scheduling 保留。本文全部事实经 GitHub API 与 tag 源码当日核对。
阅读全文openai-node 7.46–7.50:五天五版,12 小时缓存与服务分层落地 SDK(2026)
openai-node 在 10 月 31 日至 11 月 3 日连发 7.46.0 到 7.50.0 五个版本,把官方 changelog 里的 12 小时 prompt caching、项目级服务分层、workload identity 等 API 侧能力落到 TypeScript 类型层。
阅读全文订阅 GPTMap Weekly
每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。
提交后将在新标签页打开 Buttondown 完成订阅确认。