meenaharsh5432-tech/ai-incident-response

GitHub: meenaharsh5432-tech/ai-incident-response

基于LLM的智能事件响应平台,通过SHA256指纹聚合错误并利用Groq大模型秒级诊断根因,一行代码接入Python和Node.js应用。

Stars: 0 | Forks: 0

# AI 事件响应系统 **事件不会等人。你的团队也不应该。在一个地方检测、诊断和解决问题。** ![Python](https://img.shields.io/badge/Python-3.11-3776AB?style=flat&logo=python&logoColor=white) ![FastAPI](https://img.shields.io/badge/FastAPI-0.115-009688?style=flat&logo=fastapi&logoColor=white) ![React](https://img.shields.io/badge/React-18-61DAFB?style=flat&logo=react&logoColor=black) ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-4169E1?style=flat&logo=postgresql&logoColor=white) ![Redis](https://img.shields.io/badge/Redis-7-DC382D?style=flat&logo=redis&logoColor=white) ![Groq](https://img.shields.io/badge/Groq-llama--3.1--8b-F55036?style=flat) **实时演示:** 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 个错误) | ✓ | — |