feat(#57): InferenceBackend 抽象接口定义(PRD 5.6 loadModel/infer/health/unload) #98
Closed
bot_dev1
wants to merge 1 commits from
feature/issue-57 into main
pull from: feature/issue-57
merge into: :main
:main
:feature/issue-188
:feature/issue-187
:feature/issue-189
:feature/issue-183
:feature/issue-182
:feature-150
:dev137
:feature-issue-137
:feature/issue-137
:feature/issue-62
:feature/issue-54
:feature/issue-60
:feature/issue-55
:feature/issue-84
:feature/issue-68
:feature/issue-93
:feature/issue-92
:feature/issue-91
:feature/issue-81
:feature/issue-80
:feature/issue-79
:feature/issue-78
:feature/issue-53
:feature/issue-52
:feature/issue-90
:feature/issue-72
:feature/issue-71
:feature/issue-70
:feature/issue-51
:feature/issue-42
:feature/issue-41
:feature/issue-40
:feature/issue-38
:feature/issue-50
:feature/issue-37
:feature/issue-36
:feature/issue-34
:feature/issue-35
:feature/issue-58
:feature/issue-39
:feature/issue-57
:feature/issue-89
:feature/issue-24
:feature/issue-88
:feature/issue-86
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
将原先内联在 gateway.py 的薄弱 InferenceBackend 提炼为正式抽象基类(ABC),
对齐 PRD 5.6「⑥ 部署底座」契约,为 #44/#45/#58/#59 各类后端提供统一接入点。
实现内容:
· InferenceBackend(ABC):PRD 要求的四个生命周期方法 load_model / infer /
health_check / unload(均幂等),能力声明 capabilities,并保留 generate()
向后兼容(转发到 infer().text)
· 值对象 BackendCapabilities(streaming/max_concurrency/on_premises/modalities)
/ BackendHealth(healthy/detail/checked_at)/ InferResult(text+审计元信息)
· LocalBackend / CloudBackend 占位实现迁移至此并继承新 ABC,补齐生命周期
· default_registry + build_backend:配置驱动切换后端(未知 name 报错并提示已知项)
build_backend/default_registry),InferenceBackend 现为 ABC
设计原则:业务代码仅依赖接口,不感知硬件;切换后端 = 换实现 + 改配置,业务零改动。
测试:core/llm-gateway 全量 97 个用例通过(新增 27 + 既有 70,零回归)。
运行:python -m unittest discover -s tests -v(在 core/llm-gateway 目录下)
close #57
将原先内联在 gateway.py 的薄弱 InferenceBackend 提炼为正式抽象基类(ABC), 对齐 PRD 5.6「⑥ 部署底座」契约,为 #44/#45/#58/#59 各类后端提供统一接入点。 实现内容: - 新增 core/llm-gateway/backends.py: · InferenceBackend(ABC):PRD 要求的四个生命周期方法 load_model / infer / health_check / unload(均幂等),能力声明 capabilities,并保留 generate() 向后兼容(转发到 infer().text) · 值对象 BackendCapabilities(streaming/max_concurrency/on_premises/modalities) / BackendHealth(healthy/detail/checked_at)/ InferResult(text+审计元信息) · LocalBackend / CloudBackend 占位实现迁移至此并继承新 ABC,补齐生命周期 · default_registry + build_backend:配置驱动切换后端(未知 name 报错并提示已知项) - gateway.py:删除内联定义,改为从 backends.py 再导出,LLMGateway.ask() 调用路径不变 - __init__.py:再导出新符号(BackendCapabilities/BackendHealth/InferResult/ build_backend/default_registry),InferenceBackend 现为 ABC 设计原则:业务代码仅依赖接口,不感知硬件;切换后端 = 换实现 + 改配置,业务零改动。 测试:core/llm-gateway 全量 97 个用例通过(新增 27 + 既有 70,零回归)。 运行:python -m unittest discover -s tests -v(在 core/llm-gateway 目录下)✅ 审核通过(bot_dev1 代码审查)
审查依据:
结论:实现完整、测试可复现,与关联 issue 验收口径一致,同意关闭。
Pull request closed