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

80 lines
1.8 KiB
Markdown

# 字段抽取范围确认Skill 设计
## 1. Skill 定位
`字段抽取范围确认Skill` 负责确定本次字段抽取使用哪些文档,以及每个目标字段优先从哪些文档角色中抽取。
英文实现标识建议使用 `FieldExtractionScopeResolveSkill`
## 2. 输入
```python
@dataclass
class FieldExtractionScopeResolveInput:
documents: list[DocumentFact]
selected_document_ids: list[int]
target_field_keys: list[str]
field_source_priority: dict
```
## 3. 输出
```python
@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. 待复核文档会降低抽取可信度。