docs(详细设计): 新增法规完整性检查设计
This commit is contained in:
100
docs/详细设计/skill/法规证据检索Skill.md
Normal file
100
docs/详细设计/skill/法规证据检索Skill.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# 法规证据检索Skill 设计
|
||||
|
||||
## 1. Skill 定位
|
||||
|
||||
`法规证据检索Skill` 负责为完整性检查结果补充法规原文证据,用于解释、页面展示和审计留痕。
|
||||
|
||||
英文实现标识建议使用 `RegulationEvidenceRetrieveSkill`。
|
||||
|
||||
本 Skill 不改变完整性判定结论。规则链路已经判定的缺失、错放和风险等级不能被 RAG 检索结果反向覆盖。
|
||||
|
||||
## 2. 输入
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class RegulationEvidenceRetrieveInput:
|
||||
requirement_results: list[CompletenessItemResult]
|
||||
rule_package_id: str
|
||||
workflow_type: str
|
||||
max_results_per_item: int = 3
|
||||
```
|
||||
|
||||
## 3. 输出
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class RegulationEvidenceRetrieveOutput:
|
||||
evidence_refs: list[EvidenceRef]
|
||||
unavailable_items: list[dict]
|
||||
warnings: list[dict]
|
||||
```
|
||||
|
||||
`EvidenceRef` 字段:
|
||||
|
||||
1. `requirement_id`
|
||||
2. `source_document`
|
||||
3. `source_type`
|
||||
4. `chapter_code`
|
||||
5. `section_title`
|
||||
6. `snippet`
|
||||
7. `page_no`
|
||||
8. `retrieval_score`
|
||||
9. `metadata`
|
||||
|
||||
## 4. 检索范围
|
||||
|
||||
只检索法规资料,不检索业务申报资料。
|
||||
|
||||
metadata 过滤:
|
||||
|
||||
1. `source_role = regulation`
|
||||
2. `workflow_type = registration`
|
||||
3. `rule_package_id = nmpa_ivd_registration_v1`
|
||||
4. `requirement_id` 或 `chapter_code`
|
||||
|
||||
## 5. 核心方法
|
||||
|
||||
### 5.1 `run(input) -> RegulationEvidenceRetrieveOutput`
|
||||
|
||||
主入口方法。
|
||||
|
||||
### 5.2 `build_evidence_query(item_result) -> str`
|
||||
|
||||
根据要求项名称、章节点和规则配置生成检索 query。
|
||||
|
||||
### 5.3 `retrieve_from_vector_store(query, metadata_filter) -> list[EvidenceRef]`
|
||||
|
||||
优先使用 Chroma。
|
||||
|
||||
### 5.4 `retrieve_from_fallback_index(query, metadata_filter) -> list[EvidenceRef]`
|
||||
|
||||
当 Chroma 不可用时,使用本地切片或关键词 fallback。
|
||||
|
||||
### 5.5 `normalize_evidence_results(results) -> list[EvidenceRef]`
|
||||
|
||||
统一证据格式。
|
||||
|
||||
## 6. 技术实现
|
||||
|
||||
使用技术:
|
||||
|
||||
1. Chroma
|
||||
2. 本地 fallback 检索
|
||||
3. 文本切片 metadata
|
||||
4. Python 关键词匹配
|
||||
|
||||
## 7. 异常处理
|
||||
|
||||
1. 向量库不可用:降级 fallback。
|
||||
2. fallback 也不可用:返回证据不可用警告。
|
||||
3. 找不到证据:不阻断完整性报告。
|
||||
4. 命中业务资料:过滤掉,避免把申报资料当法规依据。
|
||||
|
||||
## 8. 测试要点
|
||||
|
||||
1. 能根据要求项生成查询。
|
||||
2. Chroma 可用时返回证据。
|
||||
3. Chroma 不可用时 fallback 生效。
|
||||
4. 证据检索失败不改变缺失结论。
|
||||
5. 非法规资料被过滤。
|
||||
|
||||
Reference in New Issue
Block a user