feat: 添加可配置场景注册表与规则引擎
- 新增场景基类、配置加载、注册表与原语模块 - 添加 r10_refund_split 规则及场景 JSON Schema - 扩展 scan 引擎与 scenarios API - 新增场景注册表/配置/集成测试 - 更新前端 App、api、labels 支持新场景
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
"""场景元数据 API:暴露已注册的审计场景,供前端动态渲染。
|
||||
|
||||
新增场景(实现 BaseScenario 并经 @register_scenario 注册)后,本端点自动反映,
|
||||
无需改动前端代码。导入 registry 时会触发 app.scenarios 包的自动发现与注册。
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import APIRouter
|
||||
|
||||
from app.api.schemas import ScenarioOut
|
||||
from app.scenarios.registry import scenario_meta
|
||||
|
||||
router = APIRouter(prefix="/scenarios", tags=["scenarios"])
|
||||
|
||||
|
||||
@router.get("", response_model=list[ScenarioOut])
|
||||
def list_scenarios() -> list[dict]:
|
||||
"""返回全部已注册场景的元数据(场景码、标题、展示名、风险域)。"""
|
||||
return scenario_meta()
|
||||
@@ -83,3 +83,12 @@ class DashboardSummary(BaseModel):
|
||||
by_confidence: dict[str, int]
|
||||
by_scenario: dict[str, int]
|
||||
total_amount_involved: float
|
||||
|
||||
|
||||
class ScenarioOut(BaseModel):
|
||||
"""已注册审计场景的元数据,供前端动态渲染场景名(替代写死的 scenarioLabel)。"""
|
||||
|
||||
code: str
|
||||
title: str
|
||||
label: str
|
||||
risk_domain: str
|
||||
|
||||
Reference in New Issue
Block a user