Files
RiskAgent/src/domain/model.ts
T
freedakgmail c670b9e454 外包风险评估系统:领域引擎+前端+服务端持久化与生产部署
- 确定性领域引擎(分类/评分/分级/红线/费用/裁决)+LLM(通义千问)语言理解
- 6步评估向导、服务端草稿持久化(跨设备/编辑草稿保护)
- 工作流(草稿→风控→管理层)、RBAC、报告导出、校准、客户/费率/红线/最低工资管理
- 专业图标体系替换全部emoji、看板美化
- 生产化:API_BASE可配置(同源反代)、auth密钥惰性读取修复RBAC
- 444单测+204前端测试+51 e2e
2026-06-13 01:06:39 +08:00

123 lines
3.8 KiB
TypeScript
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.
/**
* 风险模型配置实体(Req 2, 4, 11, 14)。
*
* 三层结构:RiskModel → Dimension → Indicator → ScoringRule,外加 Redline 红线集合。
* 指标体系以结构化配置存储,Scoring_Engine 读取任意合法配置即可完成评分(配置驱动)。
*/
import type { BusinessType, Industry, RiskLevel, Weight } from './common.js';
/**
* 评分项(Scoring_Rule):定义某一 Risk_Level 的判定标准(Req 11.3)。
* 合法 Indicator 须覆盖 Risk_Level 1 至 5 全部级别。
*/
export interface ScoringRule {
/** 该评分项对应的风险等级(1 至 5)。 */
level: RiskLevel;
/** 等级标签,如"低风险"。 */
label: string;
/** 判定标准描述。 */
description: string;
}
/**
* 风险指标(IndicatorReq 11.1, 11.3)。可增删、启停、调权。
*/
export interface Indicator {
/** 指标唯一标识(在所属 Dimension 内稳定)。 */
id: string;
/** 指标名称。 */
name: string;
/** 指标权重,取值 0 至 100;同级启用项归一化后之和为 100%。 */
weight: Weight;
/** 启用状态;停用保留配置但不计分(Req 11.1, 4.4)。 */
enabled: boolean;
/** 评分规则,覆盖 Risk_Level 1-5(长度应为 5Req 11.3)。 */
scoringRules: ScoringRule[];
/** 证据要求描述:判定 Risk_Level 所需证据。 */
evidenceRequired: string;
/** 追问话术:信息缺口时向评估者提出的问题文案。 */
askPrompt: string;
}
/**
* 风险维度(Dimension,Req 11.1)。可增删、启停、调权。
*/
export interface Dimension {
/** 维度唯一标识。 */
id: string;
/** 维度名称,如"客户风险"。 */
name: string;
/** 维度权重,取值 0 至 100;同级启用项归一化后之和为 100%。 */
weight: Weight;
/** 启用状态;停用保留配置但不计分(Req 11.1, 4.4)。 */
enabled: boolean;
/** 维度下的指标集合。 */
indicators: Indicator[];
}
/**
* 红线规则(RedlineReq 6, 11.4)。命中即触发一票否决,独立于分值通道。
*/
export interface Redline {
/** 红线唯一标识(Req 11.4,标识重复非法)。 */
id: string;
/** 触发条件(独立于 Risk_Score / Risk_Grade)。 */
triggerCondition: string;
/** 一票否决后果说明。 */
consequence: string;
/** 启用状态。 */
enabled: boolean;
}
/**
* 风险模型(RiskModelReq 2.3)。Template 实例化后的运行时快照。
*/
export interface RiskModel {
/** 模型唯一标识。 */
id: string;
/** 模型名称。 */
name: string;
/** 适用业务类型。 */
businessType: BusinessType;
/** 风险维度集合。 */
dimensions: Dimension[];
/** 红线规则集合。 */
redlines: Redline[];
}
/**
* 风险模型模板(TemplateReq 2.1-2.7)。按业务类型与行业组织,支持继承。
*/
export interface Template {
/** 模板唯一标识。 */
id: string;
/** 模板名称。 */
name: string;
/** 适用业务类型。 */
businessType: BusinessType;
/** 适用行业。 */
industry: Industry;
/** 父模板标识;用于继承。环引用或继承层级 > 5 非法(Req 2.5, 2.7)。 */
parentTemplateId?: string;
/** 是否为该业务类型的默认模板(Req 2.2)。 */
isDefault: boolean;
/** 模板承载的风险模型配置(维度/指标/权重/评分规则/红线)。 */
riskModelConfig: RiskModelConfig;
}
/**
* 模板承载的风险模型配置主体。
* 与 RiskModel 结构一致,但作为可继承/可覆盖的配置存在(尚未实例化为本次评估快照)。
*/
export interface RiskModelConfig {
/** 模型名称。 */
name: string;
/** 适用业务类型。 */
businessType: BusinessType;
/** 风险维度集合。 */
dimensions: Dimension[];
/** 红线规则集合。 */
redlines: Redline[];
}