Files
pdf-to-md-test/llm-pdf-to-md-prompt.md
T

171 lines
5.8 KiB
Markdown
Raw Normal View History

2026-06-10 08:26:08 +08:00
# PDF 洗 MD — LLM 提示词(v4
>用途:Python PyMuPDF 提取原始文本 →喂给 LLM → LLM 按此提示词整理成干净 Markdown
>适用范围:通用技术文档(不限于 ST 芯片手册)
---
## 原始材料说明
- 源文件:技术参考手册 / 数据手册 / 规格书 / 标准文档
- PDF 通过 PyMuPDF 提取,存在以下典型问题:
* 页眉页脚残留(文档名、版本号、页码)
* 表格列裂、单元格错位、跨行跨列丢失
* 标题层级丢失或降级
* 图片/框图区域只剩占位符或空行
* 多栏排版文本顺序混乱
---
## 一、目录(TOC)处理
**不混在正文页中,单独生成文件 `00_目录.md`**
文件格式(三列严格按此顺序):
```markdown
| 章节号 | 标题 | 页码 |
|--------|------|------|
| 1 | About this document | 12 |
| 1.1 | Typographical conventions | 13 |
```
- 列顺序固定:章节号 | 标题 | 页码(不可颠倒)
- 按章节号数字顺序排列(同一顶级章节的子章节排在一起)
- 不要点号填充(不要 `1.1.1 .......... 15` 这种,用纯表格)
- 封面页(p1)不入目录,目录本身不入目录
---
## 二、文件名生成规则
每页正文对应一个独立 MD 文件,规则如下:
**规则一:页在 TOC 中有映射**
`章节号_标题_p{页码}.md`
- 章节号中 `.` 原样保留,不替换
- 标题只取英文/数字/中文,空格替换为下划线,总长不超过 200 字符
- 中文标题直接保留,不强制翻译为拼音
- 多段标题只保留第一段
示例:
```
2.1.1_Bus_matrices_p110.md
1.3.1_System_level_interface_p14.md
```
**规则二:页不在 TOC 中**
`{页类型}_p{页码}.md`
示例:
```
List_of_tables_p10.md
Revision_history_p260.md
Figure_list_p8.md
```
**规则三:页类型也未知**
`p{页码}_unknown.md`
---
## 三、正文页处理要求
### 1. 正文内容 — 逐字保留,与原文完全一致
- 不改写、不概括、不翻译、不遗漏
- 技术术语、缩写、信号名保留原文
- 数值、地址、偏移量、寄存器名逐字保留
- 换行位置与原文保持一致
### 2. 表格 — 严格还原原始结构
- PDF 提取后表格经常列裂或单元格错位
- 以内容语义为准,合并被拆散的单元格
- 保留原始列数、行数、合并单元格结构
- 不省略任何列,用 | 分隔
- **表格表头行**(如 "Mnemonic | Operands | Brief description | Flags | Page")和**表格标题行**(如 "Table 21. Cortex-M4 instructions")是独立于数据行的元数据,**不要**作为数据行写入表格:
- 表头行:单独提取为表格的第一行(加粗或作为表头分隔线后第一行)
- 表格标题行(如 "Table 21."):**单独一行**写在表格上方,用加粗 `**Table X. 标题**` 格式,不混入表格内
- 寄存器位域表保留 bit31...bit0 从左到右顺序
- **多栏表格(2栏及以上)**:优先保留为 Markdown 多栏表格格式(每栏对应一列),栏间用 `|` 分隔;同一格内需要换行时用 `<br>` 换行,**不要**拆成普通段落或列表
### 3. 排版 — 保持原文档版式
- 缩进、空行数量与原文一致
- 列表项层级和顺序不变
- 不添加原文没有的解释性文字
- 寄存器值、路径名用 `...` 包裹保持等宽
### 4. 框图 / Figure — 通过 Markdown 图片链接引用截图
- 发现 "Figure"、"图"、"Diagram"、"Block diagram" 等图形区域
- **先写标题文字,再在标题下方插入图片占位符**
- 标题格式:`**Figure X. 图标题文字**`(加粗保留原标题)
- 占位符:`![图 X](imgs/page_{页码}_fig_{编号}.png)`
- 链接路径为相对路径,**只使用正斜杠 `/` 作为分隔符**(禁止反斜杠 `\`
- **禁止绝对路径**,所有路径相对于 MD 文件所在目录
- 截图由后续步骤单独生成,此处只生成占位符
- 不在正文中用文字描述图形内容(标题文字除外,原样保留)
### 5. 标题层级 — 根据章节号判断
- "X.X.X" 格式:一级=1,二级=1.1,三级=1.1.1,四级=1.1.1.1
- 一级 → ##,二级 → ###,三级 → ####,四级 → #####
- 标题文字取自 PDF 原文,不改写
### 6. 页眉页脚清理
- 删除所有包含文档名、版本号、页码格式(如 "1/262")的独立行
- 删除版权声明、空白占位行
- 正文第一行前不留多余空行
### 7. 关于文件名中的页码
- 页码使用 PDF 物理页号(从封面 p1 开始计数)
- 封面(p1)不生成正文 MD 文件,只截图存档
- 文件名中的 `p{页码}` 对应 PDF 物理页号,而非内容章节号
### 8. 寄存器描述中的缩写(r / rw / rc_w0 等)
- 在寄存器描述表格中出现的读写属性缩写(r、rw、rc_w0、rc_w1、w、t、Res.)保留原文
- 不要翻译,不要加引号,不要改成代码块包裹
- 它们是表格内容的一部分,原样保留即可
---
## 四、文件输出格式
每个 PDF 页对应一个独立 Markdown 文件。
**文件头:**
```markdown
来源:{文档名} Rev {版本}Page {页码}
```
> 注:文档名取 PDF 元数据中的实际文档标题,不要写简称或代号。
**文件尾:**
```markdown
> 原始图片:imgs/page_{页码}_*.png(无图则注明无图)
```
**封面页(p1)处理规则:**
- 封面页**不生成**目录条目,也不生成正文 MD 文件
- 封面页单独提取为一张截图:`imgs/page_1_cover.png`
---
## 五、严格禁止
- 改写、概括、翻译原文内容
- 合并或拆分句子
- 省略表格中的任何列或行
- 在正文中用文字描述替代图形占位符
- 在目录文件中混入正文内容
- 为封面页(p1)生成目录条目或正文 MD 文件
- 输出任何处理过程说明,只输出 Markdown 原文
- 路径中使用反斜杠 `\` 或绝对路径
---
请严格按照上述规则处理每一页。