1.5 KiB
1.5 KiB
字段Schema加载Skill 设计
1. Skill 定位
字段Schema加载Skill 负责加载注册申报字段 schema,提供字段定义、来源优先级、抽取方式、回填属性和一致性要求。
英文实现标识建议使用 FieldSchemaLoadSkill。
2. 输入
@dataclass
class FieldSchemaLoadInput:
field_schema_id: str
target_field_keys: list[str] = field(default_factory=list)
3. 输出
@dataclass
class FieldSchemaLoadOutput:
field_schema_id: str
version: str
fields: list[FieldDefinition]
source_priority: dict
validation_warnings: list[dict]
4. 核心方法
4.1 run(input) -> FieldSchemaLoadOutput
主入口方法。
4.2 load_schema_file(field_schema_id) -> dict
从 YAML 读取字段 schema。
4.3 validate_field_schema(raw_schema) -> FieldSchemaValidationResult
校验字段定义。
4.4 select_target_fields(schema, target_field_keys) -> list[FieldDefinition]
筛选目标字段。
5. 技术实现
使用技术:
PyYAML- Pydantic
- Django cache
建议路径:
configs/registration/fields/ivd_registration_fields_v1.yaml
6. 异常处理
- schema 文件不存在:任务失败。
- 字段定义缺少
field_key:校验失败。 - 目标字段不存在:返回业务错误。
- 来源优先级缺失:允许执行,但记录警告。
7. 测试要点
- schema 加载成功。
- 目标字段筛选正确。
- 缺少必填字段时报错。
- 来源优先级输出正确。