Prhub

#39086 [Bug] Fix mistral version dependency

原始 PR 作者 yewentao256 合并时间 2026-04-07 01:31 文件变更 3 提交数 1 评论 2 代码增减 +3 / -3

执行摘要

统一 mistral_common 依赖版本至 1.11.0,修复导入错误。

根据 PR body 描述,在启动 API 服务器时出现 ImportError,错误信息显示无法从 mistral_common.protocol.instruct.tool_calls 导入 NamedToolChoice。根本原因是依赖版本不一致:requirements/common.txt 已要求 mistral_common[image] >= 1.11.0,但 requirements/nightly_torch_test.txt 和 requirements/test.in 仍使用 >= 1.9.1,requirements/rocm-test.in 使用 >= 1.10.0。这种不一致导致实际安装的版本可能不包含所需的 API,从而引发导入失败。PR 旨在通过统一版本解决此问题。

该 PR 变更简单直接,无需深入精读。对于工程师,值得关注的是依赖版本管理的最佳实践:确保跨环境(如 common.txt 与测试文件)的依赖版本一致,以避免运行时错误。对于技术管理者,可将其视为常规维护任务,无需额外投入。

讨论亮点

Review 讨论非常有限。gemini-code-assist[bot] 仅确认了变更内容,指出更新了多个文件中的版本要求,没有提供反馈。robertgshaw2-redhat 直接批准了 PR。关联 Issue 评论中,bbrowning 询问是否应全局提升版本("We bumped mistral_common in one place, so it should be safe to bump in everywhere?"),juliendenize 简单回复感谢,暗示同意此做法。没有出现技术争议或深度讨论。

实现拆解

实现方案非常简单,仅修改三个测试依赖文件中的 mistral_common 版本号:

  1. requirements/nightly_torch_test.txt:将版本从 >= 1.9.1 更新为 >= 1.11.0。
  2. requirements/rocm-test.in:将版本从 >= 1.10.0 更新为 >= 1.11.0。
  3. requirements/test.in:将版本从 >= 1.9.1 更新为 >= 1.11.0。
    所有变更均为单行替换,确保与 common.txt 中的版本保持一致。
文件 模块 状态 重要度
requirements/nightly_torch_test.txt 依赖管理 modified 3.0
requirements/rocm-test.in 依赖管理 modified 3.0
requirements/test.in 依赖管理 modified 3.0

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

评论区精华

全局版本提升的安全性 question

bbrowning 在关联 Issue 评论中询问:"We bumped mistral_common in one place, so it should be safe to bump in everywhere?",旨在确认将 mistral_common 版本在所有地方提升至 1.11.0 是否安全。

结论:juliendenize 回复 "Thx !",暗示同意此做法,但未提供详细理由。 · 已解决

风险与影响

风险较低,但需注意:

  1. 版本提升可能引入不兼容性:从 1.9.1/1.10.0 升级到 1.11.0 可能带来 API 变更或行为差异,但鉴于 common.txt 已使用 1.11.0,且 PR 旨在修复因版本不一致导致的问题,此风险可控。
  2. 测试环境依赖更新:修改测试依赖文件可能影响 CI 测试的稳定性,但变更仅涉及版本号提升,且目标版本已在 common.txt 中使用,因此影响有限。
  3. 缺少回归测试:PR 未添加测试验证版本统一后的功能正常,但考虑到变更范围小,风险较低。

影响范围有限:

  1. 对用户:修复了 API 服务器启动时的导入错误,确保使用 Mistral 相关功能(如工具调用)时能正常启动。
  2. 对系统:仅影响测试和开发环境的依赖安装,确保 mistral_common 版本一致性,避免运行时错误。
  3. 对团队:简化了依赖管理,减少因版本不一致导致的调试开销。影响程度为低,属于基础设施维护。
依赖版本不一致 缺少回归测试

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

执行摘要

本次 PR 统一了 mistral_common 依赖包在多个测试环境文件中的版本至 1.11.0,修复了因版本不一致导致的 API 服务器启动时 ImportError 问题。变更涉及三个依赖文件,属于低风险的基础设施维护,确保依赖一致性以支持 Mistral 相关功能(如工具调用)的正常运行。

功能与动机

问题背景:在启动 OpenAI API 服务器时,出现 ImportError: cannot import name 'NamedToolChoice' from 'mistral_common.protocol.instruct.tool_calls' 错误。根本原因是 mistral_common 依赖版本不一致:requirements/common.txt 已要求 mistral_common[image] >= 1.11.0,但测试依赖文件(如 requirements/test.in)仍使用旧版本(1.9.1 或 1.10.0),导致实际安装的版本可能不包含所需 API。

解决目标:通过将所有测试环境中的 mistral_common 版本统一提升至 1.11.0,消除版本不一致,确保导入成功。

实现拆解

变更仅涉及三个依赖文件的版本号更新,均为单行替换:

文件路径 变更前版本 变更后版本 说明
requirements/nightly_torch_test.txt >= 1.9.1 >= 1.11.0 更新 nightly 测试环境依赖
requirements/rocm-test.in >= 1.10.0 >= 1.11.0 更新 ROCm 测试环境依赖
requirements/test.in >= 1.9.1 >= 1.11.0 更新通用测试环境依赖

所有变更均与 common.txt 中的版本保持一致,确保依赖一致性。

评论区精华

Review 讨论非常简短:

  • gemini-code-assist[bot] 仅确认变更内容,无反馈。
  • robertgshaw2-redhat 直接批准。

关联 Issue 评论中有一段关键讨论:

bbrowning: "We bumped mistral_common in one place, so it should be safe to bump in everywhere?"
juliendenize: "Thx !"

这反映了团队对全局版本提升安全性的确认,但未深入讨论技术细节。

风险与影响

风险分析

  1. 版本兼容性:从 1.9.1/1.10.0 升级到 1.11.0 可能引入 API 变更,但鉴于 common.txt 已使用 1.11.0,且 PR 旨在修复不一致问题,风险可控。
  2. 测试稳定性:修改测试依赖可能影响 CI,但仅版本号提升,且目标版本已在使用中,影响有限。
  3. 缺少回归测试:未添加测试验证修复后功能,但变更简单,风险低。

影响分析

  • 用户:修复 API 服务器启动错误,确保 Mistral 工具调用等功能正常。
  • 系统:统一测试环境依赖,避免运行时导入失败。
  • 团队:简化依赖管理,减少调试开销。影响程度低,属于常规维护。

关联脉络

与近期 PR 的关联:

  • PR #38150 ([Mistral Grammar] Support Grammar Factory):该 PR 添加了 Mistral 语法工厂支持,涉及 mistral_common 的使用。本次版本更新可能确保该功能在测试环境中正常运行,避免因版本不一致导致工具调用异常。

整体来看,本次 PR 是 vLLM 项目依赖管理维护的一部分,反映了团队在支持 Mistral 模型和工具调用功能时对依赖一致性的重视。

参与讨论