Files
DEMO-AGENT/docs/详细设计/skill/字段抽取范围确认Skill.md

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. 文档筛选规则

参与抽取的文档必须满足:

  1. source_role = submission
  2. 文档处理状态可用。
  3. 文档存在文本或表格结构。
  4. 文档角色属于字段来源配置。

排除:

  1. 法规依据资料。
  2. 不支持文件。
  3. 解析失败且无可用文本。
  4. 用户未选择且不在默认来源范围内的文档。

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. 技术实现

使用技术:

  1. 文档角色枚举
  2. YAML 来源优先级
  3. Python 排序规则

7. 测试要点

  1. 法规资料被排除。
  2. 申请表、说明书、产品列表被纳入。
  3. 用户选择文档时只使用选中范围。
  4. 待复核文档会降低抽取可信度。