5.8 KiB
5.8 KiB
PDF 试题册转 Markdown 文档 — 提示词模板
使用场景
将图片型/扫描版 PDF 试题册(含题目+参考答案)转写为 Obsidian Vault 中的结构化 Markdown 文档。
前置条件
- 目标目录下存在
config/agent/DOCUMENT_OPERATION.md(文档规范) - Python 环境已安装
pdfplumber(用于 PDF → 图片转换) - PDF 为图片型(无文本层),需借助 LLM 视觉能力读取
提示词模板
以下为可直接复制使用的提示词。将
{{变量}}替换为实际值后发送给 Claude。
帮我把这份试题册翻译为文档,新建目录并存放。
<current_note>
{{PDF文件路径,如 嵌入式系统.pdf}}
</current_note>
收到回复后,当 Claude 询问目录组织方式时,选择「每份试题一个文件」。
完整工作流程
Claude 应按以下步骤执行:
阶段 1:环境准备
- 读取文档规范:读取
config/agent/DOCUMENT_OPERATION.md,了解格式、必填项、内容规范。 - 探测 PDF 内容:
- 尝试
Read直接读取 PDF - 若失败(文件过大或 pdftoppm 缺失),改用
pdfplumber逐页转为 PNG:import pdfplumber, os os.makedirs('.tmp_exam', exist_ok=True) pdf = pdfplumber.open('path/to/file.pdf') for i in range(len(pdf.pages)): pdf.pages[i].to_image(resolution=200).save(f'.tmp_exam/page_{i+1}.png')
- 尝试
- 用 LLM 视觉逐批读取图片(每批 5 页),记录:
- 每份试题的起止页码
- 课程名称、学校名称
- 题型结构(单选/多选/填空/判断/名词解释/简答/综合/设计)
- 对应的参考答案页码
阶段 2:用户确认
向用户展示识别结果,确认:
- 试题数量与分份方式(每份一个文件)
- 目录命名(如
嵌入式系统/试题册/)
阶段 3:批量创建文件
使用 并行 Agent 同时创建所有文件,每个 Agent 负责一份试题:
每个 Agent 收到的指令应包含:
- 文件路径:
{目录}/{文件名}.md - 格式模板(见下方「文件格式模板」)
- 完整的题目文本(从图片中 OCR/识别的内容)
- 完整的参考答案(从答案页中识别的内容)
阶段 4:创建索引文件
在目录下创建 index.md,包含:
- 索引表格(序号 → 试卷链接 → 题型概要)
- Mermaid 知识点分布象限图
- 关联笔记 wiki-link
阶段 5:验证与清理
- 规范验证(可用 Explore Agent 并行检查):
- YAML frontmatter:tags(数组)+ create time(YYYY-MM-DD HH:mm)
- 文档结构:
## 概述→## 正文→## 关联笔记(均为 h2) - 概述:无占位文本,包含结构化信息
- 正文:使用
> [!type]callout 穿插教学提示 - 代码:ARM 汇编用代码块 +
;注释 - 关联笔记:wiki-link 格式
- 修复不一致项
- 统一概述格式(见下方模板)
- 清理临时文件:
rm -rf .tmp_exam
文件格式模板
每个试题 .md 文件必须遵循以下结构:
---
tags:
- 嵌入式系统
- 试题
create time: {{YYYY-MM-DD HH:mm}}
---
# 试题 {{序号}} — {{学校名}}《{{课程名}}》
## 概述
- **课程**:{{课程名}}({{学期/卷别,可选}})
- **学校**:{{学校名}}
- **题型**:{{逗号分隔的题型列表}}
- **知识点**:{{逗号分隔的核心知识点}}
> [!tip] 学习建议
> {{针对性复习建议,可引用相关笔记 wiki-link}}
## 正文
### 一、{{题型名称}}({{分值说明}})
{{题目内容,选项用 A. B. C. D. 格式}}
> [!note] {{教学提示或知识点补充}}
> {{相关内容}}
...
### 参考答案
{{答案内容,选择题用表格或列表}}
## 关联笔记
- [[相关笔记1]]
- [[相关笔记2]]
概述统一格式规范
所有试题文件的 ## 概述 必须使用完全一致的结构:
## 概述
- **课程**:{{课程名}}
- **学校**:{{学校名}}
- **题型**:{{题型列表}}
- **知识点**:{{核心知识点}}
> [!tip] 学习建议
> {{具体建议}}
禁止:
- 概述中出现段落式描述(应为结构化列表)
- 使用
[!note]、[!warning]等非[!tip]类型的 callout(概述部分) - 标题格式不一致(统一为
# 试题 X — 学校《课程》)
索引文件模板
---
tags:
- {{课程标签}}
- 试题册
- 索引
create time: {{YYYY-MM-DD HH:mm}}
---
# {{课程名}}试题册索引
## 概述
本文档为{{学校名}}「{{课程名}}」课程历年试题合集索引。每份试题包含完整题目及参考答案。
## 试题目录
| 序号 | 试卷 | 题型概要 |
|:----:|------|----------|
| 1 | [[试题1]] | {{题型}} |
| ... | ... | ... |
## 知识点分布
```mermaid
quadrantChart
title "试题知识点覆盖"
x-axis "低频" --> "高频"
y-axis "简单" --> "困难"
quadrant-1 "高难度高频"
quadrant-2 "高难度低频"
quadrant-3 "低难度低频"
quadrant-4 "低难度高频"
"知识点A": [x, y]
...
关联笔记
---
## Mermaid 生成规范(提醒 Claude)
- 所有中文内容必须用**英文双引号 `""`** 包裹
- 节点 ID 必须为英文
- `[]` 内的所有信息必须用双引号包裹
- 不要使用 `\n` 换行
- 象限图的点用 `A: [x, y]` 格式,不要用 `[label]`
---
## 注意事项
1. **不要读取多余文件**:只读取 PDF 和 `DOCUMENT_OPERATION.md`,减少 Token 消耗。
2. **不确定时询问用户**:文件放哪里、如何分份,优先问用户。
3. **并行加速**:10 份试题可同时启动 10 个 Agent 并行创建。
4. **二次验证**:创建完成后用 Explore Agent 逐文件检查规范符合性。
5. **清理临时文件**:验证通过后删除 `.tmp_exam` 目录。