eslam-ragaei/TeleRAG-Scholar

GitHub: eslam-ragaei/TeleRAG-Scholar

基于arXiv电信研究论文的本地化RAG系统,通过检索增强生成技术回答异常检测、KPI监控和根因分析等工程问题。

Stars: 0 | Forks: 0

# 📡 TeleRAG Scholar ### 用于电信研究论文的检索增强生成 ## 🚀 项目概述 **TeleRAG Scholar** 是一个检索增强生成 (RAG) 系统,旨在利用来自 arXiv 的真实研究论文,回答关于**电信异常检测、KPI 监控和根因分析**的工程问题。 该系统从精选的电信论文语料库中检索相关内容,并使用大型语言模型生成**有据可依、可解释的答案**。 ## 🎯 目标 * 构建一个**完整的 RAG pipeline** * 处理**真实世界的电信研究论文** * 理解**检索质量如何影响 LLM 性能** * 实验不同的**分块策略 (chunking strategies)** * 提供一个**基于聊天界面的知识查询系统** ## 🧠 系统架构 ``` User Query ↓ Embedding (bge-m3) ↓ ChromaDB (Vector Store) ↓ Top-K Retrieval ↓ Context Injection ↓ Mistral LLM (Ollama) ↓ Final Answer + Sources ``` ## 🗂️ 项目结构 ``` TeleRAG/ │ ├── data/ # PDF papers (20+ from arXiv) ├── chroma_db/ # Persistent vector database │ ├── src/ │ ├── ingestion/ │ │ ├── loader.py │ │ ├── chunking.py │ │ ├── populate_database.py │ │ ├── embeddings/ │ │ ├── get_embedding_function.py │ │ ├── retrieval/ │ │ ├── query_data.py │ │ ├── prompt.py │ ├── app.py # Gradio UI ├── papers_catalog.csv # Metadata ├── requirements.txt └── README.md ``` ## 📚 数据集 * 来源:**arXiv.org** * 论文总数:**20+** * 主题: * 电信中的异常检测 * Isolation Forest / One-Class SVM * 5G KPI 监控 * 根因分析 * 电信领域的 LLM 每篇论文以 PDF 格式存储,并在以下文件中跟踪: ``` papers_catalog.csv ``` 示例: ``` Title | Topic | Path ----------------------------------------- LogAnMeta | ['anomaly_detection'] | data/anomaly_detection_1.pdf ``` ## ⚙️ 安装 ### 1️⃣ 克隆仓库 ``` git clone cd TeleRAG ``` ### 2️⃣ 安装依赖 ``` pip install -r requirements.txt ``` ### 3️⃣ 安装 Ollama 模型 ``` ollama pull bge-m3 ollama pull mistral ``` ## 🔄 Pipeline 实现 ### 🔹 1. 文档加载 * 使用 `PyPDFDirectoryLoader` * 从 `/data/` 加载所有 PDF ### 🔹 2. 分块 * `RecursiveCharacterTextSplitter` * 默认设置: * `chunk_size = 1200` * `chunk_overlap = 200` 每个块被分配一个唯一 ID: ``` source:page:index ``` ### 🔹 3. 嵌入 * 模型:**bge-m3 (via Ollama)** * 自定义嵌入类: * `embed_documents()` → 用于文档块 * `embed_query()` → 用于用户提问 ### 🔹 4. 向量存储 * 存储: * embeddings * 元数据 * chunk IDs * 持久化存储于 `/chroma_db` ### 🔹 5. 查询 Pipeline 1. 嵌入用户查询 2. 检索 **Top-5 相似块** 3. 构建上下文 4. 发送至 **Mistral LLM** 5. 生成答案 ### 🔹 6. Prompt 策略 ``` Answer ONLY from the provided context. If not found, say "I don't know". ``` ## 💬 Gradio 界面 运行: ``` python app.py ``` 功能: * 提出电信相关问题 * 查看生成的答案 * 查看前 3 个检索到的来源(含分数) ## 🧪 分块大小实验 我们评估了三种分块大小: | Chunk Size | Overlap | 观察结果 | | ---------- | ------- | ---------------------------- | | 400 | 80 | 太小,丢失上下文 | | 1200 | 200 | 平衡(性能最佳) | | 2000 | 300 | 太大,降低精度 | ### ✅ 结论: 分块大小 **1200** 在以下方面提供了最佳平衡: * 上下文完整性 * 检索精度 ## ✅ 示例问题 系统成功回答了以下问题: * 5G 异常检测中使用了哪些统计方法? * Isolation Forest 是如何工作的? * 什么导致 RRC 连接失败? * 哪些指标用于评估异常检测? * LLM 如何协助电信 RCA? ## 🔥 关键收获 * 检索质量比 LLM 大小更重要 * 分块大小显著影响性能 * 元数据和分块提高了可解释性 * RAG 系统通过将答案基于事实依据来减少幻觉 ## 🚧 未来改进 * 按主题进行查询路由(多文件夹检索) * 混合搜索(BM25 + embeddings) * 重排序模型 * 使用 Docker 部署 ## 📌 注意事项 * 所有论文均来自 arXiv 的开放获取 * 无需外部 API(完全通过 Ollama 在本地运行) ## ⭐ 结语 本项目展示了一个**完整的端到端 RAG 系统**,结合了: * 信息检索 * 嵌入模型 * 向量数据库 * 大型语言模型 构建为一个真实世界的电信知识助手。
标签:5G, AI风险缓解, Apex, API密钥扫描, arXiv论文, bge-m3, ChromaDB, DLL 劫持, Embedding, Gradio, KPI监控, LLM评估, Mistral, Ollama, Python, RAG, 向量数据库, 大语言模型, 异常检测, 数据分块, 无后门, 机器学习, 根因分析, 检索增强生成, 电信网络, 电信运维, 知识库问答, 网络智能, 语义检索, 逆向工具