RitwijParmar/SRE-Nidaan

GitHub: RitwijParmar/SRE-Nidaan

面向 SRE 团队的因果事件响应副驾驶系统,通过结构化因果推理、证据 grounding 和人工审批门控辅助生产环境事件分析。

Stars: 0 | Forks: 0

# SRE-Nidaan (SRE निदान) [![Model](https://img.shields.io/badge/Model-Meta--Llama--3--8B--Instruct-orange.svg)](https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Python](https://img.shields.io/badge/Python-3.9+-3776AB.svg)](https://www.python.org/) [![Framework](https://img.shields.io/badge/Framework-NEXUS--CAUSAL_v3.1-green.svg)](https://github.com/RitwijParmar/NEXUS-CAUSAL-v3.1) 面向生产环境的 SRE 团队因果事件响应副驾驶。 SRE-Nidaan 是一个由 3 个服务组成的系统(`Face + Body + Brain`),它结合了: - 结构化的事件分析与因果 DAG 输出 - 基于遥测数据 + 知识库证据的 grounding - 后端的 MCP 风格工具路由 - 干预前严格的人工审批门控 - 为持续改进而收集的分析师反馈 ## 线上产品 - 产品 (规范链接): [https://sre-nidaan-122722888597.us-east4.run.app](https://sre-nidaan-122722888597.us-east4.run.app) - 产品别名: [https://sre-nidaan-face-122722888597.us-east4.run.app](https://sre-nidaan-face-122722888597.us-east4.run.app) - Body API: [https://sre-nidaan-body-122722888597.us-east4.run.app](https://sre-nidaan-body-122722888597.us-east4.run.app) - Brain API: [https://sre-nidaan-brain-ciiiagnzaq-uk.a.run.app](https://sre-nidaan-brain-ciiiagnzaq-uk.a.run.app) ## 演示视频 点击缩略图观看简短的产品旁白演示: [![SRE-Nidaan 演示缩略图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/3b7baf5bcf115933.png)](presentations/SRE_Nidaan_Demo_Recording_Voiceover_Indian.mp4) 直接视频链接: - [SRE_Nidaan_Demo_Recording_Voiceover_Indian.mp4](presentations/SRE_Nidaan_Demo_Recording_Voiceover_Indian.mp4) ## 为什么开发 SRE-Nidaan 在处理事件时,普通的 LLM 响应可能听起来很自信,但仍然可能是不安全的: - 它们经常会遗漏混杂因素 - 它们可能会推荐没有经过 grounding 的通用操作 - 它们天生不会强制执行安全门控 SRE-Nidaan 通过强制结构化的因果输出、对证据重叠度进行评分,以及在高影响操作前要求人工审批来解决这些问题。 ## 架构(真实图表) ![SRE-Nidaan 架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/237d716f8a115937.png) ### 服务职责 - **Face (Next.js)**:运维 UI、事件输入、图工作区、安全和反馈操作。 - **Body (FastAPI)**:编排、grounding 检索、MCP 工具调用、候选验证和持久化。 - **Brain (vLLM + LoRA)**:与 OpenAI 兼容的推理服务,通过生产适配器提供 Meta-Llama-3-8B-Instruct 服务。 ### 端到端事件处理流程 1. 运维人员提供事件简报和遥测上下文。 2. Body 获取遥测数据(`sre.telemetry.get_snapshot`)并从 `ops/knowledge_base.json` 检索 grounding 证据。 3. Body 使用严格的 schema 约束(`guided_json`)提示 Brain。 4. Body 验证候选质量(证据重叠度、遥测重叠度、结构可行性)。 5. Body 要么返回已接受的实时分析,要么返回确定性的 grounded 后备方案。 6. Face 渲染 DAG + 推理过程;干预需要人工授权。 7. 分析师反馈被持久化,用于未来的奖励/偏好改进。 ## 真实数据与评估图表 以下所有图表均由项目构件生成,而非手工绘制的占位符。 ### 数据集组成 ![领域分布](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8d746f68f8115938.png) ![Pearl 层级混合](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/dacb456650115939.png) ### 评估快照 (`results/final_evaluation_report.json`) ![类别分数](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/aa60e84875115940.png) ![领域分数](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c24c7b2c23115941.png) ![质量信号](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/85fa62c069115942.png) ### 运行时/训练概况 ![训练运行时概况](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5fa830dc80115943.png) ## 仓库结构 ``` SRE-Nidaan/ ├── backend/ # FastAPI body service │ └── main.py ├── frontend/ # Next.js face service │ ├── src/app/page.tsx │ └── src/components/CausalGraph.tsx ├── src/ # Training + runtime libraries │ ├── data/ │ ├── training/ │ ├── evaluation/ │ ├── runtime/ │ └── utils/ ├── scripts/ # Pipeline and utility scripts │ ├── 01_generate_dataset.py │ ├── 02_run_sft.py │ ├── 03_train_reward_model.py │ ├── 04_run_rlhf.py │ ├── 05_run_evaluation.py │ ├── 06_select_best_sft_checkpoint.py │ ├── 07_generate_structured_response.py │ ├── 08_prepare_production_adapter.py │ ├── record_site_demo.py │ ├── add_demo_voiceover.py │ └── generate_readme_charts.py ├── data/sre_nidaan_dataset.json ├── results/final_evaluation_report.json ├── ops/knowledge_base.json ├── inference_server.py # Brain service ├── docker-compose.yml └── deploy/gcp/ # Cloud Run deployment assets ``` ## 快速开始 ### 前置条件 - Python 3.9+ - Node.js 18+ - Docker(可选,推荐用于完整堆栈) - NVIDIA GPU(Brain 推理/训练工作负载必需) 安装依赖: ``` git clone https://github.com/RitwijParmar/SRE-Nidaan.git cd SRE-Nidaan pip install -r requirements.txt ``` ## 本地运行 (原生) ### 1) 准备生产适配器 ``` export HF_TOKEN="your_hf_token" python scripts/08_prepare_production_adapter.py ``` ### 2) 启动 Brain ``` export MODEL_ID="meta-llama/Meta-Llama-3-8B-Instruct" export NEXUS_LORA_PATH="$(pwd)/results/production_adapter" python inference_server.py ``` ### 3) 启动 Body ``` export VLLM_ENDPOINT="http://localhost:8000/v1" export MODEL_ID="meta-llama/Meta-Llama-3-8B-Instruct" export PRODUCTION_ARTIFACT_LABEL="checkpoint-1064" uvicorn backend.main:app --host 0.0.0.0 --port 8001 --reload ``` ### 4) 启动 Face ``` cd frontend npm install NEXT_PUBLIC_API_URL=http://localhost:8001 npm run dev ``` 打开 [http://localhost:3000](http://localhost:3000) ## Docker 运行 (3 个服务) ``` export HF_TOKEN="your_hf_token" export MODEL_ID="meta-llama/Meta-Llama-3-8B-Instruct" python scripts/08_prepare_production_adapter.py docker-compose up --build -d ``` 默认端口: - Face: `3000` - Body: `8001` - Brain: `8000` ## GCP Cloud Run 部署 使用部署脚本: ``` export PROJECT_ID="your-gcp-project" export REGION="us-east4" export HF_TOKEN="your_hf_token" bash deploy/gcp/deploy_cloud_run.sh ``` 它的作用是: - 通过 Cloud Build 构建/推送 Face、Body、Brain 镜像 - 在 GPU (`nvidia-l4`) 上部署 Brain - 部署 Body 并将其连接到 Brain 的 `/v1` - 部署 Face 并将其连接到 Body URL ## API 接口 ### 健康与集成 - `GET /health` - `GET /api/integration-check` - `GET /api/telemetry` ### 核心分析流程 - `POST /api/analyze-incident` - `POST /api/interventions/authorize` - `POST /api/analysis-feedback` ### MCP 工具端点 - `GET /api/mcp/tools` - `POST /api/mcp/call` ### 示例:分析事件 ``` curl -X POST "http://localhost:8001/api/analyze-incident" \ -H "Content-Type: application/json" \ -H "x-tenant-id: demo-tenant" \ -d '{ "incident_summary": "Auth p95 latency rose from 210ms to 1.8s and DB connections reached 99%.", "candidate_count": 3 }' ``` ## 训练流水线 完整的模型工作流程如下: 1. 在因果 SRE 示例上进行 **SFT (QLoRA)** 2. 用于偏好信号的 **Reward Modeling** (奖励建模) 3. 用于策略改进的 **RLHF** 运行序列: ``` python scripts/01_generate_dataset.py python scripts/02_run_sft.py python scripts/03_train_reward_model.py python scripts/04_run_rlhf.py python scripts/05_run_evaluation.py ``` 本仓库中的生产服务策略优先考虑稳定的 SFT 路径(`checkpoint-1064`)加上验证器和安全层面,而 RLHF 仍然是可选的研究方向。 ## 安全与防护控制 - 用于 API 调用的租户头强制执行(`x-tenant-id`) - 可选的 API 密钥认证中间件(`x-api-key`),支持环境变量开关 - 人在回路 (human-in-the-loop) 的干预授权端点 - 在 SQLite (`feedback/analyst_feedback.db`) 中进行分析持久化和审计跟踪 - 当实时推理不可用或置信度较低时,生成确定性的后备方案 ## 环境变量 (重要) ### 主体 (`backend/main.py`) - `VLLM_ENDPOINT` - `MODEL_ID` - `PRODUCTION_ARTIFACT_LABEL` - `GROUNDING_KB_PATH` - `GENERATION_CANDIDATES` - `GENERATION_MAX_TOKENS` - `LIVE_ANALYSIS_TIMEOUT_SECONDS` - `REQUIRE_API_AUTH` - `API_AUTH_TOKEN` - `REQUIRE_TENANT_ID` - `ALLOWED_ORIGINS` - `FEEDBACK_LOG_PATH` - `FEEDBACK_DB_PATH` ### 大脑 (`inference_server.py`) - `MODEL_ID` - `NEXUS_LORA_PATH` - `SERVING_BACKEND` - `MAX_LORA_RANK` - `MAX_MODEL_LEN` - `GPU_MEMORY_UTILIZATION` - `PORT` ## README 资源重新生成 如果 dataset/evaluation 文件发生更改,请重新生成图表: ``` python scripts/generate_readme_charts.py ``` 生成输出: - `assets/readme/architecture_split_compute.png` - `assets/readme/dataset_domain_distribution.png` - `assets/readme/dataset_pearl_level_mix.png` - `assets/readme/evaluation_category_scores.png` - `assets/readme/evaluation_domain_scores.png` - `assets/readme/evaluation_quality_signals.png` - `assets/readme/training_runtime_profile.png` ## 当前局限性 - 当实时源不可用时,遥测源默认为静态快照 - 尚无完整的企业 RBAC/SSO 流程 - 评估结果对严格的 schema 设置和 prompt 策略高度敏感 - 如果没有仔细的奖励数据对齐和 checkpoint 选择,RLHF 路径的表现可能会较差 ## 许可证 Apache 2.0
标签:AIOps, DLL 劫持, Llama 3, MCP工具路由, Python, Ruby, SRE, 人工审批门控, 人机协同, 偏差过滤, 副驾驶, 因果DAG, 因果推理, 大语言模型, 安全干预, 微服务架构, 故障诊断, 无后门, 根因分析, 知识库, 站点可靠性工程, 系统运维, 请求拦截, 逆向工具, 遥测数据