Prhub

#27019 feat(api): add require_reasoning field for engine's generate api

原始 PR 作者 Muqi1029 合并时间 2026-06-03 01:36 文件变更 1 提交数 2 评论 6 代码增减 +4 / -0

执行摘要

Engine generate API 新增 require_reasoning 参数

根据 PR body,require_reasoning 是控制推理 schema 和追踪推理 token 的重要字段,但未在 engine 的 generate API 中暴露,而该 API 被 dynamo 等其他生态系统使用,因此需要补充。

此 PR 是简单的参数透传,阅读价值有限,但可作为 API 扩展模式的参考。建议后续补充单元测试和文档。

讨论亮点

Review 评论极少,只有 JustinTong0323 的批准,没有实质性讨论或争议。

实现拆解

  1. python/sglang/srt/entrypoints/engine.pygenerate 方法参数列表中添加 require_reasoning: bool = False 参数。
  2. generate 方法内部构造 GenerateReqInput 对象时传入 require_reasoning=require_reasoning
  3. 类似地在 async_generate 方法参数列表中添加同一参数并传入 GenerateReqInput 构造调用。
    此 PR 不涉及测试、配置或部署配套变更。
文件 模块 状态 重要度
python/sglang/srt/entrypoints/engine.py 引擎 modified 5.46

关键符号

generate async_generate

关键源码片段

python/sglang/srt/entrypoints/engine.py core-logic

唯一变更文件,在 generate 和 async_generate 方法中添加 require_reasoning 参数并传递至 GenerateReqInput。

# python/sglang/srt/entrypoints/engine.py ( 部分 )
# 在 generate 方法签名中添加 require_reasoning 参数
class Engine:
    def generate(
        self,
        # ... 其他参数 ...
        custom_logit_processor: Optional[Union[List[str], str]] = None,
        require_reasoning: bool = False, # [ 新增 ] 控制推理 schema 和追踪推理 token
        return_hidden_states: bool = False,
        # ...
    ) -> Union[Dict, Iterator[Dict]]:
        # ...
        obj = GenerateReqInput(
            # ...
            custom_logit_processor=custom_logit_processor,
            require_reasoning=require_reasoning, # [ 新增 ] 传递给 GenerateReqInput
            return_hidden_states=return_hidden_states,
            # ...
        )
        # ...
# 同步修改 async_generate 方法,保持行为一致
async def async_generate(
    self,
    # ...
    custom_logit_processor: Optional[Union[List[str], str]] = None,
    require_reasoning: bool = False, # [ 新增 ] 与 generate 保持一致
    return_hidden_states: bool = False,
    # ...
) -> Union[Dict, Iterator[Dict]]:
    # ...
    obj = GenerateReqInput(
        # ...
        custom_logit_processor=custom_logit_processor,
        require_reasoning=require_reasoning, # [ 新增 ]
        return_hidden_states=return_hidden_states,
        # ...
    )
    # ...

评论区精华

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

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

风险与影响

风险极低。变更仅添加了一个带默认值 False 的可选参数,不会影响现有调用行为;但缺少测试覆盖和文档更新,未来若 require_reasoning 逻辑变更可能存在回归风险。

对用户:提供了控制推理行为的新能力,兼容旧调用(默认 False)。对系统:无运行时性能影响,仅为参数透传。对团队:涉及接口扩展,需注意与其他 API 的同步更新。

缺少测试覆盖 缺少文档更新

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论