执行摘要
- 一句话:将所有调用者从弃用的/get_server_info迁移到新的/server_info端点,清理API表面。
- 推荐动作:建议开发团队快速浏览此PR,关注API清理的最佳实践和弃用管理。对于新贡献者,理解如何管理端点弃用是有价值的学习案例。变更直白,无需深度技术分析,但值得参考以确保未来类似重构的顺利进行。
功能与动机
根据Issue #21054,/get_server_info是弃用的别名,服务器已记录弃用警告,但约49个文件仍引用旧端点。PR旨在迁移所有内部调用者,减少API表面混淆并确保新代码使用正确路径。
实现拆解
变更按模块拆解:1) 文档更新(如server_arguments.md、sgl_model_gateway.md),修正端点引用;2) 客户端调用迁移,包括Python SDK的runtime_endpoint.py中get_server_info方法、基准测试脚本(bench_serving.py)和profiler;3) 测试文件全面更新,覆盖speculative decoding、MLA、EP、DP、HiCache、quantization、AMD、Ascend等模块;4) sgl-model-gateway中添加/server_info路由并保留/get_server_info别名,设置TODO注释用于一个发布周期的弃用窗口。
关键文件:
python/sglang/lang/backend/runtime_endpoint.py(模块 Python SDK): 更新Python SDK的get_server_info方法,直接影响所有客户端调用
sgl-model-gateway/src/server.rs(模块 sgl-model-gateway): 添加/server_info路由并设置弃用别名,关键网关变更
test/registered/core/test_srt_endpoint.py(模块 Testing): 更新核心测试中的端点调用,确保测试覆盖和正确性
docs/advanced_features/server_arguments.md(模块 Documentation): 更新文档中的端点引用,影响用户指南和API说明
关键符号:get_server_info (in runtime_endpoint.py), get_server_info (in server.rs route)
评论区精华
review评论由gemini-code-assist[bot]提供,主要关注TODO注释,强调弃用窗口的重要性。例如,在mini_lb.py中添加的TODO注释被标记为中等优先级,提醒未来移除别名;在discover_metadata.rs中讨论了函数重命名和回退机制的未来清理。没有实质性争议,讨论集中于确保平滑过渡和代码管理。
- 弃用窗口管理 (documentation): 已添加TODO注释,计划在一个发布周期后移除/get_server_info别名
风险与影响
- 风险:风险较低,主要包括:1) 遗漏调用者可能导致测试失败或功能异常,尤其在广泛的文件修改中(48个文件);2) 弃用窗口设置不当可能过早移除别名,破坏向后兼容性;3) 文档或代码中残留旧引用,引发混淆。具体风险点在于测试覆盖率是否全面,需验证所有变更文件。
- 影响:影响范围广但程度低:1) 对用户(开发者),API更加一致,无直接功能变化,但需注意弃用警告;2) 对系统,服务器端已有弃用包装器,变更透明,性能无影响;3) 对团队,减少维护负担,简化API表面,但需确保所有CI测试通过。
- 风险标记:遗漏调用者, 弃用窗口管理
关联脉络
参与讨论