feat(#58): GPU 后端实现(NVIDIA Triton/ONNX,PRD 5.6 推理后端可插拔)
落地父 EPIC #8 / Issue #58 要求的 NVIDIA GPU(5090)推理后端,严格实现 Issue #57 定义的 InferenceBackend 抽象接口(load_model/infer/health_check/unload)。 新增 core/llm-gateway/gpu_backend.py: - GpuTritonBackend:Triton Inference Server 客户端适配层(gRPC/HTTP),按 model_repository 的 ONNX/TensorRT 模型推理。 - 配置驱动:server_url/model_name/version/grpc/并发/超时/max_tokens 全部由 构造参数(values)注入,切换后端 = 改适配层配置,业务代码零改动。 - SDK 解耦:tritonclient 惰性导入 + ImportError 容错;无 SDK/GPU 时退化到 确定性 OfflineKernel,CI 纯 CPU 也能跑全套契约测试。 - fail-closed:未 load_model 即 infer 抛 RuntimeError(生产严格)。 - 健康探针:is_server_live + is_model_ready 双判定,供 #61 监控消费。 - 审计:infer 返回 InferResult(text/token 计数/latency_ms)。 注册表接入:default_registry() 登记 gpu-triton,build_backend 可配置切换。 新增 core/llm-gateway/tests/test_gpu_backend.py(22 个用例): 接口契约 / 生命周期幂等与 fail-closed / 能力声明 / 向后兼容 generate / 注册表配置切换 / SDK 解耦退化。 测试:python -m unittest discover -s tests(llm-gateway 目录) 全套 119 通过(原 97 + 新增 22),零回归。
This commit is contained in:
@@ -282,9 +282,12 @@ class CloudBackend(_PlaceholderBackend):
|
||||
|
||||
def default_registry() -> Dict[str, type]:
|
||||
"""默认后端注册表:name → 实现类。新增后端在此登记一行即可被配置选用。"""
|
||||
# 延迟导入避免循环依赖(gpu_backend 反向依赖本模块的抽象基类与值对象)
|
||||
from .gpu_backend import GpuTritonBackend # noqa: WPS433(Issue #58)
|
||||
return {
|
||||
"local-70b": LocalBackend,
|
||||
"cloud-api": CloudBackend,
|
||||
"gpu-triton": GpuTritonBackend,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user