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, 上下文响应, 事件情报, 事件智能, 事件统计, 关键基础设施, 向量数据库, 告警分析, 嵌入向量, 时间序列分析, 检索增强生成, 检索过滤, 生产就绪, 系统组件监控, 语义搜索, 运营事件, 运营工作流, 逆向工具, 问答系统