dieya_risk_prediction_backend/app/api/v1/risk_predictions.py
kx_guo e8c122e542 完善风险评分、LLM兜底与会话历史加载
- 接入数据库驱动的七维风险评分第一阶段逻辑\n- 增加主模型失败后的 DeepSeek 语义、流式和预防建议兜底\n- 将 AI 预防建议改为基于评分、历史异常和标准规则动态生成\n- 增加无历史案例时的标准库兜底校验和通用规则匹配\n- 修复未知供应商识别及测试占位名称过滤\n- 增加后端滚动日志文件配置和 LLM 请求日志\n- 历史会话直接读取已保存结果,避免重新调用模型和重算风险\n- 补充评分、供应商识别和 LLM 协议测试
2026-09-04 18:02:39 +08:00

30 lines
1.1 KiB
Python

"""Risk prediction endpoints."""
from typing import Annotated
from fastapi import APIRouter, Depends
from app.api.dependencies import DatabaseSession, require_permission
from app.models.entities import UserAccount
from app.schemas.common import ApiResponse
from app.schemas.risk_prediction import ModelInfo, RiskAssessmentRequest, RiskAssessmentResult
from app.services.risk_prediction import RiskPredictionService
router = APIRouter(prefix="/risk-predictions", tags=["risk-predictions"])
@router.get("/model-info", response_model=ApiResponse[ModelInfo])
async def model_info(
_: Annotated[UserAccount, Depends(require_permission("risk.assess"))],
) -> ApiResponse[ModelInfo]:
return ApiResponse(data=RiskPredictionService.model_info())
@router.post("/preview", response_model=ApiResponse[RiskAssessmentResult])
async def preview_risk(
request: RiskAssessmentRequest,
session: DatabaseSession,
_: Annotated[UserAccount, Depends(require_permission("risk.assess", operate=True))],
) -> ApiResponse[RiskAssessmentResult]:
return ApiResponse(data=await RiskPredictionService.preview(request, session))