RAG评测必备-PDF文件智能出题Agent【附带源|码|】
栏目:行业资讯 发布时间:2025-03-01
RAG评测必备-PDF文件智能出题Agent【附带源|码|】

在RAG(检索增强生成)系统评测中,高质量的问答对数据集是验证系统效果的关键。传统方式依赖人工从文档中逐条编写问题和答案,耗时耗力且难以规模化,成为制约RAG评测效率的主要瓶颈。

本系统通过多Agent协同架构,实现了从PDF文档到问答对的自动化生成。系统利用MinerU API精准解析PDF(支持公式、表格、OCR),采用双Agent并行出题策略,同时生成直白问题和逻辑推理问题两类题型,并基于Jaccard相似度智能去重。整个过程从文档解析、文本切片、题目生成到Excel输出全流程自动化,大幅降低了人工成本,提升了评测数据的生产效率,为RAG系统的快速迭代和效果验证提供了可靠的数据支撑

作者:百度智能云 谭文涛

系统架构

┌──────────────────────────────────────────────────────────────┐
│                    PDF智能出题协同环境                          │
│                                                              │
│  Step 1: MinerU API ───→ PDF → Markdown                      │
│              │                                               │
│  Step 2: 文本切片 ────→ Markdown → 512字符切片                  │
│              │                                               │
│         ┌────┴────┐                                          │
│         ▼         ▼                                          │
│  ┌────────────┐  ┌────────────┐                              │
│  │ 直白问题    │  │ 逻辑问题    │  ← 并行 (asyncio.gather)      │
│  │ Agent      │  │ Agent      │                              │
│  │ (直接回答)  │  │ (推理判断)   │                              │
│  └─────┬──────┘  └─────┬──────┘                              │
│        │               │                                     │
│        └───────┬───────┘                                     │
│                ▼                                             │
│         汇总去重 + Excel输出                                   │
│                                                              │
│  ┌─────────────┐  ┌─────────────┐                            │
│  │ MinerU API  │  │ 千帆/Ollama │                             │
│  │ (PDF解析)   │  │ (LLM出题)   │                             │
│  └─────────────┘  └─────────────┘                            │
└──────────────────────────────────────────────────────────────┘

协作模式:串行解析 → 并行出题(Fan-out) → 串行汇总

核心理念

  • MinerU解析
    :调用在线API将PDF精准转为Markdown(支持公式、表格、OCR)
  • 完整段落切片
    :按512字符切分,保持段落边界完整
  • 双Agent并行出题
    :直白问题+逻辑问题两类题型同时生成
  • 智能去重
    :基于Jaccard关键词相似度去重,避免重复题目

项目结构

pdf-question-generator/
├── main.py                    # 主入口
├── config.py                  # 全局配置
├── merger.py                  # 汇总去重+Excel输出
├── core/
│   ├── __init__.py
│   ├── llm_client.py          # LLM客户端(千帆+Ollama双后端)
│   ├── pdf_parser.py          # MinerU API PDF解析
│   ├── text_splitter.py       # 文本切片(512字符+完整段落)
│   └── prompt_loader.py       # 提示词模板加载器
├── agents/
│   ├── __init__.py
│   ├── base_agent.py          # Agent基类
│   ├── direct_agent.py        # 直白问题Agent
│   └── logic_agent.py         # 逻辑问题Agent
├── prompts/
│   ├── direct_agent.md        # 直白问题提示词
│   └── logic_agent.md         # 逻辑问题提示词
├── output/                    # 输出目录
└── requirements.txt

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 运行

# 默认模式:千帆LLM + 本地PDF文件
python3 main.py 'output/train.pdf'

# 通过URL解析PDF
python3 main.py --url https://example.com/paper.pdf

# 切换到Ollama
python3 main.py --ollama 'output/train.pdf'

# 自定义参数
python3 main.py --chunk-size 256 --num-direct 3 --num-logic 3 ./doc.pdf

3. 查看帮助

python3 main.py help

