Prhub

#49104 [Misc] Bump `openai` to `>=2.25.0` to support namespace tools types

原始 PR 作者 cjackal 合并时间 2026-09-09 05:11 文件变更 1 提交数 10 评论 14 代码增减 +1 / -1

执行摘要

修复 openai 依赖版本下限,解决命名空间工具类型导入导致的启动崩溃。

该 PR 直接修复了 issue #49103 描述的问题。Issue 指出,vLLM 在 PR#47024 之后的所有版本都受影响,因为依赖了 openai.types.responses 中的 NamespaceTool 类型,而此类型仅在 openai>=2.25.0 中可用(参见 openai-python PR#2891)。对于从源码安装 vLLM 的用户,如果其环境中预装了旧版本的 openai,会导致 vllm serve 命令在启动时立即崩溃,引发不可避免的 ImportError。

该 PR 是一个简单、必要且低风险的 bugfix。它直接解决了一个影响用户体验的导入错误。尽管变更只有一行,但其动机清晰(关联 issue #49103),方案明确,且已通过审批。对于关注项目依赖健康和安装健壮性的开发者来说,值得快速浏览。核心设计决策是明确依赖的最低版本,这是一个基础但重要的工程实践。

讨论亮点

讨论主要集中在 CI 流程上。提交者 @cjackal 指出,该 PR 在几天前标记为 ready 后似乎未触发完整的 CI 流程,并认为此 PR 无需耗费完整的 CI 成本。随后,社区成员 @sfeng33 通过评论 /ci run 和 /ci retry 多次手动触发和重试 CI 任务。最终,@sfeng33 说明已要求强制合并,因为 CI 失败与 PR 内容无关。整个过程没有对变更本身的技术方案产生争议。

实现拆解

  1. 变更入口:变更仅涉及一个文件 requirements/common.txt,这是一个依赖声明文件,属于项目构建和部署的配置层。
  2. 核心变更:将 openai 依赖的版本下限从 >= 2.0.0 调整为 >= 2.25.0。同时,更新了行内注释,从“# For Responses API with reasoning content”改为“# For Responses API with namespace tools”,以准确反映此版本要求的具体原因。
  3. 测试配套:PR 中未添加或修改任何测试用例。根据 PR 描述,这是一个纯粹的依赖版本调整,用于解决缺失的版本下限声明,因此无需额外测试。CI 测试结果也无需比较。
  4. 部署/配置配套:此变更会直接影响通过 pip install vllm 或源码安装 vllM 的用户的依赖解析。用户环境中的 openai 版本将被强制要求不低于 2.25.0,否则安装过程会因版本冲突而失败,从而避免了运行时崩溃。
文件 模块 状态 重要度
requirements/common.txt 依赖配置 modified 1.72

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

CI 触发与执行问题 other

提交者 @cjackal 指出 PR 标记为 `ready` 后数天未触发完整 CI,并质疑为此简单变更运行完整 CI 的必要性。后续由 @sfeng33 多次手动触发 CI(`/ci run`, `/ci retry`),并最终解释要求强制合并,因为 CI 失败与 PR 无关。

结论:CI 问题被识别并手动处理,最终 PR 得以合并。讨论未涉及 PR 的技术内容。 · 已解决

风险与影响

风险较低且可控。

  1. 兼容性风险:这是唯一且核心的风险。提升依赖下限可能会与用户环境中已存在的旧版 openai 产生冲突,导致 pip install 失败。但这是必要的,因为旧版本与 vLLM 本身不兼容,安装时失败比运行时崩溃的体验更好。
  2. 回归风险:极低。变更仅涉及一个版本声明,不涉及任何逻辑修改。仓库的 CI 系统已测试通过(尽管有无关失败),且变更被资深贡献者批准。
  3. 安全/性能风险:无。版本提升在理论上可能引入 openai 库的新特性或变更,但 vLLM 代码库已通过 PR#47024 适配了这些新类型,因此是安全的。
  1. 用户影响:直接影响所有从源码(如 pip install -e .)或 PyPI 安装 vLLM 的用户。他们的环境中 openai 版本必须 ≥2.25.0。这解决了新用户或使用旧虚拟环境的用户遇到的启动崩溃问题,提升了安装体验的可靠性。
  2. 系统影响:对 vLLM 的线上推理服务本身没有功能性影响。它确保了服务在启动时能正确导入所有必要的类型,避免了因缺失导入而导致的进程退出。
  3. 团队影响:修复了 CI 未覆盖的依赖下限疏忽。此 PR 强调了维护依赖声明准确性的重要性,尤其是在引入新特性时。相关的 review 讨论也暴露了 CI 流程可能存在的触发问题。
依赖版本下限提升

关联 Issue

#49103 [Bug]: Latest vllm is incompatible with `openai<2.25.0`

完整报告

参与讨论