docs(详细设计): 新增法规完整性检查设计
This commit is contained in:
136
docs/详细设计/skill/法规完整性检查Skill.md
Normal file
136
docs/详细设计/skill/法规完整性检查Skill.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# 法规完整性检查Skill 设计
|
||||
|
||||
## 1. Skill 定位
|
||||
|
||||
`法规完整性检查Skill` 是第二步工作流的总编排 Skill,负责根据资料包目录汇总结果、法规流程类型和本地规则包,组织完整性检查链路并输出结构化完整性报告。
|
||||
|
||||
英文实现标识建议使用 `RegulationCompletenessCheckSkill`,用于 Python 类名和 Tool Registry 注册处理器。
|
||||
|
||||
本 Skill 不直接解析原始文件,不负责字段抽取,不负责综合风险报告。它消费第一步产生的文档事实。
|
||||
|
||||
## 2. 输入
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class RegulationCompletenessCheckInput:
|
||||
batch_id: int
|
||||
scenario_id: str = "registration_completeness_check"
|
||||
workflow_type: str = "registration"
|
||||
rule_package_id: str = "nmpa_ivd_registration_v1"
|
||||
chapter_scope: list[str] = field(default_factory=list)
|
||||
selected_document_ids: list[int] = field(default_factory=list)
|
||||
enable_rag_evidence: bool = True
|
||||
```
|
||||
|
||||
## 3. 输出
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class RegulationCompletenessCheckOutput:
|
||||
report_type: str
|
||||
batch_id: int
|
||||
rule_package_id: str
|
||||
rule_version: str
|
||||
summary: dict
|
||||
matched_items: list[dict]
|
||||
missing_items: list[dict]
|
||||
misplaced_items: list[dict]
|
||||
manual_review_items: list[dict]
|
||||
evidence_refs: list[dict]
|
||||
audit_id: int | None = None
|
||||
```
|
||||
|
||||
## 4. 依赖 Skill
|
||||
|
||||
1. `法规流程识别Skill`
|
||||
2. `法规规则包加载Skill`
|
||||
3. `资料要求匹配Skill`
|
||||
4. `缺失错放判定Skill`
|
||||
5. `法规证据检索Skill`
|
||||
6. `完整性报告生成Skill`
|
||||
|
||||
## 5. 核心方法
|
||||
|
||||
### 5.1 `run(input) -> RegulationCompletenessCheckOutput`
|
||||
|
||||
主入口方法。
|
||||
|
||||
执行顺序:
|
||||
|
||||
1. 读取资料包目录汇总。
|
||||
2. 调用 `法规流程识别Skill`。
|
||||
3. 调用 `法规规则包加载Skill`。
|
||||
4. 按章节范围展开法规要求项。
|
||||
5. 调用 `资料要求匹配Skill`。
|
||||
6. 调用 `缺失错放判定Skill`。
|
||||
7. 按需调用 `法规证据检索Skill`。
|
||||
8. 调用 `完整性报告生成Skill`。
|
||||
9. 写入审计记录。
|
||||
10. 返回完整性报告。
|
||||
|
||||
### 5.2 `load_execution_context(input) -> CompletenessExecutionContext`
|
||||
|
||||
加载执行上下文。
|
||||
|
||||
包含:
|
||||
|
||||
1. 批次信息。
|
||||
2. 目录汇总报告。
|
||||
3. 选中文档范围。
|
||||
4. 场景配置。
|
||||
5. 用户输入参数。
|
||||
|
||||
### 5.3 `select_document_facts(context) -> list[DocumentFact]`
|
||||
|
||||
从目录汇总中筛选参与完整性检查的文档。
|
||||
|
||||
如果 `selected_document_ids` 为空,则使用当前批次所有业务申报资料。
|
||||
|
||||
### 5.4 `build_requirement_scope(rule_package, chapter_scope) -> list[RequirementItem]`
|
||||
|
||||
根据章节点范围展开法规要求项。
|
||||
|
||||
V1 默认:
|
||||
|
||||
1. 有 `chapter_scope` 时按范围执行。
|
||||
2. 无 `chapter_scope` 时优先执行 `CH1`。
|
||||
3. 后续支持全六章。
|
||||
|
||||
## 6. 技术实现
|
||||
|
||||
使用技术:
|
||||
|
||||
1. Python dataclass 或 Pydantic
|
||||
2. Tool Registry
|
||||
3. Django 服务层调用
|
||||
4. JSONField 报告快照
|
||||
5. Audit 服务
|
||||
|
||||
建议注册名:
|
||||
|
||||
```python
|
||||
tool_registry.register(
|
||||
name="regulation_completeness_check",
|
||||
handler=RegulationCompletenessCheckSkill().run,
|
||||
)
|
||||
```
|
||||
|
||||
## 7. 异常处理
|
||||
|
||||
| 异常 | 处理 |
|
||||
|---|---|
|
||||
| 批次不存在 | 返回业务错误并写失败审计 |
|
||||
| 目录汇总不存在 | 提示先执行资料包导入与目录汇总 |
|
||||
| 规则包不存在 | 返回任务不可执行 |
|
||||
| 流程不支持 | 返回流程配置错误 |
|
||||
| RAG 不可用 | 保留规则判断,证据标记不可用 |
|
||||
| 所选文档为空 | 返回空范围报告 |
|
||||
|
||||
## 8. 测试要点
|
||||
|
||||
1. 能基于目录汇总生成完整性报告。
|
||||
2. 能调用依赖 Skill 并合并结果。
|
||||
3. 规则包缺失时写入失败审计。
|
||||
4. RAG 失败不阻断主链路。
|
||||
5. 输出 schema 稳定。
|
||||
|
||||
Reference in New Issue
Block a user