Hareesh1/Event-Intelligence-RAG-System
GitHub: Hareesh1/Event-Intelligence-RAG-System
一个基于 RAG 的操作事件智能问答系统,解决海量事件语义检索与上下文理解问题。
Stars: 0 | Forks: 0
# 事件智能 RAG 系统 - 完整实现
**项目状态**: 已完成(全部 6 步)
**日期**: 2026年4月17日
**版本**: 1.0 生产就绪
## 项目概述
一个用于操作事件智能的**检索增强生成(RAG)**系统。处理 3,408 个事件、6,466 个文本片段,使用语义搜索与高级大语言模型提示技术,回答关于关键基础设施事件、告警和操作事件的问题。
**使用场景**:“为什么组件 103 会产生这么多关键告警?”
## 系统统计
| 指标 | 值 |
|--------|-------|
| **加载事件数** | 3,408 个唯一事件 |
| **文本片段** | 6,466 个语义片段 |
| **嵌入维度** | 384 维向量 |
| **平均片段大小** | 194 字符(48 个 token) |
| **跟踪组件数** | 10+ 个系统组件 |
| **优先级分布** | 关键(2.4%)、高(84.9%)、低(12.6%) |
| **覆盖时间范围** | 2025年5月 - 11月 |
| **查询延迟** | 100-300 毫秒(检索) |
## # 架构
```
┌─────────────────────────────────────────────────────────────┐
│ USER QUERIES │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Retrieval │───>│ LLM │───>│ Response │ │
│ │ (Semantic │ │ Prompting │ │ Formatting │ │
│ │ + Filters) │ │ (ReAct, │ │ │ │
│ │ │ │ Few-Shot) │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ ↓ ↓ ↓ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Vector DB │ │ Prompt │ │ Quality │ │
│ │ (Chroma) │ │ Templates │ │ Assessment │ │
│ │ 6,466 chunks │ │ │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
│ │ │
↓ ↓ ↓
EventDetails Embeddings SQL Database
(SQLite) (384-dim vectors) (3,408 records)
```
## 项目结构
```
Event Intelligence RAG System/
├── Data Loading & Processing
│ ├── 01_data_ingestion.py (CSV → SQLite, 3,408 records)
│ ├── 02_feature_engineering.py (Raw → Rich narratives)
│ ├── 03_text_chunking.py (6,466 overlapping chunks)
│ └── event_intelligence.db (SQLite database)
│
├── Vector & Retrieval
│ ├── 04_embeddings_vector_db.py (Generate 384-dim embeddings)
│ ├── 05_retrieval_implementation.py (Semantic, HyDE, Hybrid)
│ ├── retrieval_api.py (Clean API interface)
│ ├── verify_vector_db.py (Verification & testing)
│ └── vector_db/ (Chroma persistent storage)
│
├── LLM & Prompting
│ ├── 06_rag_prompt_engineering.py (ReAct, Few-Shot, System Prompts)
│ ├── complete_rag_system.py (Production-ready system)
│ └── rag_results.json (Batch query results)
│
└── Documentation
├── requirements.txt (All dependencies)
├── STEP1_SUMMARY.md (Data loading walkthrough)
├── STEP5_SUMMARY.md (Retrieval strategies)
├── STEP6_COMPLETE_DOCUMENTATION.md (Prompt engineering guide)
└── README.md (This file)
```
## 快速开始
### 安装
```
# 安装依赖
pip install -r requirements-core.txt
# 设置环境(可选,用于 OpenAI)
export OPENAI_API_KEY="your-key-here"
```
### 基础用法
```
from complete_rag_system import CompletRAGSystem
# 初始化系统
rag = CompletRAGSystem()
# 提问
result = rag.query("What critical alarms from component 103?")
print(result['answer'])
# 批量查询
questions = [
"How many fire emergencies in May?",
"Which components had water leakage?",
"Why so many high-priority incidents?"
]
results = rag.batch_query(questions)
```
### 高级用法
```
from retrieval_api import EventRetriever
from rag_prompt_engineering import RAGPromptEngine
# 直接使用检索
retriever = EventRetriever()
chunks = retriever.retrieve("critical alarm", k=5)
# 使用高级提示
rag = RAGPromptEngine(model="gpt-3.5-turbo")
result = rag.query_with_llm(
"Why so many critical alarms?",
use_react=True,
use_few_shot=True
)
```
## 📈 分步实现
### 步骤 1:数据摄取
- **输入**:V_EVENT_DETAILS_202512311554.csv(3,921 行)
- **输出**:包含 3,408 个唯一事件的 SQLite 数据库
- **处理**:解析、去重、验证
- **结果**:完整的 45 列数据库架构
### 步骤 2:特征工程
- **输入**:原始事件数据(3,408 条记录)
- **输出**:丰富的自然语言描述(平均 345 字符)
- **处理**:字段组合,生成语义文本
- **结果**:100% 描述完整性
### 步骤 3:文本分块
- **输入**:完整描述(3,408 个事件)
- **输出**:6,466 个重叠文本片段
- **处理**:基于句子,300 字符片段,20% 重叠
- **结果**:最佳片段大小(平均 48 个 token)
### 步骤 4:嵌入与向量数据库
- **输入**:6,466 个文本片段
- **输出**:Chroma 中的 384 维嵌入
- **处理**:批量嵌入生成
- **结果**:快速语义搜索能力
### 步骤 5:检索策略
- **技术**:语义搜索、HyDE、混合搜索
- **特性**:优先级/组件过滤、上下文扩展
- **结果**:Top-K 检索与多策略排名
- **性能**:100-300 毫秒查询
### 步骤 6:RAG 提示工程
- **技术**:系统提示、少样本、ReAct、质量评估
- **特性**:上下文接地响应、错误处理
- **结果**:生产就绪的大语言模型集成
- **性能**:端到端 500 毫秒 - 2 秒(含 LLM)
## + 检索方法
### 语义搜索
```
Query: "critical fire emergency"
Result: Alarm #5033 (Critical), Similarity: 0.3624
Speed: ~100ms, No external knowledge
```
### HyDE(假设文档嵌入)
```
Query: "Why are there so many critical alarms?"
Hypothesis 1: "Report shows critical incidents"
Hypothesis 2: "Alert summary: emergency incidents"
Result: Multi-perspective search with better ranking
```
### 混合搜索
```
Semantic Match (70%) + Keyword Match (30%)
= Best of both worlds
for mixed information needs
```
## // 提示技术
### 系统提示(上下文接地)
```
"Answer strictly from provided context.
If information is missing, say so explicitly.
Use specific alarm IDs and timestamps."
```
### 少样本示例
```
Example: Query about component issues
Expected response format with evidence
```
### ReAct 提示
```
THINK → What does the question need?
ACT → Search and extract from context
ANSWER → Provide fact-based response
```
## <> 查询示例
### 示例 1:特定组件
```
Q: "What critical alarms from component 103?"
A: Found 5 critical events from components 103, 311, 315
[Specific alarm IDs and timestamps provided]
Confidence: 80%
```
### 示例 2:事件计数
```
Q: "How many fire emergencies in May?"
A: Found 5 fire emergency events in May 2025
All from Component 100
Priority: High
Confidence: 60% (limited context)
```
### 示例 3:模式分析
```
Q: "Why so many water leakage events?"
A: Components 312, 313 show water system activity
Found in August-September timeframe
All HIGH priority
Note: Limited context available
```
## ^^ 关键经验
### 数据处理
- **去重**:移除 513 个重复项(占 15%)
- **特征工程**:数据丰富度提升 8 倍
- **分块**:采用 20% 重叠策略保留上下文
### 检索
- **语义搜索**:适用于直接查询
- **HyDE**:适用于复杂、基于问题的查询
- **混合**:生产环境最佳选择(查询类型未知时)
### 提示
- **系统提示**:防止幻觉的关键
- **少样本**:提升一致性与格式
- **ReAct**:增强分析性问题的推理能力
### 上下文质量
- **置信度评估**:四级体系(优秀/良好/一般/不足)
- **优雅降级**:在上下文受限时引导用户改进查询
## 验证结果
### 数据质量 [OK]
- 加载 3,408 个唯一事件
- 100% 描述完整性
- 99.9% 告警名称覆盖率
- 94.6% 类别覆盖率
### 检索性能 [OK]
- 语义相似度:0.24 - 0.36(良好范围)
- 多片段事件:89.7% 包含 2 个以上片段
- 元数据保留:优先级保留率达 99.97%
### LLM 集成 [OK]
- 系统提示防止幻觉
- 少样本减少错误率
- ReAct 提示支持推理
- 回退模拟模式(无需 API 密钥)
## 生产就绪
| 方面 | 状态 | 详情 |
|--------|--------|---------|
| 数据处理 | [OK] | 已在完整数据集上测试 |
| 向量搜索 | [OK] | 持久化存储,快速查询 |
| 检索 | [OK] | 3 种策略,回退处理 |
| 提示 | [OK] | 多种技术,质量评估 |
| 错误处理 | [OK] | 优雅降级,友好错误 |
| 文档 | [OK] | 完整并含示例 |
| 测试 | [OK] | 验证 5+ 查询类型 |
| 部署 | [OK] | 已准备好用于 API/Web 服务 |
## 使用建议
**快速回答**:使用语义搜索(最快)
**分析场景**:使用 ReAct 提示(最佳推理)
**一致性要求**:使用少样本示例
**生产环境**:使用完整 RAG 系统(全部功能)
**测试验证**:使用模拟模式(无需 API 密钥)
## 配置
### 检索参数
```
retriever = EventRetriever()
results = retriever.retrieve(
query="fire emergency",
k=5, # Top-K results
priority_filter="Critical", # Optional
component_filter=103 # Optional
)
```
### LLM 参数
```
rag = RAGPromptEngine(model="gpt-3.3.5-turbo")
result = rag.query_with_llm(
query="Why so many alarms?",
use_react=True, # ReAct prompting
use_few_shot=True, # Few-shot examples
max_context_chunks=5
)
```
## 📈 性能特征
| 操作 | 耗时 | 可扩展性 |
|-----------|------|-------------|
| 查询嵌入 | 10 毫秒 | 与查询长度呈线性关系 |
| 向量搜索 | 50-100 毫秒 | 向量规模亚线性 |
| 上下文格式化 | 20-50 毫秒 | 与片段数量呈线性关系 |
| LLM 生成 | 500 毫秒 - 2 秒 | 依赖模型 |
| 完整流水线 | 600 毫秒 - 2.5 秒 | 以 LLM 为主 |
## 🔮 未来增强方向
1. **领域特定模型**:在操作数据上微调嵌入
2. **时序推理**:更优的日期/时间过滤
3. **多跳查询**:跨多个文档的链式推理
4. **反馈闭环**:从用户校正中学习
5. **API 部署**:带速率限制的 FastAPI Web 服务
6. **分析仪表板**:查询模式、准确率指标
7. **自定义嵌入**:在数据上微调
8. **流式响应**:实时结果交付
## 支持与故障排除
### 向量数据库问题
```
# 恢复干净状态
rm -rf vector_db/
python 04_embeddings_vector_db.py
```
### OpenAI 连接问题
```
# 使用模拟模式(无需 API 密钥)
rag = RAGPromptEngine()
# 系统将显示警告并使用模拟响应
```
### 查询结果不佳
```
1. Check context quality (should show "good" or "excellent")
2. Try different keywords or time periods
3. Use specific component IDs
4. Filter by priority level
```
## 📖 参考资料
- **向量数据库**:Chromadb 1.5.8(基于 DuckDB + Parquet 的持久化)
- **嵌入模型**:sentence-transformers all-MiniLM-L6-v2(384 维)
- **LLM**:OpenAI gpt-3.5-turbo(可配置)
- **数据处理**:pandas、SQLite3
- **向量搜索**:语义相似度(余弦距离)
## 📄 许可与署名
事件智能 RAG 系统 v1.0
创建:2026年4月
技术:Python、RAG、大语言模型、向量数据库
## ✨ 总结
**已完成实现**:
- [OK] 3,408 个事件端到端处理
- [OK] 6,466 个带元数据的语义片段
- [OK] 3 种检索策略(语义、HyDE、混合)
- [OK] 高级提示工程(系统提示、少样本、ReAct)
- [OK] 生产就绪 API 与错误处理
- [OK] 完整文档与示例
**系统就绪用于**:
- 操作智能查询
- 事件分析与调查
- 组件故障排查
- 告警数据模式识别
- 实时事件问答
标签:LLM提示, LSASS转储, RAG系统, SEO, 上下文响应, 事件情报, 事件智能, 事件统计, 关键基础设施, 向量数据库, 告警分析, 嵌入向量, 时间序列分析, 检索增强生成, 检索过滤, 生产就绪, 系统组件监控, 语义搜索, 运营事件, 运营工作流, 逆向工具, 问答系统