运行参数

参数
说明
默认值
--ollama
切换到Ollama后端
千帆
--url
通过URL解析PDF
本地文件
--chunk-size N
切片字符数
512
--num-direct N
每切片直白问题数
5
--num-logic N
每切片逻辑问题数
5

环境变量配置

环境变量
说明
默认值
LLM_PROVIDER
LLM后端 (qianfan/ollama)
qianfan
QIANFAN_API_KEY
千帆API密钥
(内置)
QIANFAN_MODEL
千帆模型名
ernie-x1-turbo-32k
OLLAMA_BASE_URL
Ollama服务地址
http://localhost:11434
OLLAMA_MODEL
Ollama模型名
qwen2.5:7b
MINERU_TOKEN
MinerU API Token
(内置)
MINERU_MODEL_VERSION
MinerU模型版本
vlm
CHUNK_SIZE
切片字符数
512
NUM_DIRECT_QUESTIONS
每切片直白问题数
5
NUM_LOGIC_QUESTIONS
每切片逻辑问题数
5
SIMILARITY_THRESHOLD
去重相似度阈值
0.7

输出文件

运行后在 output/ 目录下生成:

文件
说明
parsed_content.md
MinerU解析的Markdown原文
{文件名}_questions.xlsx
Excel问答对(序号、问题、答案、题目类型)
{文件名}_questions.json
JSON格式备份

两种题型对比

维度
直白问题
逻辑问题
特点
原文直接回答
需要推理判断
示例
"事故轻伤人数是怎么定义的?"
"小明因事故需卧床90天,属于轻伤还是重伤?"
Excel颜色
蓝色底色
黄色底色
项目源|码|

通过网盘分享的文件:pdf-question-generator.zip

链接: https://pan.baidu.com/s/10_AYlL6-iBL6IdW6m8PxQw?pwd=52z5 提取|码|: 52z5 

--来自百度网盘超级会员v4的分享


# 软件教程  # RAG评测必备-PDF文件智能出题Agent【附带源||码||】  # 关键词  # 后端  # 文档  # 两类  # 切换到  # 默认值  # 切分  # 是怎么  # 两种  # 自定义  # 规模化  # 小明  # 高质量  # 生产效率  # 客户端  # 本系  # 实现了  # 加载  # 迭代  # 百度网 


相关栏目: 【 设计资讯7769 】 【 行业资讯35393


相关文章: 创意咖啡平面广告设计  饮食方面的平面广告设计  平面广告设计中的五大原则  咖啡色在平面广告设计中的魅力与应用  产品简约平面广告设计  平面广告设计字  统计局平面广告设计  平面广告设计的规划和目标  电脑平面广告设计动漫  平面广告设计的名词解释  平面广告设计师实习生  防晒喷雾平面广告设计  平面广告设计调查报告  平面广告设计色彩实践  简述平面广告设计的任务  文字立体化平面广告设计  融合插平面广告设计  平面广告设计工作室的运营模式  平面广告设计日记  建设类平面广告设计  瑜伽馆店铺平面广告设计  节奏感平面广告设计案例  吸烟的创意平面广告设计  平面广告设计基本工资  八零年代的平面广告设计  练小妃平面广告设计  平面广告设计字体立体化  少儿讲座平面广告设计的行业文章  平面广告设计与实训  牛肉平面广告设计  平面广告设计插画亲和感  周大福品牌平面广告设计  平面广告设计月平均工资  平面广告设计史  AI人工智能平面广告设计  平面广告设计的职责  平面广告设计说明  网络营销平面广告设计价格  我们有信仰的平面广告设计  平面广告设计工作累不累  平面广告设计与制作印刷  日本风格的平面广告设计  中华平面广告设计  视觉传达平面广告设计毕设:探索创意与商业的完美结合  平面广告设计有几大要素  经典平面广告设计的过程  平面广告设计和网站  平面广告设计源文件  校园运动会平面广告设计  知名设计师的平面广告设计