Prhub

#37498 [Frontend][Responses API] Fix arrival_time recording for TTFT on initial request

原始 PR 作者 qandrew 合并时间 2026-03-23 17:58 文件变更 2 提交数 1 评论 5 代码增减 +4 / -1

执行摘要

修复 responses API 中 arrival_time 记录错误,以准确测量 TTFT。

PR body 指出,在 responses API 中,arrival_time 应该在 tokenization 之前定义以准确测量 TTFT,但当前 GPT-OSS 实现中,arrival_time 从 input_processor.py 获取,发生在 tokenization 之后,这导致性能度量偏差。issue 评论中 DarkLight1337 也提到,之前定义在 tokenization 之后很奇怪,已改为之前以获取更准确的 TTFT 测量。

对于负责性能度量或 API 实现的工程师,建议精读此 PR 以理解 arrival_time 定义的重要性和当前修复。同时,关注 markmc 指出的其他问题,可能需要在后续 PR 中解决。

讨论亮点

review 中,gemini-code-assist[bot] 确认实现正确。markmc 指出还有更严重的问题,涉及多轮工具调用中 arrival_time 记录在工具完成之后而不是 tokenization 之前,建议单独修复。issue 评论中,DarkLight1337 和 qandrew 讨论了 arrival_time 定义的历史和正确性,结论是应该定义在 tokenization 之前以准确测量 TTFT。

实现拆解

主要改动包括:

1) 在 vllm/entrypoints/openai/responses/serving.py_make_request_with_harmony 函数中,添加 arrival_time = time.time() 并在 tokenization 前赋值给 engine_prompt["arrival_time"]
2) 更新 docs/design/metrics.md 文档,说明 arrival_time 当前定义为 tokenization 开始时,并添加注释指出这是一个非平凡话题,引用相关讨论。

文件 模块 状态 重要度
vllm/entrypoints/openai/responses/serving.py openai responses API modified 8.0
docs/design/metrics.md 文档 modified 4.0

关键符号

_make_request_with_harmony

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

评论区精华

arrival_time 定义正确性 正确性

讨论 arrival_time 应该在 tokenization 之前还是之后定义,以准确测量 TTFT。DarkLight1337 提到在 renderer refactor 中已改为之前,qandrew 支持这一逻辑。

结论:已修复为 tokenization 之前,达成共识 · 已解决

其他未解决的 arrival_time 问题 正确性

markmc 指出 responses API 中多轮工具调用存在 arrival_time 记录在工具完成之后的问题,属于严重缺陷,建议单独修复。

结论:未解决,需要后续 PR 处理 · unresolved

风险与影响

风险较低,因为代码修改范围小且直接,但 markmc 提到的未解决问题(多轮工具调用中的 arrival_time 错误)可能影响部分场景的性能度量准确性。文档更新可能不完整,metrics 定义仍需进一步澄清,存在理解偏差风险。

修复后,TTFT 度量将更准确,直接影响 API 用户获取可靠的性能数据,有助于监控和基准测试。对系统功能无直接影响,但提升了性能评估的精确性。团队需注意后续修复多轮工具调用问题。

未解决多轮工具调用问题 文档定义不完整

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论