Files
DEMO-AGENT/docs/详细设计/skill/字段Schema加载Skill.md

76 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 字段Schema加载Skill 设计
## 1. Skill 定位
`字段Schema加载Skill` 负责加载注册申报字段 schema提供字段定义、来源优先级、抽取方式、回填属性和一致性要求。
英文实现标识建议使用 `FieldSchemaLoadSkill`
## 2. 输入
```python
@dataclass
class FieldSchemaLoadInput:
field_schema_id: str
target_field_keys: list[str] = field(default_factory=list)
```
## 3. 输出
```python
@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. 技术实现
使用技术:
1. `PyYAML`
2. Pydantic
3. Django cache
建议路径:
```text
configs/registration/fields/ivd_registration_fields_v1.yaml
```
## 6. 异常处理
1. schema 文件不存在:任务失败。
2. 字段定义缺少 `field_key`:校验失败。
3. 目标字段不存在:返回业务错误。
4. 来源优先级缺失:允许执行,但记录警告。
## 7. 测试要点
1. schema 加载成功。
2. 目标字段筛选正确。
3. 缺少必填字段时报错。
4. 来源优先级输出正确。