meenaharsh5432-tech/ai-incident-response
GitHub: meenaharsh5432-tech/ai-incident-response
基于LLM的智能事件响应平台,通过SHA256指纹聚合错误并利用Groq大模型秒级诊断根因,一行代码接入Python和Node.js应用。
Stars: 0 | Forks: 0
# AI 事件响应系统
**事件不会等人。你的团队也不应该。在一个地方检测、诊断和解决问题。**






**实时演示:** https://ai-incident-response-eight.vercel.app
**API:** https://ai-incident-response-production.up.railway.app
## 它的功能
AI Incident Response 会自动捕获来自任何 Python 或 Node.js 应用程序的错误,使用 SHA256 指纹将类似的错误聚合为事件,并利用 Groq LLM 诊断根本原因并给出具体的代码修复建议——所有这些都在 2 秒内完成。
每个用户都可以通过 Google OAuth 获得自己独立的事件工作区。只需在你的应用中加入一行代码。从此实现自动分组、诊断和解决追踪。
## 主要特性
- **Google OAuth** — 每用户事件隔离,账户间不共享数据
- **SHA256 指纹聚类** — 相同的错误聚合为一个事件,而不是成千上万行记录
- **LLM 根本原因诊断** — Groq API 为每个事件生成根本原因及可复制粘贴的代码修复方案
- **自动重新激活** — 当相同错误再次出现时,已解决的事件会自动重新激活
- **Python & Node.js SDK** — FastAPI, Flask, Django, Express 中间件,一行代码完成设置
- **用户专属 API 密钥** — 限定在你的账户范围内,错误归属于该密钥所有者
- **MTTR 追踪** — 在每个事件关闭时记录解决时间
- **Prometheus `/metrics`** — 可接入任何现有的监控技术栈
- **AI 反馈闭环** — 对诊断进行点赞/点踩,以长期追踪准确率
- **速率限制** — 基于所有端点的 Redis 按 IP 限制
- **IST 时区** — 错误时间线以印度标准时间显示
## 架构
```
Client Apps (FastAPI / Flask / Django / Express)
↓ SDK (1-line integration) + X-API-Key
FastAPI Backend (Railway)
↓ ↓ ↓
PostgreSQL Redis Groq API
(per-user) (rate limit) (llama-3.1)
↓
React Dashboard (Vercel) — Google OAuth
```
## 关键指标
| 指标 | 数值 |
|--------|-------|
| AI 诊断延迟 | **< 2s** (Groq llama-3.1-8b-instant) |
| SDK | **2** — Python + Node.js |
| 支持的框架 | **5** — FastAPI, Flask, Django, Express, 原生 HTTP |
| 批量摄取 | **每次请求最多 100 个错误** |
| 速率限制 | **100 请求/分钟** (错误接口), **10 请求/分钟** (诊断接口) |
| 单元测试 | **36** (22 个 pytest + 14 个 Jest) |
## 集成
**Python — 3 行**
```
from incident_reporter import IncidentReporter
reporter = IncidentReporter(
api_url="https://ai-incident-response-production.up.railway.app",
service_name="my-service",
api_key="your-key" # create in dashboard → API Keys tab
)
reporter.setup_fastapi(app) # or .register_flask_app(app) / DjangoMiddleware
```
**Node.js — 3 行**
```
const { IncidentReporter } = require('incident-reporter')
const reporter = new IncidentReporter({
apiUrl: 'https://ai-incident-response-production.up.railway.app',
serviceName: 'my-service',
apiKey: 'your-key'
})
app.use(reporter.middleware())
```
错误会被自动捕获。无需修改 try/catch 代码块。
## API 接口
| 方法 | 路径 | 认证 | 描述 |
|--------|------|------|-------------|
| `POST` | `/api/errors` | API key | 摄取单个错误 |
| `POST` | `/api/errors/batch` | API key | 批量摄取,最多 100 个错误 |
| `GET` | `/api/incidents` | JWT | 列出事件(分页,可筛选) |
| `GET` | `/api/incidents/{id}` | JWT | 事件详情及完整错误列表 |
| `GET` | `/api/incidents/{id}/diagnose` | JWT | 触发 AI 根本原因诊断 |
| `POST` | `/api/incidents/{id}/resolve` | JWT | 标记为已解决,记录 MTTR |
| `POST` | `/api/incidents/{id}/feedback` | JWT | 对 AI 诊断点赞/点踩 |
| `GET` | `/api/stats` | JWT | 用户个人统计(事件、错误、MTTR) |
| `POST` | `/api/keys` | JWT | 创建 API 密钥 |
| `GET` | `/api/keys` | JWT | 列出你的 API 密钥 |
| `DELETE` | `/api/keys/{id}` | JWT | 撤销 API 密钥 |
| `GET` | `/auth/google` | — | 启动 Google OAuth 流程 |
| `GET` | `/auth/me` | JWT | 获取当前用户信息 |
| `GET` | `/metrics` | — | Prometheus 指标 |
## 技术栈
| 层级 | 技术 |
|-------|------------|
| 后端 | FastAPI 0.115, Python 3.11, SQLAlchemy 2.0 |
| 数据库 | PostgreSQL 16 及 pgvector |
| 缓存 / 速率限制 | Redis 7 |
| AI | Groq API, llama-3.1-8b-instant |
| 认证 | Google OAuth 2.0, JWT (python-jose) |
| 前端 | React 18, Vite, Tailwind CSS |
| 部署 | Railway (后端), Vercel (前端) |
| 测试 | pytest (22 个测试), Jest (14 个测试) |
## 本地设置
**使用 Docker**
```
docker compose up -d
```
**不使用 Docker**
```
# 后端
cd backend && pip install -r requirements.txt
uvicorn app.main:app --reload --port 8001
# 前端 (单独的终端)
cd frontend && npm install && npm run dev
```
**必需的环境变量 (`backend/.env`)**
```
DATABASE_URL=postgresql://...
REDIS_URL=redis://...
GROQ_API_KEY=gsk_...
OAUTH_GOOGLE_CLIENT_ID=...
OAUTH_GOOGLE_CLIENT_SECRET=...
OAUTH_GOOGLE_REDIRECT_URI=http://localhost:8001/auth/google/callback
JWT_SECRET=...
FRONTEND_URL=http://localhost:5173
```
**初始化测试数据**
```
# 1. 在 dashboard → API Keys 标签页中创建 API key
# 2. 运行 seed 脚本
python seed_errors.py --url https://ai-incident-response-production.up.railway.app --api-key
```
## SDK 特性
| 特性 | Python | Node.js |
|---------|--------|---------|
| 每 5 秒自动刷新 | ✓ | ✓ |
| 带退避的重试 (1s, 2s, 4s) | ✓ | ✓ |
| API 不可用时的本地回退日志 | ✓ | ✓ |
| 每次请求 < 5ms 开销 | ✓ | ✓ |
| 永不导致宿主应用程序崩溃 | ✓ | ✓ |
| 批量摄取(最多 100 个错误) | ✓ | — |