RitwijParmar/SRE-Nidaan
GitHub: RitwijParmar/SRE-Nidaan
面向 SRE 团队的因果事件响应副驾驶系统,通过结构化因果推理、证据 grounding 和人工审批门控辅助生产环境事件分析。
Stars: 0 | Forks: 0
# SRE-Nidaan (SRE निदान)
[](https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct)
[](https://opensource.org/licenses/Apache-2.0)
[](https://www.python.org/)
[](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)
## 演示视频
点击缩略图观看简短的产品旁白演示:
[](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 通过强制结构化的因果输出、对证据重叠度进行评分,以及在高影响操作前要求人工审批来解决这些问题。
## 架构(真实图表)

### 服务职责
- **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. 分析师反馈被持久化,用于未来的奖励/偏好改进。
## 真实数据与评估图表
以下所有图表均由项目构件生成,而非手工绘制的占位符。
### 数据集组成


### 评估快照 (`results/final_evaluation_report.json`)



### 运行时/训练概况

## 仓库结构
```
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, 因果推理, 大语言模型, 安全干预, 微服务架构, 故障诊断, 无后门, 根因分析, 知识库, 站点可靠性工程, 系统运维, 请求拦截, 逆向工具, 遥测数据