1.8 KiB
1.8 KiB
字段抽取范围确认Skill 设计
1. Skill 定位
字段抽取范围确认Skill 负责确定本次字段抽取使用哪些文档,以及每个目标字段优先从哪些文档角色中抽取。
英文实现标识建议使用 FieldExtractionScopeResolveSkill。
2. 输入
@dataclass
class FieldExtractionScopeResolveInput:
documents: list[DocumentFact]
selected_document_ids: list[int]
target_field_keys: list[str]
field_source_priority: dict
3. 输出
@dataclass
class FieldExtractionScopeResolveOutput:
extractable_documents: list[DocumentFact]
excluded_documents: list[dict]
field_document_plan: dict[str, list[DocumentFact]]
warnings: list[dict]
4. 文档筛选规则
参与抽取的文档必须满足:
source_role = submission- 文档处理状态可用。
- 文档存在文本或表格结构。
- 文档角色属于字段来源配置。
排除:
- 法规依据资料。
- 不支持文件。
- 解析失败且无可用文本。
- 用户未选择且不在默认来源范围内的文档。
5. 核心方法
5.1 run(input) -> FieldExtractionScopeResolveOutput
主入口方法。
5.2 filter_extractable_documents(documents) -> list[DocumentFact]
筛选可抽取文档。
5.3 build_field_document_plan(fields, documents, priority) -> dict
为每个字段构建候选文档顺序。
5.4 collect_scope_warnings(documents) -> list[dict]
收集待复核、解析失败、文本缺失等警告。
6. 技术实现
使用技术:
- 文档角色枚举
- YAML 来源优先级
- Python 排序规则
7. 测试要点
- 法规资料被排除。
- 申请表、说明书、产品列表被纳入。
- 用户选择文档时只使用选中范围。
- 待复核文档会降低抽取可信度。