pptx-to-expert-md
售前方案PPT转专家级Markdown · 完整技能手册
技能定位:将售前方案PPTX文件转化为具有行业洞察力的专家级Markdown文档。
- PPTX管线:将PPT的"展示逻辑"重构为Markdown的"阅读逻辑",融入产品SKU识别、行业方法论分析、竞争差异化解读和多角色价值翻译。
验证规模:PPTX 102份文件(覆盖24客户×15+行业),全流程完成。
When to Use
- 将售前方案PPTX转化为结构化的专家级Markdown知识资产
- 将项目复盘PPT、QBR报告转化为经验沉淀文档
- 批处理整个客户项目文件夹(方案/竞品/项目),支持断点续传
一、全流程架构:四阶段管线
阶段一:提取 阶段1.5:空间分析 阶段二:初始MD 阶段三:分段专家重写
PPTX ──→ ZIP解包 slide_*.json ──→ meta.json ──→ 页面概览 ┌─ 3a: 整体骨架
├─ meta.json 空间关系分析 slide_*.json → 逐页摘要 │ 方案定位 + 章节逻辑表
├─ slide_*.json ├─ 层级检测 空间分析.md → 布局描述 ├─ 3b: 逐章细节填充
├─ pptx_xml_parts.json ├─ 并列/包含关系 ─────────────────→ │ 每次处理 1-2 章
├─ media/ ├─ 架构图ASCII化 自动化脚本生成 │ 补充专家视角细节
└─ slide_images/ └─ OCR补充(可选) (generate_md.py) └─ 3c: Review整合
(LibreOffice+PyMuPDF spatial_analysis.md 查漏补缺 + 统一语气
后台导出PNG)
关键认知:为什么需要四阶段?
| 阶段 | 输入 | 输出 | 核心挑战 |
|---|---|---|---|
| 提取 | .pptx二进制 | JSON结构数据 + 幻灯片图片 | 竖排CJK文字拆成单字符框;空间关系需Graph算法合并 |
| 空间分析 | slide JSONs + 图片 | 空间布局描述 + ASCII架构图 | 架构图层级识别、并列/包含/流程关系判定 |
| 初始MD | JSON + 空间分析 | 页面概览表+逐页摘要+逐页详细内容描述+空间标注 | 纯自动化,缺乏语义理解 |
| 分段专家重写 | 初始MD + slide JSONs + 图片 | CXO级战略文档 | 需融入行业知识、产品SKU理解、售前方法论逻辑;长文档需分段防止丢失细节 |
初始MD vs 专家MD的本质区别:
- 初始MD(
{name}_temp.md)= PPTX内容的机械化提取(线性Slide列表),作为中间参考,不是最终交付物 - 专家MD(
{name}.md)= 面向决策者的战略叙述(分层框架 + 数据矩阵 + 思路解读 + 逐页细节),与原始文档同名
文件命名规范:
| 文件 | 命名 | 说明 |
|---|---|---|
| 初始MD(中间产物) | {原始文档名}_temp.md |
generate_md.py 自动生成的详细提取版,含截图引用和深度解析,作为专家重写的输入参考 |
| 专家MD(最终交付物) | {原始文档名}.md |
专家重写后的最终版本,与原始PPTX/DOCX同名,直接可用 |
二、阶段一:PPTX提取(技术层)
提取工具
- 脚本:extract_pptx_layout.py
- 原理:PPTX = ZIP归档,解包后解析XML → JSON
输出文件
| 文件 | 作用 |
|---|---|
meta.json |
全PPT元数据:每页标题、文字摘要、形状数量 |
slide_NNN.json |
逐页详细数据:每个形状的坐标、文字、字体、层级关系 |
pptx_xml_parts.json |
全部XML原始内容(用于精确重建) |
media/ |
嵌入的图片/视频等媒体文件 |
pptx_files/ |
非XML二进制文件的副本 |
关键技术陷阱
1. 竖排CJK文字碎片化 PPT中的竖排中文会被拆成独立文本框("服"、"务"、"一"、"体"、"化"各占一个shape),需要用Graph Connected Components算法按坐标合并相邻字符。
2. meta.json优先 meta.json中的slide titles即使text extraction产生碎片也保持正确——优先使用meta.json的标题,不要从shape中重新拼接。
3. 空间语义 PPT的信息不仅在文字里,更在空间布局中:
- 左右并列 → 对比/并行关系
- 上下层叠 → 层级/递进关系
- 中心+环绕 → 核心+支撑关系
- 箭头连接 → 流程/因果关系
4. EMU坐标系 标准宽屏:12,192,000 wide × 6,858,000 tall
二-B、阶段1.5:空间关系分析与图片导出(新增)
工具
- 脚本:ocr_spatial_analysis.py
- 用法:
python ocr_spatial_analysis.py --pptx input.pptx --output-dir ./output - 可选 OCR:
python ocr_spatial_analysis.py --pptx input.pptx --output-dir ./output --ocr
为什么需要这一步?
PPT中的架构图、流程图、矩阵图,其核心信息在空间布局而非文字本身。仅靠XML提取的文本列表,无法让LLM理解"哪些概念在同一层级""哪些是并列关系""什么是核心、什么是外围"。
空间分析解决的核心问题:
- 层级识别:将同一纵向位置的元素聚类为"层",识别3层/4层/5层架构
- 并列关系:同一层内左右排列的元素 → 识别为"并列"
- 包含关系:大shape内嵌小shape → 识别为"包含/归属"
- 流程关系:横向有序排列的元素 → 识别为"步骤/流程"
- 布局类型自动判定:architecture_diagram / flow_horizontal / grid_matrix / comparison / hierarchical_list
输出文件
| 文件 | 作用 |
|---|---|
slide_images/slide_NNN.png |
每页幻灯片的 PNG 截图(150 DPI,可用 view_image 查看) |
spatial_analysis.json |
结构化空间分析数据(每页的层、列、包含关系) |
spatial_analysis.md |
LLM 可读的空间布局描述报告 |
空间描述格式(LLM友好,Haiku也能理解)
空间分析生成的描述使用简单的缩进+标签格式,确保即使是小模型也能正确理解:
布局类型: 架构图:多层级+多分块结构
层数: 4, 文本块数: 12
空间结构(从上到下):
[1层 y≈10%] 智能客服解决方案
[2层 y≈35%] (3列并列):
列1: 在线客服模块
列2: 智能机器人模块
列3: 工单系统模块
[3层 y≈60%] (2列并列):
列1: 知识库引擎
列2: 大模型能力
[4层 y≈85%] 基础设施层(数据库/缓存/消息队列)
包含/嵌套关系:
⊃ "智能机器人模块" 包含 "意图识别"
⊃ "智能机器人模块" 包含 "多轮对话"
架构图 ASCII 可视化
对于架构图/矩阵图页面,自动生成 ASCII art:
+--------------+--------------+--------------+
| 在线客服模块 | 智能机器人 | 工单系统 |
+--------------+--------------+--------------+
| 知识库引擎 | 大模型能力 |
+--------------+--------------+--------------+
| 基础设施层 |
+--------------+--------------+--------------+
幻灯片图片的使用(重要)
导出的 slide_images/slide_NNN.png 有两种关键用途:
- Agent 直接查看:在专家重写阶段,Agent 可通过查看图片来理解页面的视觉布局,弥补纯文本提取的不足
- OCR 补充:如安装了 Tesseract,可对图片运行 OCR,识别 XML 提取遗漏的文本(特别是 SmartArt、图表标签)
OCR 安装(可选)
# Windows: 下载并安装 Tesseract
# https://github.com/UB-Mannheim/tesseract/wiki
# 安装后确保 tesseract.exe 在 PATH 中
# Python 包已安装: pip install pytesseract
三、阶段二:初始MD自动生成
工具
- 脚本:batch_process.py(含断点续传)
- 输出:每个PPTX对应一个
{name}_temp.md中间详细版文件
初始MD的典型结构
# {文档标题}
> 共 N 页
## 页面概览
| 页码 | 标题 | 摘要 |
| 001 | ... | ... |
| 002 | ... | ... |
## Slide 001 — {标题}
{自动提取的文字内容}
## Slide 002 — {标题}
...
初始MD的局限
- ❌ 没有方案定位(不知道这份PPT的战略意图)
- ❌ 没有章节逻辑(不知道Slide之间的叙事关系)
- ❌ 没有数据解读("69个场景覆盖9个"只是抄下来,不知道意味着什么)
- ❌ 没有行业上下文(不知道这是哪个行业、什么产品)
- ❌ 没有思路说明(不知道为什么这样设计方案)
四、阶段三:分段专家重写(核心价值所在)
这是整个管线的灵魂步骤。专家重写不是润色,而是对PPT内容的立体重构。
★ 分段重写机制(解决长文档细节丢失问题)
核心问题:对于页数较多(≥15页)的PPTX,一次性重写会导致:
- 中间页面被概括性略过,单页内容无法被后续 LLM 检索和复用
- Token 上下文窗口限制,导致尾部页面质量下降
- 架构图、数据表等信息密集页的细节被省略
解法:三步分段重写
Step 3a: 整体骨架(一次完成)
─────────────────────────────
输入: 初始MD全文 + spatial_analysis.md
输出: 方案定位 + 章节逻辑表 + 各章节标题框架
时间: 一次调用
要求: 覆盖全文结构,但每个章节只写标题和1-2句核心命题摘要,和解决方案专家视角的方案逻辑解读
Step 3b: 逐章细节填充(分多次完成)
─────────────────────────────
输入: 骨架MD + 当前章的 slide JSONs + 对应的 spatial_analysis + 幻灯片图片 + 初始MD中的深度解析数据
输出: 当前章的完整专家解读(逐页展开)
方式: 每次只处理1-2个章节(约5-10页slides),追加写入MD
要求:
- 每一页Slide都必须有内容细节及对应的专家解读段落(不可跳过或概括合并多页)
- **架构图/网格页的专家重写规范**:
初始MD中已包含架构图的深度解析数据(递归提取全部shape文本 + 按y坐标聚类为层级结构),
专家重写时必须:
① 阅读初始MD中该页的完整深度解析(所有层级、所有文本元素)
② 以20年解决方案咨询专家视角,将全部细节重新组织为逻辑清晰的分析
③ 确保零信息丢失:原始PPT中的每个模块、每个标签、每条关系都必须体现在专家分析中
④ 输出形式:结构化表格/分层描述 + 要点备注,而非复制粘贴原始解析数据
⑤ Expert MD中不放截图引用、不放原始深度解析块——这些仅存在于初始MD作为参考输入
Step 3c: Review整合(一次完成)
─────────────────────────────
输入: 完整的专家MD
输出: 最终版MD
检查:
✓ 每一页Slide是否都有专家内容(对照overview表逐一核查)
✓ 章节衔接是否流畅(前后章的过渡)
✓ 语气是否统一(分享视角,非评价视角)
✓ 数据准确性(数字是否和原文一致)
✓ 架构图描述是否借鉴了空间分析结果
✓ 总结与战略洞察是否完整
【注意】Expert MD 中不包含截图引用和原始深度解析块。
架构图的深度解析数据仅存在于初始MD中,作为专家重写的输入参考。
专家在 Step 3b 中阅读这些数据后,输出的是经过专家消化的结构化分析。
3a → 3b → 3c 的详细操作规范
Step 3a 操作规范
- 读取初始MD全文,特别关注"页面概览表"
- 读取
spatial_analysis.md,标记哪些页是架构图/矩阵图 - 将全部Slides分组为章节(参考PPT的目录页/导航页,或按内容主题分)
- 输出骨架:
# {方案标题} · 深度解析
> **方案定位**:{150-250字完整战略摘要}
> - 客户是谁 + 核心问题 + 方案 + 承诺指标
| 属性 | 值 |
|------|-----|
| 文档类型 | ... |
| 页数 | N页 |
| 涉及SKU | ... |
---
## 方案整体架构与章节逻辑
| 章节 | 页码 | 核心命题 | 叙事角色 | 待细化 |
|------|------|----------|----------|--------|
| 第1部分:背景与痛点 | 001-005 | 当前困境 | 问题铺垫 | ⬜ |
| 第2部分:方案架构 | 006-012 | 解决方案 | 核心展示 | ⬜ |
| 第3部分:案例验证 | 013-018 | 效果证明 | 信任背书 | ⬜ |
| ... | ... | ... | ... | ⬜ |
---
## 第1部分:{章节标题}(Slides 001-005)
> 🔲 待逐页细化
## 第2部分:{章节标题}(Slides 006-012)
> 🔲 待逐页细化
...
Step 3b 操作规范(逐章填充,核心步骤)
对于每个章节,执行以下操作:
- 读取该章节覆盖的 slide JSON(如 slide_006.json ~ slide_012.json)
- 查看对应的幻灯片图片(如 slide_images/slide_006.png ~ slide_012.png)
- 使用
view_image工具查看每页截图 - 特别关注架构图、流程图的视觉布局
- 使用
- 读取 spatial_analysis.json 中对应页面的空间分析
- 为每一页撰写专家解读,包含:
- 该页的内容结构化呈现(表格/列表/层级)
- 架构图页需借助空间分析结果描述层级关系
- 关键页面添加"思路说明"
- 数据页的数字精确提取和解读
- 追加写入已有MD,替换该章节的
> 🔲 待逐页细化占位符
每页Slide的最低内容标准:
### Slide NNN — {标题}
{至少包含以下之一:}
- 3行以上的结构化内容摘要(表格/列表/描述)
- 或标记为【截图展示页】并描述展示内容
- 或标记为【导航页】并说明章节切换
{对于架构图/数据页/核心方案页,还需要:}
> **思路说明**:① 现象 → ② 逻辑 → ③ 含义
分块策略(按PPT页数选择):
| PPT总页数 | 分块方式 | 每次处理 |
|---|---|---|
| ≤ 12页 | 可一次完成 | 全部 |
| 13-25页 | 分2-3块 | 每次约8-10页 |
| 26-40页 | 分3-5块 | 每次约6-8页 |
| > 40页 | 分5-8块 | 每次约5-8页 |
Step 3c Review 规范
- 通读全文,对照"页面概览表"逐一检查:
- 页码 001 → 有内容 ✓
- 页码 002 → 有内容 ✓
- ... (逐页确认)
- 检查遗漏页,补充缺失内容
- 统一语气(删除"专家评注"等表述,统一为"思路说明")
- 检查章节过渡是否自然
- 确认"总结与战略洞察"段落存在且完整
- 将章节逻辑表中的
⬜改为✅
4.1 专家MD的标准结构(四层嵌套)
# {客户名} × {供应商名} {方案标题} · 深度解析
> **方案定位**:{150-250字战略摘要}
> - 客户是谁(行业/规模/特征)
> - 核心问题(当前痛点)
> - 解决方案(核心主张)
> - 关键数字(承诺指标)
| 属性 | 值 |
| 文档类型 | 售前提案/招标文件/QBR报告/... |
| 页数 | N页 |
| 核心主张 | ... |
---
## 方案整体架构与章节逻辑
| 章节 | 页码 | 核心命题 | 叙事角色 | 备注 |
---
## 第N部分:{章节标题}(Slides XXX-YYY)
### Slide NNN — {标题}
{内容解读:表格化、矩阵化、结构化}
> **思路说明**:{3句式——现象描述→内在逻辑→商业含义}
---
## 总结与战略洞察
{核心价值主线 + 差异化优势 + 风险提示 + 后续建议}
4.2 "思路说明"的三板斧写法
每条思路说明遵循三步结构:
> **思路说明**:
> ① [现象描述] —— 指出PPT中的具体设计/数据/选择
> ② [内在逻辑] —— 解释为什么这样做(行业原因/技术原因/策略原因)
> ③ [商业含义] —— 对客户生意的实际影响
典型示例:
> **思路说明**:选择OPPO作为背书案例极其精准——
> ① 影石和OPPO都是全球化3C硬件品牌,
> ② 面临相同的挑战(多国多语言、国内外系统整合、语音+在线混合),
> ③ OPPO的10%处理时长降低、录单准确率85%等数据给影石提供了直接可参考的ROI基准。
4.3 产品SKU识别方法
阅读PPT内容时,需要识别其中涉及的产品模块并在MD中标注:
| SKU | 识别线索 |
|---|---|
| 七鱼智能客服 | "在线客服"、"全渠道接入"、"工作台"、"会话分配" |
| Agent/智能体 | "Agent"、"智能体"、"大模型"、"CoreAgent"、"多轮对话编排" |
| AIGC能力 | "一键工单"、"话术润色"、"服务小记"、"文档问答"、"知识抽取" |
| 知识库 | "知识库"、"知识管理"、"知识萃取"、"知识处理"、"知识炼金术" |
| 智能质检 | "质检"、"服务评分"、"违规检测"、"情绪识别" |
| 智能外呼 | "外呼"、"预测式外呼"、"触达"、"营销电话" |
| 呼入机器人 | "IVR"、"语音导航"、"呼入"、"ASR转写" |
| 工单系统 | "工单"、"流转"、"SLA"、"工单流程画布" |
| VOC(客户之声) | "VOC"、"客户原声"、"舆情"、"体验洞察" |
| BI报表 | "报表"、"数据看板"、"驾驶舱"、"运营分析" |
| 精准营销 | "人群圈选"、"用户分层"、"RFM"、"营销策略" |
| SCRM | "SCRM"、"私域"、"企微运营"、"客户关系" |
| 视频客服 | "视频通话"、"屏幕共享"、"远程指导" |
| 海外版 | "多语言"、"WhatsApp"、"Line"、"海外渠道" |
在方案定位段落和总结中明确列出涉及的SKU组合。
4.4 行业方法论识别
不同行业的方案有不同的方法论模式,需要识别并在思路说明中点明:
| 行业 | 典型方法论 | 识别线索 |
|---|---|---|
| 零售/快消 | 服务+营销一体化、私域运营闭环 | "GMV"、"会员运营"、"促销"、"LTV" |
| 金融/保险 | 合规优先、大小模型融合、拒答策略 | "合规"、"持证"、"监管"、"幻觉风险" |
| 政务/交通 | 信创适配、等保要求、市民服务体验 | "信创"、"等保"、"市民"、"接诉即办" |
| 3C/硬件 | 全球化部署、多语言、售后维修闭环 | "全球"、"多语言"、"维修工单"、"备件" |
| SSC共享中心 | CC3运营模型、三级架构、员工体验 | "SSC"、"HRSSC"、"ITSSC"、"财务SSC"、"共享服务"、"AR-SR-FR" |
| B2B技术 | 算法定制、领域知识深度 | "算法优化"、"行业知识"、"领域定制" |
| 道路救援/紧急 | 调度联动、位置服务、紧急分级 | "派单"、"GPS"、"救援"、"紧急程度" |
4.5 方案类型识别与对应策略
| 文档类型 | 识别标志 | 重写策略 |
|---|---|---|
| 初次售前提案 | "v1.0"、品牌介绍占20%+ | 重点解读:方案结构逻辑、差异化定位、案例选择精准度 |
| 深化迭代版本 | "v2.0/v3.0"、减少铺垫 | 重点解读:相比前版新增了什么、回应了什么顾虑 |
| 招标文件 | "招标"、评分表、资格要求 | 重点解读:评分权重设计意图、关键得分/失分项 |
| 投标方案 | "投标"、逐条响应 | 重点解读:技术响应充分度、★条款覆盖、定制化程度 |
| 项目复盘/QBR | "复盘"、"总结"、准确率数据 | 重点解读:关键指标演进、经验教训、可复制方法论 |
| 效益测算 | "ROI"、"效益"、"测算" | 重点解读:计算模型的假设前提、数据可信度 |
| 测试/POC方案 | "测试"、"demo"、"试用" | 重点解读:场景选择精准度、分角色价值翻译 |
| 外呼/营销方案 | "外呼"、"618"、"营销" | 重点解读:人群分层策略、ROI数据、场景迁移价值 |
4.6 五种数据呈现模式
模式A:单点关键数据 → 加粗嵌入文字
覆盖率仅 **22.5%** | 准确率 **96.2%** | ROI **379.32**
模式B:对标数据表 → 二维表格比较
| 指标 | 当前值 | 目标值 | 行业基准 |
模式C:时间序列 → 展示优化过程
| 阶段 | 准确率 | 关键动作 |
| 初始 | 60% | MVP版本 |
| 调优后 | 98%+ | 闭环运营 |
模式D:场景ROI排序 → 决策优先级
| 场景 | 转化率 | ROI | 优先级 |
模式E:流程漏斗 → 可视化拆解
触达N万 → 接通N万 → 转化N笔 → ROI xxx
4.7 五种叙事主线模式
| 叙事线 | 适用类型 | 结构 |
|---|---|---|
| 诊断→解决→验证 | 标准售前提案 | AS IS → TO BE → HOW → GUARANTEE |
| 分层触达→多维验证 | 营销/外呼方案 | 洞察→分层→策略→效果→全年规划 |
| 分角色演示脚本 | 测试/POC方案 | 领导版→中层版→坐席版(同功能三语言翻译) |
| 技术透明自审 | 项目复盘 | 亮点→不足→测试→合规→持续运营 |
| 规则解读+博弈 | 招投标文件 | 评分体系→得分策略→关键门槛→竞争博弈 |
五、质量标准清单
必须满足(红线)
- 每一页Slide都有对应内容(无遗漏)
- 所有量化数据(数字/百分比/KPI)精确无误
- 方案定位段不超过250字但完整传达:客户是谁+问题+方案+承诺
- 章节逻辑表覆盖全文结构
- 关键页面(3-8个)有"思路说明"注释
- 涉及的产品SKU在文中明确识别
- 行业术语使用准确
高质量标志
- 思路说明采用"现象→逻辑→含义"三板斧
- 痛点/需求用表格(维度×描述×严重度)呈现而非段落
- 案例选择的精准度有分析(为什么选这个案例对标这个客户)
- 多版本方案有迭代分析(vN vs vN-1新增/删减了什么)
- 招投标文件有评分权重分析和竞争策略解读
- 数据承诺有可信度评估
语气标准(md-3优化后的最终标准)
- ❌ 不用"专家点评/专家评注/专家总评"——改用"思路说明/总体思路"
- ❌ 不用自我批评语言("模板复用痕迹"、"堆砌"、"低级失误"、"短板")
- ✅ 正面陈述或建设性建议("标准化模板框架/可进一步定制/提升空间")
- ✅ 分享视角而非评价视角("核心思路是"而非"问题在于")
- ✅ 文档目的是总结分享,不是评价打分
六、技术实现参考
PPTX提取
- 脚本:extract_pptx_layout.py
- PPTX = ZIP归档,保存原始压缩字节实现0%体积差异
- 输出:meta.json + slide_NNN.json + pptx_xml_parts.json + media/
空间分析与图片导出(新增)
- 脚本:ocr_spatial_analysis.py
- 图片导出:跨平台后台运行——LibreOffice headless 转 PDF → PyMuPDF 逐页渲染 PNG(150 DPI)
- 自动检测已有图片,避免重复导出
- 自动检测 LibreOffice 安装路径(Windows/macOS/Linux)
- 不打开任何可视窗口,不干扰用户工作
- 架构图深度解析:对 architecture_diagram / grid_matrix 类型页面做递归全量文本提取 + 截图嵌入
- 空间分析:基于 XML 提取的 shape 坐标,自动检测层级、并列、包含、流程关系
- OCR补充:可选。安装 Tesseract 后,对图片运行 OCR 识别 XML 遗漏的文本
- 输出:slide_images/ + spatial_analysis.json + spatial_analysis.md
- 依赖:
python-pptx,lxml,Pillow,PyMuPDF; 外部工具LibreOffice; 可选pytesseract - 用法:
- 完整流程:
python ocr_spatial_analysis.py --pptx input.pptx --output-dir ./output - 带OCR:
python ocr_spatial_analysis.py --pptx input.pptx --output-dir ./output --ocr - 仅分析已有JSON:
python ocr_spatial_analysis.py --json-dir ./output
- 完整流程:
MD生成
- 脚本:generate_md.py
- 初始MD生成:
python generate_md.py --single <data_dir> --type pptx(输出{name}_temp.md)- 架构图页面自动嵌入截图引用
 - 架构图页面自动生成深度解析块(递归提取全部shape文本 → 按y坐标聚类为层级结构)
