# 规则字段抽取Skill 设计 ## 1. Skill 定位 `规则字段抽取Skill` 负责从标题、段落和固定标签中抽取字段候选值,适合处理格式稳定、标签明确的注册申报字段。 英文实现标识建议使用 `RuleFieldExtractSkill`。 ## 2. 输入 ```python @dataclass class RuleFieldExtractInput: documents: list[DocumentContent] field_definitions: list[FieldDefinition] ``` ## 3. 输出 ```python @dataclass class RuleFieldExtractOutput: candidates: list[FieldCandidate] failed_fields: list[dict] tool_calls: list[dict] ``` ## 4. 抽取方式 1. 标题后取值。 2. 标签后取值。 3. 固定段落规则。 4. 正则匹配。 ## 5. 核心方法 ### 5.1 `run(input) -> RuleFieldExtractOutput` 主入口方法。 ### 5.2 `extract_by_heading(document, field_definition) -> FieldCandidate | None` 从标题结构中抽取。 ### 5.3 `extract_by_label(document, field_definition) -> FieldCandidate | None` 从标签字段中抽取。 ### 5.4 `extract_by_regex(document, field_definition) -> FieldCandidate | None` 使用字段配置中的正则规则抽取。 ### 5.5 `build_candidate(field, value, source) -> FieldCandidate` 构建字段候选。 ## 6. 技术实现 使用技术: 1. `re` 2. 文本结构解析结果 3. 中文标点标准化 ## 7. 异常处理 1. 文本为空:跳过该文档。 2. 多个候选:全部保留。 3. 正则异常:记录工具失败。 4. 候选值过长:标记待复核。 ## 8. 测试要点 1. 能从标题抽取产品名称。 2. 能从标签抽取储存条件。 3. 多候选值全部保留。 4. 空文本不报错。