llexieguo commited on
Commit
2693f1d
·
1 Parent(s): 733c2e2
Files changed (1) hide show
  1. README.md +103 -0
README.md ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # GenAI PDF Paper Tutor
2
+
3
+ 一个基于 Gradio 的论文阅读小工具:
4
+
5
+ - 上传 PDF 论文
6
+ - 生成中文讲解(角色风格化)
7
+ - 支持讲解 TTS(手动点击)
8
+ - 进入 Exam 页面后生成 MCQ(选择题)
9
+ - 支持多角色(从 `characters/` 目录自动读取)
10
+
11
+ ## 功能流程
12
+
13
+ 1. 在讲解页选择角色
14
+ 2. 上传 PDF,点击 `Generate`
15
+ 3. 查看讲解内容(可点击 `Play Lecture Audio`)
16
+ 4. 点击 `Exam` 进入考试页
17
+ 5. 在考试页重新选择角色
18
+ 6. 点击底部 `Generate` 生成 MCQ
19
+ 7. 开始答题(答错会显示解析,并可播放解析语音)
20
+
21
+ ## 运行环境
22
+
23
+ - Python 3.10+
24
+ - 已安装依赖(见 `requirements.txt`)
25
+
26
+ 安装依赖:
27
+
28
+ ```bash
29
+ pip install -r requirements.txt
30
+ ```
31
+
32
+ 运行:
33
+
34
+ ```bash
35
+ python app.py
36
+ ```
37
+
38
+ ## API 配置(DashScope / OpenAI-compatible)
39
+
40
+ 项目会从 `.env` 读取 API 配置(已兼容 `API_UR` 和 `API_URL`):
41
+
42
+ ```env
43
+ API_UR="https://dashscope.aliyuncs.com/compatible-mode/v1"
44
+ API_KEY="你的Key"
45
+ ```
46
+
47
+ 说明:
48
+
49
+ - 讲解/MCQ 使用 OpenAI-compatible `/chat/completions`
50
+ - TTS 优先尝试 `/audio/speech`,失败后回退 DashScope TTS 接口
51
+
52
+ ## 角色目录结构(自动发现)
53
+
54
+ 下拉/角色按钮会自动读取 `characters/` 下的所有子目录。
55
+
56
+ 示例:
57
+
58
+ ```text
59
+ characters/
60
+ snape/
61
+ meta.json
62
+ avatar.jpg
63
+ lecture_prompt.txt
64
+ mcq_prompt.txt
65
+ mcq_retry_prompt.txt
66
+ ```
67
+
68
+ `meta.json` 常用字段:
69
+
70
+ - `id`
71
+ - `display_name`
72
+ - `tagline`
73
+ - `byline`
74
+ - `chat_label`
75
+ - `chat_mode`
76
+ - `avatar`
77
+ - `lecture_prompt_file`
78
+ - `mcq_prompt_file`
79
+ - `mcq_retry_prompt_file`
80
+
81
+ 如果某个角色目录没有 `meta.json`,系统也会显示该目录(用目录名作为角色名,并使用默认 prompt)。
82
+
83
+ ## 常见问题
84
+
85
+ ### 1. 生成很慢
86
+
87
+ 这是正常现象(PDF 渲染 + VL 推理耗时较高)。可尝试:
88
+
89
+ - 减少页数:`QWEN_VL_MAX_PAGES=1` 或 `2`
90
+ - 降低渲染尺度:`QWEN_VL_RENDER_SCALE=1.0`
91
+
92
+ ### 2. PDF 无法提取文本
93
+
94
+ 请确认已安装 `pypdf`:
95
+
96
+ ```bash
97
+ pip install pypdf
98
+ ```
99
+
100
+ ### 3. MCQ 生成失败 / JSON 错误
101
+
102
+ 模型可能返回不完整 JSON,代码里已做重试与解析兜底;如果仍失败可重试一次或更换角色 prompt。
103
+