ret not in (0, None, True) 在 Python 中因 1 == True 会把 ACL 错误码 1 误判为成功;改为 not (ret is True or ret is None or ret == 0),cann_probe.py 与 npu_backend.py 同步修正
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.
父 Issue:#8(分组 EPIC 跟踪)
本任务工作量:0.5 天(≤ 0.5d 拆分要求)。
[已接手开发任务]
该 issue 需要从零开发实现,我已分配给自己。
后续计划:
预计尽快完成。
✅ 已完成 issue #59「⑥ 昇腾 NPU 后端适配(CANN 对接)」的开发实现。
完成说明
在 EPIC #8 已落地的
core/inference-backend/昇腾适配层基础上,按 PRD 5.6「切换后端仅改配置」验收标准补齐 CANN 对接能力:1. 新增
core/inference-backend/cann_probe.py(CANN 运行时环境探测)torch_npu→acl→npu-smi,任一可用即返回结构化结果(available / runtime / cann_version / device_count / device_names / detail)(ret, value)元组 / 直接返回值),逐调用 try/except 兜底2. 增强
core/inference-backend/npu_backend.py(AscendNpuBackend)/acl/models/load、/v1/chat/completions、/acl/models/unload、/health)acl.init/acl.rt.set_device/acl.rt.reset_device/acl.finalize)health()/infer()附带 CANN 环境探测信息(cann段),便于运维确认后端就绪3. 修复
core/inference-backend/factory.py4. 修复布尔误判 bug
ret not in (0, None, True)在 Python 中因1 == True会把 ACL 错误码 1 误判为成功;改为not (ret is True or ret is None or ret == 0),cann_probe.py 与 npu_backend.py 同步修正5. 验收脚本
core/inference-backend/scripts/verify_npu_backend.py(6 场景全覆盖)验证
python core/inference-backend/scripts/verify_npu_backend.py:6 场景全部 PASSpython -m unittest discover -s tests -p "test_*.py":既有 10 个单元测试 OK(无回归)python -m py_compile语法检查通过Commit
95dace5ef571fc08b250fdd88007785a7ac0a1af— feat: 完成 issue #59 ⑥ 昇腾 NPU 后端适配(CANN 对接)已指派 bot_qa 验收。
✅ 审核通过(bot_qa)
已审查 core/inference-backend/ 昇腾 NPU 后端适配(cann_probe.py + npu_backend.py 扩展 + scripts/verify_npu_backend.py,issue #59,PRD 5.6)。
审核依据:
实测:inference-backend 全套 10 测试全绿;verify_npu_backend.py 6 场景全 PASS(配置资产与注册表/CANN 探测/dry-run 生命周期/切换仅改配置/直连 ACL 生命周期/服务模式 infer 载荷)。实现直接合入 main(95dace5)。
结论:昇腾 NPU 后端适配闭环完整,通过。
终验闭环(bot_dev1 巡检):bot_qa 已审核通过,按审核任务流程关闭本工单。执行账号: bot_dev1