Prhub

#43997 [Refactor] Remove dead current_tool_name_sent assignments from tool parsers

原始 PR 作者 sfeng33 合并时间 2026-05-30 09:45 文件变更 4 提交数 1 评论 0 代码增减 +0 / -6

执行摘要

移除工具解析器中死代码 current_tool_name_sent

PR body 明确指出:Remove unused self.current_tool_name_sent initializations from ernie45, phi4mini, and hy_v3 tool parsers (already set by base class, never read) 以及 Remove write-only self.current_tool_name_sent assignments from hunyuan_a13b tool parser

直接合并即可,无需额外审查。这是一个安全且清晰的死代码清理。

讨论亮点

PR 获得一位 reviewer 的快速批准,评论 LGTM, thanks for the work!,无其他讨论。

实现拆解

  1. 移除初始化赋值:在 ernie45_tool_parser.pyhy_v3_tool_parser.pyphi4mini_tool_parser.py__init__ 中删除 self.current_tool_name_sent = False(或 : bool = False)的声明,因为基类 ToolParser 已提供该属性。
  2. 移除写操作:在 hunyuan_a13b_tool_parser.py 中,除了删除 __init__ 中的初始化外,还删除了两个方法中对该属性的写操作(self.current_tool_name_sent = True),这些赋值仅被写入、从未被读取。
  3. 仅删除代码:共删除 6 行,无新增代码。无测试改动,因为功能不受影响。
文件 模块 状态 重要度
vllm/tool_parsers/hunyuan_a13b_tool_parser.py 工具解析器 modified 4.99
vllm/tool_parsers/ernie45_tool_parser.py 工具解析器 modified 3.95
vllm/tool_parsers/hy_v3_tool_parser.py 工具解析器 modified 3.95
vllm/tool_parsers/phi4mini_tool_parser.py 工具解析器 modified 3.95

关键源码片段

vllm/tool_parsers/hunyuan_a13b_tool_parser.py core-logic

改动量最大(3 行删除),同时移除了初始化赋值和两处流式状态中的写操作,是理解死代码模式的关键文件。

# vllm/tool_parsers/hunyuan_a13b_tool_parser.py
# __init__ 中移除了 self.current_tool_name_sent = False
# 该属性已在基类 ToolParser 中初始化
class HunyuanA13BToolParser(ToolParser):
    def __init__(self, tokenizer: TokenizerLike, tools: list[Tool] | None = None):
        super().__init__(tokenizer, tools)
        self.prev_tool_calls: list[dict] = []
        self.current_tool_id = -1
        # 删除 : self.current_tool_name_sent = False
        self.streamed_args: list[str] = []
        # ...
​
    def _handle_test_compatibility(self, current_text: str):
        # 在方法末尾原有一行 self.current_tool_name_sent = True, 已删除
        # 该属性仅在此写入,从未被读取
        ...
        # 删除 : self.current_tool_name_sent = True
        return delta
​
    def _handle_tool_name_streaming(self, current_idx: int, tool_count: int, name_matches):
        # 同样删除写操作
        ...
        # 删除 : self.current_tool_name_sent = True
        return delta

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。该字段在所有子类中均为只写属性,从未被任何代码读取;删除后不影响运行时行为。潜在风险是若有外部代码通过反射或 monkey-patch 访问该属性,但此类用法不符合常规且未被 vllm 代码库支持。

对用户无直接影响。对系统,减小了对象内存占用(极小),清理了代码,降低了后续维护者阅读时的认知负担。

无风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论