Prhub

#35844 refactor(disagg): remove dead get_embedding_port

原始 PR 作者 ShangmingCai 合并时间 2026-08-21 18:12 文件变更 1 提交数 1 评论 2 代码增减 +0 / -12

执行摘要

移除无调用的 get_embedding_port 及其 aiohttp 依赖

PR 描述指出 MMEncoder.get_embedding_port 没有任何调用者,且其目标路由不存在。它向 {prefill_url}/embedding_bootstrap 发起 POST,但 embedding_bootstrap 在仓库中无处可见,调用必然返回 404,因此是遗留的死代码而非待接线的辅助函数。删除后 aiohttp 在文件中不再使用,故一并移除。

本 PR 价值有限,无需精读。若关注代码库整洁性,可借鉴其按文件拆分死代码清理、逐文件审查的模式。关键设计决策是通过仓库级检索确认无调用者,避免误删潜在接入点。

讨论亮点

由于 review 评论为空,未提取到实质性讨论要点。PR 作者在 issue 评论中触发了测试重跑(test_epd_disaggregation.py),并通过了 CI。

实现拆解

本次变更仅涉及单一文件,通过以下步骤实现:

  1. 在 python/sglang/srt/disaggregation/encoder/server.py 中删除 MMEncoder 类中的 get_embedding_port 方法(约 12 行),该方法负责创建 aiohttp 会话并向 /embedding_bootstrap 发送 POST 请求。
  2. 同步移除 import aiohttp 语句,因为它是该文件中 aiohttp 的仅剩引用点。
  3. 保留 requests as http_requests 等其它 HTTP 依赖,它们仍被文件其它部分使用。
  4. 验证:通过仓库级搜索确认无调用者或端点存在,并通过 ruff、black、isort 检查。
文件 模块 状态 重要度
python/sglang/srt/disaggregation/encoder/server.py 编码器服务 modified 5.6

关键符号

get_embedding_port

关键源码片段

python/sglang/srt/disaggregation/encoder/server.py core-logic

删除无调用的 get_embedding_port 方法及其 aiohttp 导入,是该 PR 的核心变更文件。

# python/sglang/srt/disaggregation/encoder/server.py
# 删除前(base):
# import aiohttp# 删除后(head):
# 不再导入 aiohttp,因为它是文件中唯一使用 aiohttp 的地方。# 移除前的 get_embedding_port 方法(base):
async def get_embedding_port(self, prefill_url):
    async with aiohttp.ClientSession(
        timeout=aiohttp.ClientTimeout(total=1800)
    ) as session:
        response = await session.post(
            f"{prefill_url}/embedding_bootstrap",
            json={"embedding_port": None},
        )
        response_json = await response.json()
        return response_json["embedding_port"]
# 该方法在仓库中无调用方,且目标路由不存在,属于死代码,已删除。

评论区精华

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

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

风险与影响

本变更仅删除死代码,不涉及任何运行路径,风险极低。主要潜在风险是若未来需要重新引入该功能,需重新实现,但根据 PR 分析该路由本就不可用,因此无功能回归。

对用户和系统无行为影响。对团队而言,降低了维护成本和认知负担,并为后续清理工作提供模式参考。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论