2.6 KiB
2.6 KiB
资料要求匹配Skill 设计
1. Skill 定位
资料要求匹配Skill 负责把当前资料包中的文档事实与法规要求项进行匹配,生成每个要求项的候选命中文档和匹配证据。
英文实现标识建议使用 RequirementDocumentMatchSkill。
本 Skill 只判断“是否可能命中”,不负责最终缺失或风险判定。
2. 输入
@dataclass
class RequirementDocumentMatchInput:
documents: list[DocumentFact]
requirements: list[RequirementItem]
3. 输出
@dataclass
class RequirementDocumentMatchOutput:
matches: list[RequirementDocumentMatch]
unmatched_documents: list[DocumentFact]
warnings: list[dict]
4. 匹配策略
4.1 章节点编码匹配
最高优先级。
示例:
- 文档
CH1.4 申请表.docx - 要求项
CH1.4 申请表 - 结果:高置信命中
4.2 文档角色匹配
使用第一步产生的 document_role。
示例:
application_formproduct_listregulatory_information_catalog
4.3 关键词匹配
使用法规要求项中的关键词表匹配文件名和相对路径。
4.4 人工修正字段匹配
如果用户在后台修正了章节点或资料名称,应优先使用修正结果。
5. 核心方法
5.1 run(input) -> RequirementDocumentMatchOutput
主入口方法。
5.2 match_by_chapter_code(document, requirement) -> MatchEvidence | None
章节点编码完全相等时返回高置信证据。
5.3 match_by_document_role(document, requirement) -> MatchEvidence | None
文档角色命中期望角色时返回证据。
5.4 match_by_keywords(document, requirement) -> MatchEvidence | None
文件名、资料名称或相对路径命中关键词时返回证据。
5.5 calculate_match_confidence(evidences) -> str
置信度:
highmediumlownone
6. 技术实现
使用技术:
- Python 字符串规则
re- 中文空白和标点标准化
- 可选
rapidfuzz
V1 中不建议过度依赖模糊匹配,避免把相似但不等价的资料误判为已提供。
7. 异常处理
- 一个要求项命中多个文档:保留全部候选,交给判定 Skill 处理。
- 一个文档命中多个要求项:标记潜在错放或重复。
- 文档待人工复核:仍可参与匹配,但置信度不超过
medium。 - 章节点冲突:输出警告。
8. 测试要点
- 章节点完全匹配返回高置信。
- 文档角色匹配返回中高置信。
- 只有关键词匹配返回低或中置信。
- 待复核文档不会被高置信命中。
- 多重命中输出警告。