adithya3108/incident_response_AI
GitHub: adithya3108/incident_response_AI
这是一个基于AI的语义检索系统,帮助IT团队从历史事件中快速找到解决方案。
Stars: 0 | Forks: 0
# AI 驱动的事件知识库助手
语义检索系统,允许 IT 支持团队输入自然语言查询,并检索相关的历史事件及其解决指导。
## 架构
```
CSV Dataset → Ingestion → Embedder (all-MiniLM-L6-v2) → FAISS Index
→ BM25 Index
→ Metadata Store
Query → Embed Query → FAISS Search ─┐
→ BM25 Search ──┤ RRF Fusion → Rerank → Confidence → Claude → Response
└─ Metadata Filters
```
**技术栈:** FastAPI · FAISS · BM25 · sentence-transformers · Claude via OpenRouter · DeepEval · Streamlit
## 配置
```
# 安装依赖项
pip install -r requirements.txt
# 配置环境
cp .env.example .env
# 编辑 .env 文件并设置 OPENROUTER_API_KEY(在 https://openrouter.ai/keys 获取一个)
# 下载数据集
# 从: https://github.com/AkshayDusad/ITSM-Incident-Management/blob/master/ITSM_data.csv
# 保存到: data/raw/incidents.csv
# 构建索引(运行一次)
python scripts/ingest_and_index.py --input data/raw/incidents.csv
# 启动 API 服务器
uvicorn app.main:app --reload
# 启动前端(单独终端)
streamlit run frontend/app.py
```
## API 端点
| 方法 | 路径 | 描述 |
|--------|------|-------------|
| GET | `/health` | 健康检查 |
| GET | `/metrics` | 查询统计和缓存命中率 |
| POST | `/v1/search` | 结合 RAG 解决方案的语义混合搜索 |
| POST | `/v1/bulk-search` | 批量查询(最多 50 个) |
| POST | `/v1/triage` | 优先级分类和团队路由 |
| POST | `/v1/escalate` | 多级代理升级 (L1→L2→L3) |
| POST | `/v1/analyze` | 跨事件根本原因分析 |
| POST | `/v1/feedback` | 提交有帮助/无帮助反馈 |
## 使用示例
**搜索:**
```
curl -X POST http://localhost:8000/v1/search \
-H "Content-Type: application/json" \
-d '{"query": "Users cannot connect to VPN despite correct credentials", "top_k": 5}'
```
**分类:**
```
curl -X POST http://localhost:8000/v1/triage \
-H "Content-Type: application/json" \
-d '{"description": "Database server unresponsive, all services down", "impact": 1, "urgency": 1}'
```
**升级:**
```
curl -X POST http://localhost:8000/v1/escalate \
-H "Content-Type: application/json" \
-d '{
"incident_id": "INC0001234",
"current_tier": "L1",
"description": "SAP HANA memory exhaustion causing system crash",
"resolution_attempts": ["Restarted service - recurred after 2 hours"]
}'
```
## 运行评估
```
python scripts/run_evaluation.py
```
在保留的 20% 数据集上进行评估。评估指标:
- **修复准确率** (目标 ≥ 0.6):建议解决方法与实际解决方法之间的 ROUGE-L 重叠度
- **检索相关性** (目标 ≥ 0.75):检索到的事件与查询的余弦相似度
- **LLM 作为评判**:安全性 / 完整性 / 排序 / 技术准确性 (1–5 分制)
## 关键设计决策
| 决策 | 依据 |
|----------|-----------|
| FAISS `IndexFlatIP` + L2 归一化 | 精确的余弦相似度;对于超过 50 万事件的情况可替换为 `IndexIVFFlat` |
| 互惠排名融合 (RRF k=60) | 无需校准 BM25/余弦分数尺度即可实现稳健的融合 |
| 提示词缓存 (系统提示词 + 上下文) | 显著降低重复查询的 Claude API 成本 |
| 指数时间衰减 | 近期的解决方法权重更高;最近的修复更具相关性 |
| 使用 `asyncio.gather` 进行异步批量搜索 | 并行执行;Token 优化器对上下文块去重 |
| 反馈 → 重排序循环 | 每次 `/feedback` 提交都会更新成功率,用于未来的重排序 |
标签:AI驱动助手, AV绕过, BM25, Claude, CVE检测, DeepEval, FAISS, FastAPI, IT支持, IT服务管理, Kubernetes, OpenRouter, RAG, Ruby, sentence-transformers, Streamlit, 事件管理, 分诊, 升级, 历史事件检索, 反馈系统, 批量搜索, 查询处理, 根因分析, 混合搜索, 知识库, 访问控制, 语义检索, 重排序, 问题解决