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, 向量数据库, 大语言模型, 异常检测, 数据分块, 无后门, 机器学习, 根因分析, 检索增强生成, 电信网络, 电信运维, 知识库问答, 网络智能, 语义检索, 逆向工具