- 这些深度解析数据作为阶段三Step 3b专家重写的输入参考
- 架构图页面自动嵌入截图引用
- 架构图深度解析(初始MD内):
- 架构图页面的深度解析数据(递归shape提取+y坐标层级聚类)已嵌入初始MD
- 这些数据作为 Step 3b 专家重写的输入参考,帮助专家零丢失地分析架构图
- Expert MD 中不包含截图引用或原始解析块,仅包含专家消化后的结构化分析
DOCX提取(新版高质量提取器)
- 脚本:extract_docx_to_md.py
- 核心原则:忠实保留DOCX中的全部文字内容,不做任何文字修改
- 使用python-docx + lxml直接解析OOXML
- 能力:
- ✅ 全部文字内容完整保留(包括文本框/textbox中的文字)
- ✅ 图片提取到media/目录,MD中生成引用(已验证529张图片的大文件)
- ✅ 表格保持在文档流中的原始位置(含合并单元格处理)
- ✅ 内联格式:加粗、斜体、下划线、删除线、等宽字体→代码
- ✅ 列表结构(有序/无序,含嵌套层级,via numbering.xml判定)
- ✅ 标题层级识别(Word内置样式 + outlineLevel)
- ✅ 超链接、脚注、尾注
- ✅ 页眉/页脚(去重后保留唯一内容)
- ✅ 元数据(作者、创建/修改时间、主题、关键词)
- DOCX与PPTX转换的核心区别:
- PPTX转换 = 内容重构(展示逻辑→阅读逻辑),会重新组织内容
- DOCX转换 = 忠实提取(保持文字不变),仅在开头加专家概述
- 用法:
python extract_docx_to_md.py input.docx [-o output_dir] [--md-path out.md]
批处理
- 脚本:batch_process.py
- 断点续传:
_progress.json - 状态流:pending → extracting → generating_md → completed / failed
编码注意事项
- Windows PowerShell写中文Python文件:用
[System.IO.File]::WriteAllText() - subprocess调用:
encoding="utf-8", errors="replace"+PYTHONUTF8=1 - python-docx需要单独安装:
pip install python-docx
七、端到端操作指南
单文件处理(PPTX)
1. 确认文件为PPTX格式
2. 运行提取脚本 → 得到 meta.json + slide_*.json
3. 运行空间分析:python ocr_spatial_analysis.py --pptx input.pptx --output-dir ./output
→ 得到 slide_images/ + spatial_analysis.md + spatial_analysis.json
→ 若有 Tesseract 可加 --ocr 启用OCR补充
4. 运行 generate_md.py 生成初始MD → 输出 `{name}_temp.md`(已集成空间分析数据)
5. 阅读 `{name}_temp.md` + spatial_analysis.md,识别:文档类型 + 行业 + SKU + 叙事模式
6. 按"分段专家重写"三步流程,输出写入 `{name}.md`(与原始文档同名):
Step 3a: 生成整体骨架(方案定位 + 章节逻辑表)
Step 3b: 逐章细节填充(每次处理1-2章,查看幻灯片图片,精读slide JSON,并做思路说明)
Step 3c: Review整合(逐页核查完整性 + 统一语气 + 补充总结)
7. 质量自检(对照上述清单,特别注意:每页Slide是否都有内容,架构图页是否有零丢失的专家分析)
单文件处理(DOCX)
1. 确认文件为DOCX格式
2. 运行提取脚本:python extract_docx_to_md.py input.docx -o output_dir
3. 脚本自动完成:
- 全部文字忠实提取(含文本框内容)
- 图片提取到 media/ 目录
- 表格保持在文档流中的原始位置
- 格式标记(加粗/斜体/下划线/列表/标题)还原
4. 在生成的MD文件开头,手动(或由LLM)撰写"方案概述":
- 站在资深解决方案咨询专家角度(150-300字)
- 覆盖:文档类型与定位、核心需求、方案思路、章节逻辑、关键亮点、涉及SKU
- 注意:概述之后的正文内容不做任何修改
5. 质量自检:检查文字是否完整、图片引用是否正确
批量处理
1. python batch_process.py --source <源目录> --output <输出目录>
2. 脚本自动扫描PPTX/DOCX → 提取 → 生成MD
3. 对每个初始MD进行专家重写(LLM + 人工判断)
4. 中断后可重新运行,自动断点续传
5. 完成后运行语气优化(transform_md3.py模式)
语气优化(批量后处理)
# 标签替换
"专家点评" → "思路说明"
"专家评注" → "思路说明"
"专家总评" → "总体思路"
# 自我批评语言清理
"模板复用痕迹" → "标准化模板基础"
"堆砌" → "全面展示"
"短板" → "提升空间"
"暴露了" → "反映了"(仅在自评语境下)
"低级失误" → 删除或改写
"评审质疑" → "关注点"
八、做对了什么:关键成功要素总结
1. 四阶段管线的设计正确
- 提取与理解分离:不试图在提取阶段就完成语义理解,而是先忠实保存结构数据,再由LLM进行语义重构
- 空间分析作为桥梁:在提取和理解之间增加自动化的空间关系分析,降低LLM的推理负担
- 初始MD作为中间产物(
_temp.md后缀):给LLM提供了结构化但不完美的起点,比直接从JSON生成要高效。最终专家版与原始文档同名(无后缀)
2. 深度阅读slide JSON而非只看meta.json
- meta.json只有标题和摘要文字,丢失了空间关系、表格结构、图表逻辑
- 阅读slide JSON能获取:每个形状的坐标→推断空间语义→理解信息架构
- 这是"22.5%覆盖率"这种精准数据能被正确提取和解读的前提
3. "方案定位"段落的发明
- 这是专家MD与初始MD最大的差异化元素
- 150-250字内完成:客户是谁 + 问题 + 方案 + 承诺——让读者10秒内理解全文定位
- 每份方案的定位段都不同,体现了对客户和行业的深度理解
4. 思路说明的"三板斧"结构
- 现象→逻辑→含义的三步结构,保证每条注释都有增值信息
- 不是"这很好"或"这不行"的简单评价,而是"为什么这样设计对这个客户有效"
5. 产品SKU × 行业方法论的交叉分析
- 不是泛泛地说"用了AI",而是精确识别用了哪些SKU(Agent+AIGC+VOC+质检)
- 不是泛泛地说"做了分析",而是识别行业特有逻辑(保险的合规红线、交通的信创要求、零售的GMV驱动)
6. 多版本迭代方案的对比分析
- 同一客户的v1→v2→v3,不是各自独立解读,而是分析迭代逻辑(新增了什么/删减了什么/回应了什么顾虑)
- 这让文档集从"孤立的文件"变成"完整的客户故事"
7. 表格化而非段落化的信息呈现
- 痛点分析:维度×描述×严重度(🔴/🟡)
- 章节逻辑:章节×页码×核心命题×叙事角色
- 案例对比:维度×版本A×版本B
- 这将PPT的视觉信息密度在纯文本中最大化还原
8. 语气的最终校准
- 从"评价者视角"转为"分享者视角"
- 删除一切自我批评(给领导看的文档不能自我贬低)
- 保留建设性建议但用正面表述
9. 空间关系分析的引入(新增)
- XML提取只有文本列表,丢失了"谁在谁旁边、谁包含谁"的空间信息
- 空间分析自动将 shape 坐标转化为层级/并列/包含/流程关系描述
- 架构图的 ASCII 可视化让LLM一眼看懂"接入层→应用层→数据层→基础设施层"
- 小模型(如 Haiku)也能通过简单缩进+标签格式理解复杂空间布局
10. 分段专家重写机制(新增)
- 解决了长文档(≥15页)一次性重写时中间细节被概括跳过的问题
- 骨架→逐章填充→Review三步走,确保每一页Slide都有专家级内容
- 分块处理控制每次的token消耗,避免上下文窗口溢出
- Review环节逐页核查,系统性杜绝遗漏
九、业务上下文参考
详见 Business Context Reference:
- 产品SKU分类表(15个SKU + 识别线索)
- 行业分类(重点行业 + 其他行业线)
- 需求场景标准分类(服务/营销/战略/其他)
- AI项目分类标签(智能体驱动/知识库驱动/SKILL驱动)