WIP-CHECKPOINT[auth-refactor]: 固化工程师崩溃前部分成果 + 同树其他未提交WIP(仅源码,不含密钥/二进制)-- 待重激活工程师续作
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
# =============================================================================
|
||||
# 企微IT智能服务台 — 阶段5 自动化闭环 常量定义
|
||||
# =============================================================================
|
||||
# 说明:集中定义自动化引擎的 WS 事件名、执行模式、风险等级、会话/动作状态、
|
||||
# 映射源优先级、以及自动化专用错误码。
|
||||
#
|
||||
# 约定说明(重要,与架构设计的一致性取舍):
|
||||
# 1. 统一响应格式沿用项目既有 {code: int, data: {}, message: str},
|
||||
# 因此架构文档中的错误码段 AUT-001~AUT-0xx 在此以数值形式落地为 4001~40xx,
|
||||
# WS 的 automation.error 事件同样携带该数值 code。
|
||||
# 2. WS 事件名统一以 automation. 为前缀(架构约定)。
|
||||
# =============================================================================
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# WebSocket 事件名(前缀 automation.)
|
||||
# --------------------------------------------------------------------------
|
||||
AUTOMATION_WS_PROGRESS = "automation.progress" # 进度推送(步骤开始/完成)
|
||||
AUTOMATION_WS_ACTION_REQUIRED = "automation.action_required" # 需要坐席审批 / 员工二次确认
|
||||
AUTOMATION_WS_RESOLVED = "automation.resolved" # 处置成功,等待/已关单
|
||||
AUTOMATION_WS_TAKEOVER = "automation.takeover" # 转人工接管
|
||||
AUTOMATION_WS_ERROR = "automation.error" # 异常(转人工 + 通知)
|
||||
|
||||
AUTOMATION_WS_EVENTS = {
|
||||
"progress": AUTOMATION_WS_PROGRESS,
|
||||
"action_required": AUTOMATION_WS_ACTION_REQUIRED,
|
||||
"resolved": AUTOMATION_WS_RESOLVED,
|
||||
"takeover": AUTOMATION_WS_TAKEOVER,
|
||||
"error": AUTOMATION_WS_ERROR,
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 执行模式(双模式执行引擎)
|
||||
# --------------------------------------------------------------------------
|
||||
AUTOMATION_MODE_PLAN_ONLY = "plan_only" # 仅生成处置方案,不真正执行外部动作
|
||||
AUTOMATION_MODE_REAL_EXEC = "real_exec" # 真正执行外部系统动作
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 风险等级
|
||||
# --------------------------------------------------------------------------
|
||||
AUTOMATION_RISK_READ = "read" # 只读:默认可自动执行
|
||||
AUTOMATION_RISK_LOW = "low" # 低风险写操作:默认可自动执行
|
||||
AUTOMATION_RISK_HIGH = "high" # 高危:必须审批或员工 H5 二次确认
|
||||
|
||||
# 默认可自动执行的风险等级集合(其余必须走审批/确认)
|
||||
AUTOMATION_AUTO_EXECUTABLE_RISKS = {AUTOMATION_RISK_READ, AUTOMATION_RISK_LOW}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 会话状态机
|
||||
# --------------------------------------------------------------------------
|
||||
AUTOMATION_SESSION_CREATED = "created"
|
||||
AUTOMATION_SESSION_RUNNING = "running"
|
||||
AUTOMATION_SESSION_PAUSED = "paused" # 等待审批/确认时挂起
|
||||
AUTOMATION_SESSION_RESOLVED = "resolved" # 处置成功,等待静默关单/员工确认
|
||||
AUTOMATION_SESSION_CLOSED = "closed" # 已关单
|
||||
AUTOMATION_SESSION_HANDOFF = "handoff" # 已转人工
|
||||
AUTOMATION_SESSION_ERROR = "error"
|
||||
|
||||
# 终态集合(不再流转)
|
||||
AUTOMATION_SESSION_TERMINAL_STATES = {
|
||||
AUTOMATION_SESSION_CLOSED,
|
||||
AUTOMATION_SESSION_HANDOFF,
|
||||
AUTOMATION_SESSION_ERROR,
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 动作状态机
|
||||
# --------------------------------------------------------------------------
|
||||
AUTOMATION_ACTION_PENDING = "pending"
|
||||
AUTOMATION_ACTION_RUNNING = "running"
|
||||
AUTOMATION_ACTION_SUCCESS = "success"
|
||||
AUTOMATION_ACTION_FAILED = "failed"
|
||||
AUTOMATION_ACTION_SKIPPED = "skipped"
|
||||
AUTOMATION_ACTION_AWAIT_APPROVAL = "await_approval"
|
||||
AUTOMATION_ACTION_APPROVED = "approved"
|
||||
AUTOMATION_ACTION_REJECTED = "rejected"
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 映射源与优先级(联软主,eHR 兜底;aTrust 密钥未到后置)
|
||||
# --------------------------------------------------------------------------
|
||||
MAPPING_SOURCES = ["lianruan", "atrust", "ehr"]
|
||||
MAPPING_SOURCE_PRIORITY = {
|
||||
"lianruan": 0, # 联软终端安全管理(主,支持 strusername 直接映射)
|
||||
"atrust": 1, # 零信任 / aTrust(密钥未到,预留占位)
|
||||
"ehr": 2, # 北森 EHR 静态映射(兜底)
|
||||
}
|
||||
|
||||
# 静默关单 Redis TTL(秒):处置成功后 10 分钟内员工无异议则自动关单
|
||||
AUTOMATION_SILENT_CLOSE_TTL = 600
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 自动化错误码(数值,沿用项目 {code:int} 约定)
|
||||
# 架构文档 AUT-001~AUT-0xx → 4001~40xx
|
||||
# --------------------------------------------------------------------------
|
||||
class AutomationErrorCode:
|
||||
SCENARIO_NOT_FOUND = 4001 # 场景未启用或未配置
|
||||
INTENT_FAILED = 4002 # 意图识别失败
|
||||
EXTERNAL_CALL_FAILED = 4003 # 外部系统调用失败
|
||||
ACTION_REJECTED = 4004 # 动作被拒绝(风险/需审批未通过)
|
||||
SESSION_NOT_FOUND = 4005 # 自动化会话不存在
|
||||
APPROVAL_REJECTED = 4006 # 审批被驳回
|
||||
TIMEOUT_HANDOFF = 4007 # 超时自动接管
|
||||
EMPLOYEE_DECLINED = 4008 # 员工拒绝/未二次确认
|
||||
CONFIG_ERROR = 4009 # 配置错误(阈值/场景/映射)
|
||||
MAPPING_FAILED = 4010 # 终端/员工映射失败
|
||||
INVALID_MODE = 4011 # 非法执行模式
|
||||
ROLLBACK_FAILED = 4012 # 回滚补偿失败
|
||||
|
||||
|
||||
AUTOMATION_ERROR_MESSAGES = {
|
||||
AutomationErrorCode.SCENARIO_NOT_FOUND: "场景未启用或未配置",
|
||||
AutomationErrorCode.INTENT_FAILED: "意图识别失败",
|
||||
AutomationErrorCode.EXTERNAL_CALL_FAILED: "外部系统调用失败",
|
||||
AutomationErrorCode.ACTION_REJECTED: "动作被拒绝(需审批或高危)",
|
||||
AutomationErrorCode.SESSION_NOT_FOUND: "自动化会话不存在",
|
||||
AutomationErrorCode.APPROVAL_REJECTED: "审批被驳回",
|
||||
AutomationErrorCode.TIMEOUT_HANDOFF: "处置超时,已自动转人工",
|
||||
AutomationErrorCode.EMPLOYEE_DECLINED: "员工未确认或已拒绝",
|
||||
AutomationErrorCode.CONFIG_ERROR: "自动化配置错误",
|
||||
AutomationErrorCode.MAPPING_FAILED: "终端/员工映射失败",
|
||||
AutomationErrorCode.INVALID_MODE: "非法的执行模式",
|
||||
AutomationErrorCode.ROLLBACK_FAILED: "回滚补偿失败",
|
||||
}
|
||||
|
||||
|
||||
def automation_error_message(code: int) -> str:
|
||||
"""根据自动化错误码返回默认中文消息。"""
|
||||
return AUTOMATION_ERROR_MESSAGES.get(code, "自动化处理异常")
|
||||
Reference in New Issue
Block a user