Files
DEMO-AGENT/docs/详细设计/skill/字段抽取编排Skill.md

3.0 KiB
Raw Blame History

字段抽取编排Skill 设计

1. Skill 定位

字段抽取编排Skill 是第三步工作流的总入口 Skill负责组织字段抽取范围确认、字段 schema 加载、规则抽取、表格抽取、长文本归纳、字段标准化、统一字段池写入和报告生成。

英文实现标识建议使用 FieldExtractionOrchestrateSkill

本 Skill 不直接完成每一种抽取细节,而是负责执行顺序和结果合并。

2. 输入

@dataclass
class FieldExtractionOrchestrateInput:
    batch_id: int
    scenario_id: str = "registration_field_extraction"
    field_schema_id: str = "ivd_registration_fields_v1"
    selected_document_ids: list[int] = field(default_factory=list)
    target_field_keys: list[str] = field(default_factory=list)
    enable_llm_fallback: bool = True
    enable_rag_context: bool = True

3. 输出

@dataclass
class FieldExtractionOrchestrateOutput:
    report_type: str
    batch_id: int
    field_schema_id: str
    summary: dict
    field_pool_items: list[dict]
    manual_review_fields: list[dict]
    evidence_refs: list[dict]
    audit_id: int | None = None

4. 依赖 Skill

  1. 字段抽取范围确认Skill
  2. 字段Schema加载Skill
  3. 规则字段抽取Skill
  4. 表格字段抽取Skill
  5. 长文本字段归纳Skill
  6. 字段标准化Skill
  7. 统一字段池写入Skill
  8. 字段抽取报告生成Skill

5. 核心方法

5.1 run(input) -> FieldExtractionOrchestrateOutput

主入口方法。

执行顺序:

  1. 加载执行上下文。
  2. 调用 字段抽取范围确认Skill
  3. 调用 字段Schema加载Skill
  4. 调用 规则字段抽取Skill
  5. 调用 表格字段抽取Skill
  6. 按需调用 长文本字段归纳Skill
  7. 调用 字段标准化Skill
  8. 调用 统一字段池写入Skill
  9. 调用 字段抽取报告生成Skill
  10. 写入审计记录。

5.2 load_execution_context(input) -> FieldExtractionContext

加载批次、文档、完整性检查报告和已有字段池状态。

5.3 merge_field_candidates(*candidate_groups) -> list[FieldCandidate]

合并规则抽取、表格抽取和长文本归纳结果。

5.4 filter_target_fields(schema, target_field_keys) -> list[FieldDefinition]

筛选本次需要抽取的字段。

6. 技术实现

使用技术:

  1. Python dataclass 或 Pydantic
  2. Tool Registry
  3. LLM Provider
  4. Django 服务层
  5. Audit 服务

建议注册名:

tool_registry.register(
    name="field_extraction_orchestrate",
    handler=FieldExtractionOrchestrateSkill().run,
)

7. 异常处理

  1. 无可抽取文档:返回业务提示。
  2. 字段 schema 不存在:任务失败并写审计。
  3. LLM 不可用:跳过 LLM保留规则和表格结果。
  4. 所有抽取方式均失败:返回待人工复核报告。

8. 测试要点

  1. 能按顺序调用依赖 Skill。
  2. LLM 关闭时仍可执行规则抽取。
  3. 无文档时返回清晰错误。
  4. 输出报告结构稳定。