对应 PRD 场景C(辅助):交接班 → LLM 汇总本班关键事件/能耗/待办 → 生成交接班
报告 → 推送下一班(line 84/350-351)。把本班原始数据 → 移动端交接班摘要这条
链路模板化、可配置、可测试。
新增 core/shift-handover 内核模块:
- handover.py:班次数据归一化(ShiftRecord) + 摘要配置(HandoverBriefConfig) +
validate/load 校验对 + build_llm_input(填 shift_handover v1.0.1 提示词占位符) +
generate_handover_brief(LLM 注入生成, 离线/故障自动降级为确定性摘要) +
render_handover_brief(编译移动端只读卡片 props)
- 零运行时依赖(仅标准库); LLM 以依赖注入传入, 内核不绑定云端 SDK
- 离线/LLM故障降级保证可用性≥99.8%(PRD 模型服务故障自动降级)
- 含 P0/安全事件时强制 requireConfirm=true(PRD 高利害人工确认)
新增资产/测试/验收:
- templates/ti-cl4/dashboard/handover_brief.ti.yaml(Ti 模板配置资产)
- tests/test_handover.py(32 用例全通过) + tests/_bootstrap.py(连字符目录挂载)
- scripts/verify_handover_brief.py(4 能力点全通过: 配置合法/LLM+降级/
配置点驱动展示/≤2分钟验收线)
- README.md
验证: python -m unittest discover -s tests (32 OK) +
python scripts/verify_handover_brief.py (全部通过)
18 lines
695 B
Python
18 lines
695 B
Python
# -*- coding: utf-8 -*-
|
||
"""测试引导:把 `core/shift-handover` 以包名 `shift_handover` 挂载到 sys.modules。
|
||
|
||
目录名 `shift-handover` 含连字符,无法直接以包名 import;挂载后模块内相对导入
|
||
(`from .handover import ...`)在 unittest 发现机制下可正常解析。
|
||
(沿用 core/data-bus/tests/_bootstrap.py 的同一做法。)
|
||
"""
|
||
import os
|
||
import sys
|
||
import types
|
||
|
||
SHIFT_HANDOVER_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||
sys.path.insert(0, SHIFT_HANDOVER_DIR)
|
||
if "shift_handover" not in sys.modules:
|
||
pkg = types.ModuleType("shift_handover")
|
||
pkg.__path__ = [SHIFT_HANDOVER_DIR]
|
||
sys.modules["shift_handover"] = pkg
|