71 lines
1.3 KiB
Markdown
71 lines
1.3 KiB
Markdown
# 准入判定Skill 设计
|
|
|
|
## 1. Skill 定位
|
|
|
|
`准入判定Skill` 负责根据风险项、人工复核项和准入规则计算最终是否通过。
|
|
|
|
英文实现标识建议使用 `AdmissionDecisionSkill`。
|
|
|
|
## 2. 输入
|
|
|
|
```python
|
|
@dataclass
|
|
class AdmissionDecisionInput:
|
|
risk_items: list[RiskItem]
|
|
manual_review_items: list[dict]
|
|
admission_rules: dict
|
|
```
|
|
|
|
## 3. 输出
|
|
|
|
```python
|
|
@dataclass
|
|
class AdmissionDecisionOutput:
|
|
pass_status: str
|
|
highest_risk_level: str
|
|
decision_reason: str
|
|
score_detail: dict
|
|
```
|
|
|
|
## 4. 判定规则
|
|
|
|
1. 任一高风险:不通过。
|
|
2. 多个中风险:待整改后复核。
|
|
3. 只有低风险:条件通过。
|
|
4. 有人工复核项:待复核。
|
|
5. 无风险:通过。
|
|
|
|
## 5. 核心方法
|
|
|
|
### 5.1 `run(input) -> AdmissionDecisionOutput`
|
|
|
|
主入口方法。
|
|
|
|
### 5.2 `calculate_highest_level(risk_items) -> str`
|
|
|
|
计算最高风险等级。
|
|
|
|
### 5.3 `calculate_status(risk_items, manual_review_items, rules) -> str`
|
|
|
|
计算准入状态。
|
|
|
|
### 5.4 `build_decision_reason(status, risk_items) -> str`
|
|
|
|
生成判定理由。
|
|
|
|
## 6. 技术实现
|
|
|
|
使用技术:
|
|
|
|
1. 风险等级枚举
|
|
2. 准入规则 YAML
|
|
3. Python 规则判断
|
|
|
|
## 7. 测试要点
|
|
|
|
1. 高风险导致失败。
|
|
2. 中风险过多导致复核。
|
|
3. 低风险条件通过。
|
|
4. 无风险通过。
|
|
|