Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

Repository files navigation

AI Request Triage Agent

一个使用 React、TypeScript、FastAPI、SQLite 和 DeepSeek API 实现的 AI 请求风险分诊系统。

用户提交 AI 使用请求后,系统生成风险等级、下一步建议和判断理由,再由人工批准或拒绝。每次模型调用、审核决定和业务动作都会保存,方便失败重试和审计。

项目参考了 ai-operations-control-center 的业务方向和目录组织,核心数据模型、状态流程、Provider、风险策略、前端交互与测试均按本项目需求重新设计。

功能

  • 创建、查询和修改 Request
  • 使用 Mock 或 DeepSeek 进行风险分诊
  • 验证模型返回的结构化 JSON
  • 用固定规则覆盖不安全的模型判断
  • 保存运行耗时、Token、错误和审核历史
  • 支持分诊失败重试和人工修改审核决定
  • 保存并查询审计日志

技术栈

后端

  • Python、FastAPI、Pydantic
  • SQLAlchemy、SQLite
  • DeepSeek API(OpenAI-compatible SDK)
  • pytest

前端

  • React、TypeScript
  • Vite、Fetch API、CSS

系统流程

flowchart LR
    U[用户提交 Request] --> API[FastAPI]
    API --> S[Triage Service]
    S --> P{Provider}
    P --> M[Mock]
    P --> D[DeepSeek]
    M --> V[Pydantic Validation]
    D --> V
    V --> R[Risk Policy]
    R --> DB[(SQLite)]
    DB --> H[人工审核]
    H --> DB
    API --> A[Audit Log]
    A --> DB
Loading

状态流程:

submitted → triaging → pending_review → approved / rejected
                    └→ triage_failed → retry
  • personal_data 或 external_write 的最终风险至少为 high。
  • customer_data 的最终风险至少为 medium。
  • 高风险 Request 要批准时必须填写 review_note。
  • 修改待审核 Request 后,旧分诊结果失效,需要重新分诊。

目录说明

ai-request-triage-agent/
├── backend/
│   ├── app/
│   │   ├── api/                 # FastAPI 路由
│   │   ├── services/            # 分诊、Provider、风险规则、审计和种子数据
│   │   ├── config.py            # 环境配置
│   │   ├── database.py          # 数据库连接与 Session
│   │   ├── models.py            # SQLAlchemy 模型
│   │   ├── schemas.py           # Pydantic 数据合同
│   │   └── main.py              # 后端入口
│   └── tests/                   # 后端测试
├── frontend/
│   └── src/
│       ├── api/client.ts        # 通用 Fetch 与错误处理
│       ├── api/requests.ts      # Request API 函数
│       ├── types.ts             # TypeScript 类型
│       └── App.tsx              # 页面和交互
├── refs/                        # 参考项目
└── project-learning-guide.html  # 七天学习手册

参考与改造

  • 参考上游的 FastAPI + React 双进程结构,以及 Request、Audit 的基础思路。
  • 自己实现了 Provider 契约、Mock/DeepSeek 切换、风险规则、失败重试和 Review 1:N 历史。
  • 上游偏通用运营 Dashboard,本项目聚焦 Request → Triage → Review → Audit 闭环。

配置

在 backend 中复制环境变量示例:

Copy-Item .env.example .env
LLM_PROVIDER=mock
DEEPSEEK_API_KEY=
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-v4-flash
LLM_TIMEOUT_SECONDS=30

日常开发推荐使用 mock。需要调用真实模型时改为 deepseek 并填写 API Key。不要提交真实 .env。

启动

后端

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r backend\requirements.txt
cd backend
uvicorn app.main:app --reload

前端

cd frontend
npm install
npm run dev

前端地址:http://localhost:5173

测试

后端测试使用 Mock 和独立内存数据库,不会调用 DeepSeek:

cd backend
python -m pytest tests -q

前端生产构建:

cd frontend
npm run build

当前项目只负责分诊和人工决策,不会自动执行模型建议中的外部操作。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages