4.7 KiB
Executable File
4.7 KiB
Executable File
RAG数据入库流程分析
理想流程(应该是什么样的)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ PDF文章 │ --> │ V14.2提取 │ --> │ 转换为Chunks │ --> │ RAG索引 │
│ (paper/v14) │ │ (提取器) │ │ (分块+向量化) │ │ (FAISS/Qdrant)│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│
v
┌─────────────┐
│ 查询使用 │
│ (API服务) │
└─────────────┘
当前实际流程(混乱)
┌─────────────┐
│ PDF文章 │
│ (各种位置) │
└──────┬──────┘
│
├─> MinerU解析 ──> 中间JSON ──> ? (没有后续)
│
├─> V14.2提取 ──> 提取结果 ──> ? (没有入库)
│
└─> 直接查PC数据 ──> 绕过RAG索引
┌─────────────────────────────────────────┐
│ RAG索引 (孤立) │
│ - 只加载固定文件: rag_index_final/ │
│ - 新文章不会自动加入 │
│ - 查询时有时用索引,有时绕过 │
└─────────────────────────────────────────┘
核心问题
问题1: 提取和索引分离
- V14.2提取器输出JSON/CSV
- 但没有自动转换为RAG chunks
- 没有自动更新索引
问题2: 索引固化
- RAG只加载
data/rag_index_final/vector_index.pkl - 新提取的文章不会自动加入
- 需要手动重建索引
问题3: 查询路径不一致
- 有时查RAG索引(旧数据)
- 有时直接查PC数据(绕过索引)
- 用户无法确定数据来源
正确的数据入库流程(建议)
方案A: 全自动流程(推荐)
# 1. PDF入库
pdf_path = "paper/v14/spl/xxx.pdf"
# 2. 自动提取
extractor = V14Extractor()
result = extractor.extract(pdf_path)
# 3. 自动转换为chunks
chunks = convert_to_chunks(result)
# 4. 自动更新RAG索引
rag_system.add_document(chunks)
# 5. 完成
print(f"文章已入库,索引包含 {rag_system.total_chunks} chunks")
方案B: 手动流程(当前)
# 步骤1: V14.2提取
python extract_v14.py --pdf paper/v14/spl/xxx.pdf --output xxx.json
# 步骤2: 转换为chunks
python convert_to_chunks.py --input xxx.json --output xxx_chunks.json
# 步骤3: 更新RAG索引
python update_rag_index.py --add xxx_chunks.json
# 步骤4: 重启服务
# (让新的索引生效)
需要修复的问题
1. 提取器输出格式不统一
| 提取器 | 输出格式 | 问题 |
|---|---|---|
| V14.2 | JSON/CSV | 需要转换为chunks |
| MinerU | JSON | 需要提取关系 |
| PC | 直接查数据库 | 无法加入RAG索引 |
2. 缺少自动转换工具
- 没有
convert_v14_to_chunks.py - 没有
update_rag_index.py - 没有统一的数据格式
3. RAG系统不支持增量更新
- 只能全量重建索引
- 不能单篇添加
- 需要重启服务
建议的修复方案
短期(今天完成)
- 创建
convert_v14_to_chunks.py - 修改
rebuild_rag_index.py支持V14.2输出 - 提取SPL文章并入库
中期(本周完成)
- 修改V14.2提取器,直接输出chunks格式
- 创建增量更新索引的工具
- 统一数据格式
长期(下周完成)
- 全自动入库流程
- 单篇PDF自动提取+索引
- 无需手动干预
现在该怎么办?
选项1: 快速修复(今天可用)
# 1. 提取SPL文章
python extract_spl_batch.py
# 2. 转换为chunks
python convert_v14_to_chunks.py --input-dir paper/v14/spl/v14_results/
# 3. 重建索引
python rebuild_rag_index.py
选项2: 彻底修复(本周完成)
- 修改V14.2提取器
- 创建增量更新工具
- 自动化整个流程
选项3: 临时方案(现在可用)
- 直接用PC数据层查询
- 绕过RAG索引
- 不依赖向量检索
你选哪个?