GPTMap

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 双形态同步,请求侧类型零改动。

TL;DR
openai-python v3.50.0(GitHub 2026-11-12T19:26:07Z、PyPI 即 latest)与 openai-node v7.56.0(GitHub 19:26:48Z、npm 19:37:47Z 即 latest)同批发布,本站经 PR diff 与 tag 源码当日核对。唯一 feature(#4268/#3145):Response 与 BetaResponse 新增可选数组 input_transformations——「Reasoning inputs withheld from the model, in input order.」,元素含 id、action 恒为 removed、reason 五值枚举、type 恒为 reasoning;仅响应侧类型改动,v3.49.0 与 v7.55.0 基线零处出现。
input_transformations 是 Responses API 响应对象(stable 与 beta 双形态)在本批新增的可选数组字段:按输入顺序列出被服务端拦下(withheld)、未送达模型的 reasoning 输入项,每项带原 reasoning item 的 id、动作(当前唯一取值 removed)、原因(五值枚举)与类型(reasoning)。类型出自两包官方 SDK 的 v3.50.0 与 v7.56.0 tag;源码未给五值 reason 的逐值解释,字段何时省略亦无文档说明。

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 releaseregistry 上架release notes 构成
openai-python v3.50.02026-11-12T19:26:07ZPyPI latest=3.50.0,2026-11-12T19:26:52Z 上架(GitHub 后 45 秒)#4268(feature)+ #4261(CI 依赖 bump)+ #4266(docs)
openai-node v7.56.02026-11-12T19:26:48Znpm 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.py0 处3 处 / 3 处
node responses.ts / beta responses.ts0 处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 命名空间下。

下一步

关键要点

  • 版本与上架核对(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)——均非运行时依赖变更

常见问题

类型层能确认的只有字段可选(python Optional 缺省 None、node ?:)与文档串的直译「按输入顺序、列出未送达模型的 reasoning 输入」;什么场景会拦下 reasoning 输入、字段何时省略,v3.50.0 与 v7.56.0 的 tag 源码和两包 release notes 都没有说明——以官方后续文档为准,本文不做推断。

官方参考

相关文章

订阅 GPTMap Weekly

每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。

提交后将在新标签页打开 Buttondown 完成订阅确认。

GPTMap Editorial发布于 2026-11-13 7 分钟阅读
测试环境(EEAT)
最后测试时间:2026-11-13
使用模型:SDK:openai-python ≥ 3.50.0 / openai-node ≥ 7.56.0(Response.input_transformations)