Files
pdf-to-md-test/llm-pdf-to-md-prompt.md
2026-06-10 08:26:08 +08:00

171 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 原文
- 路径中使用反斜杠 `\` 或绝对路径
---
请严格按照上述规则处理每一页。