66 lines
1.2 KiB
Markdown
66 lines
1.2 KiB
Markdown
# 模板选择Skill 设计
|
|
|
|
## 1. Skill 定位
|
|
|
|
`模板选择Skill` 负责根据目标输出类型选择可用 Word 模板,并校验模板适用流程和版本状态。
|
|
|
|
英文实现标识建议使用 `WordTemplateSelectSkill`。
|
|
|
|
## 2. 输入
|
|
|
|
```python
|
|
@dataclass
|
|
class WordTemplateSelectInput:
|
|
template_id: str
|
|
target_output_type: str
|
|
workflow_type: str = "registration"
|
|
```
|
|
|
|
## 3. 输出
|
|
|
|
```python
|
|
@dataclass
|
|
class WordTemplateSelectOutput:
|
|
template_id: str
|
|
template_version: str
|
|
template_file_path: Path
|
|
template_type: str
|
|
validation_warnings: list[dict]
|
|
```
|
|
|
|
## 4. 核心方法
|
|
|
|
### 4.1 `run(input) -> WordTemplateSelectOutput`
|
|
|
|
主入口方法。
|
|
|
|
### 4.2 `load_template(template_id) -> WordTemplate`
|
|
|
|
读取模板记录。
|
|
|
|
### 4.3 `validate_template(template, workflow_type) -> TemplateValidationResult`
|
|
|
|
校验模板适用性。
|
|
|
|
## 5. 技术实现
|
|
|
|
使用技术:
|
|
|
|
1. Django ORM
|
|
2. Django Storage
|
|
3. 模板元数据 YAML
|
|
|
|
## 6. 异常处理
|
|
|
|
1. 模板不存在:任务失败。
|
|
2. 模板文件丢失:任务失败。
|
|
3. 模板未启用:任务失败。
|
|
4. 流程不匹配:任务失败。
|
|
|
|
## 7. 测试要点
|
|
|
|
1. 能选择启用模板。
|
|
2. 禁用模板不可用。
|
|
3. 流程不匹配时报错。
|
|
|