sbae56-art/ai-incident-copilot
GitHub: sbae56-art/ai-incident-copilot
AI Incident Copilot 是一个基于大模型的多阶段事件响应 Web 控制台,通过流式流水线将原始日志逐步转化为分诊、根因分析、证据、行动计划和角色化摘要,帮助运维团队加速故障定位与响应决策。
Stars: 0 | Forks: 0
# AI Incident Copilot
🏆 第一名 @ UW–Madison LikeLion Hackathon 2026
AI Incident Copilot 是一个用于事件响应的 Web 控制台,帮助用户通过分诊、根因假设、证据审查、行动计划、高管摘要和代码优化提示来分析原始日志。
该项目使用 Next.js 前端和 Python FastAPI 后端,通过 Server-Sent Events (SSE) 逐阶段流式传输实时分析结果。
这是一个团队黑客松项目。
我的主要贡献集中在后端逻辑、诊断 pipeline 设计、日志/指标分析流程以及 API 集成。
## 功能
| 阶段 | 描述 |
|------|-------------|
| **分诊** | 从日志中进行初步分类和严重程度评估 |
| **假设 / RCA** | 排序后的原因假设和根因分析 |
| **证据** | 结构化的支撑证据 |
| **行动计划** | 带有 HITL 门控的可执行 runbook 步骤 |
| **高管摘要** | 针对特定角色的简报(例如 SRE 与 高管) |
| **优化** | 针对相关代码或配置的提示 |
演示和集成场景的数据位于 `data/` 和 `frontend/mocks/` 下(参见[数据源](#data-sources))。每次实时运行还可以将每个阶段的 JSON 保存在 `data/live//` 下,作为符合 UI 加载器所期望的功能拆分格式的审计追踪。
## 我的角色
我主要负责该项目的后端和事件诊断逻辑部分。
主要职责包括:
- 设计事件诊断 pipeline 结构
- 实现或参与分诊、RCA、证据映射和行动计划的后端逻辑开发
- 参与基于日志/指标的事件分析流程开发
- 构建或参与开发前端使用的 FastAPI endpoints
- 协助将后端输出连接到面向用户的工作流
- 参与最终 MVP 演示和演示流程
## 前置条件
- **Node.js** 20+(前端)
- **Python** 3.10+(后端)
## 快速开始
### 1. 后端 (FastAPI, SSE)
```
cd backend
pip install -r requirements.txt
uvicorn server:app --reload --port 8000
```
- 流式端点:`POST /api/analyze/stream`
- 健康检查:`GET /health`
### 2. 前端
在第二个终端中运行:
```
cd frontend
npm install
npm run dev
```
打开 [http://localhost:3000](http://localhost:3000)。默认情况下,Next.js 路由 `/api/analyze/stream` 会代理到运行在 `http://localhost:8000` 的 FastAPI 服务器。
### 环境变量
| 变量 | 用途 | 默认值 |
|----------|---------|---------|
| `INCIDENT_COPILOT_BACKEND_URL` | FastAPI 基础 URL(由 Next.js 服务器端代理使用) | `http://localhost:8000` |
在部署时设置此变量,以便浏览器在应用服务器与您的 API 通信时保持对 SSE 的同源访问。
## 仓库布局
```
backend/ # Engine modules + FastAPI app (live SSE)
frontend/ # Next.js app, UI, adapters, API routes
data/ # Sample scenario / per-feature JSON
prompts/ # Prompt-related assets
```
## 数据源
本仓库中用于演示和集成场景的示例日志数据来自 **[LogHub](https://github.com/logpai/loghub)** ([`logpai/loghub`](https://github.com/logpai/loghub)),这是一个用于 AI 驱动日志分析的大型系统日志数据集集合(LogPAI;有关 ISSRE’23 的参考文献和引用,请参见上游仓库)。该材料的使用和再分发受 **LogHub 自身的许可证和条款** 约束——在重新发布或基于原始数据集进行开发之前,请查看 [LogHub 仓库](https://github.com/logpai/loghub)。
## 前端脚本
- `npm run build` — 生产环境构建
- `npm run lint` — ESLint
## 架构
### 系统概述
浏览器仅与 **Next.js** 应用程序通信。应用程序在 `/api/analyze/stream` 的 **Route Handler** 将客户端的 POST 请求转发给 **FastAPI**,并将 SSE 流原封不动地传回。这避免了浏览器中的 CORS 问题,为后续增加身份验证或速率限制保留了一个统一的位置,并且能在 Vercel 等主机后稳定运行。
```
flowchart LR
subgraph Browser
UI[React UI + Zustand]
end
subgraph Next["Next.js (Node)"]
Proxy["/api/analyze/stream\nRoute Handler"]
end
subgraph FastAPI["FastAPI (server.py)"]
SSE["POST /api/analyze/stream\nSSE stream"]
ENG["Pipeline engines\n(F1–F6)"]
SSE --> ENG
end
UI -->|POST + SSE| Proxy
Proxy -->|forward body + stream| SSE
ENG -->|optional| FS["Per-run JSON under data/live/"]
```
### Pipeline 阶段(后端)
对于每个分析请求,实时服务器按固定顺序运行引擎,并在每个步骤之后发出一个 SSE `stage` 事件:
1. **分诊** — `incident_triage` (`incident_triage_poc`)
2. **RCA** — `AdvancedRCAEngine`
3. **证据** — `EvidenceNormalizer`(为 UI 规范化的项目)
4. **行动计划** — `ActionPlanEngine`(计划 + 安全评估)
5. **摘要** — `ExecutiveSummaryEngine`(在一个 payload 中包含 SRE 和 Executive 的 markdown)
6. **优化** — `CodeOptimizationEngine`(当没有内容可显示时从流中省略;UI 会隐藏该卡片)
UI 通过 **adapters** (`frontend/lib/adapters/`) 将每个 payload 映射为一致的 view model,供卡片(分诊、假设、证据、行动、摘要、优化)使用。
### 数据路径
- **集成 / 模拟模式**:在没有运行后端的情况下,`data/` 或 `frontend/mocks/ui/` 下的 JSON 由 adapters 加载用于演示。底层日志样本的归属说明见[数据源](#data-sources)。
- **实时模式**:FastAPI 流驱动 UI;中间 JSON 可写入 `data/live//` 下,用于调试并保持与拆分文件布局的一致性。
### 许可证
本仓库中未包含 `LICENSE` 文件。在使用或分发前,请与您的组织确认相关条款。
标签:AIOps, AI副驾驶, AV绕过, FastAPI, HTTP工具, LikeLion, Python, RCA, Server-Sent Events, SRE, SSE, Web控制台, 人工智能, 代码优化, 偏差过滤, 告警分诊, 威斯康星大学麦迪逊分校, 子域名变形, 安全运营, 密码管理, 执行计划, 扫描框架, 无后门, 无线安全, 智能运维, 根因分析, 用户模式Hook绕过, 自动化攻击, 证据审查, 诊断流水线, 运维, 逆向工具, 黑客马拉松