2.3 KiB
2.3 KiB
法规证据检索Skill 设计
1. Skill 定位
法规证据检索Skill 负责为完整性检查结果补充法规原文证据,用于解释、页面展示和审计留痕。
英文实现标识建议使用 RegulationEvidenceRetrieveSkill。
本 Skill 不改变完整性判定结论。规则链路已经判定的缺失、错放和风险等级不能被 RAG 检索结果反向覆盖。
2. 输入
@dataclass
class RegulationEvidenceRetrieveInput:
requirement_results: list[CompletenessItemResult]
rule_package_id: str
workflow_type: str
max_results_per_item: int = 3
3. 输出
@dataclass
class RegulationEvidenceRetrieveOutput:
evidence_refs: list[EvidenceRef]
unavailable_items: list[dict]
warnings: list[dict]
EvidenceRef 字段:
requirement_idsource_documentsource_typechapter_codesection_titlesnippetpage_noretrieval_scoremetadata
4. 检索范围
只检索法规资料,不检索业务申报资料。
metadata 过滤:
source_role = regulationworkflow_type = registrationrule_package_id = nmpa_ivd_registration_v1requirement_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. 技术实现
使用技术:
- Chroma
- 本地 fallback 检索
- 文本切片 metadata
- Python 关键词匹配
7. 异常处理
- 向量库不可用:降级 fallback。
- fallback 也不可用:返回证据不可用警告。
- 找不到证据:不阻断完整性报告。
- 命中业务资料:过滤掉,避免把申报资料当法规依据。
8. 测试要点
- 能根据要求项生成查询。
- Chroma 可用时返回证据。
- Chroma 不可用时 fallback 生效。
- 证据检索失败不改变缺失结论。
- 非法规资料被过滤。