PDF 转 Markdown Skill
将 PDF 文件通过 OCR 转换为结构化的 Markdown 文本。
使用方式
加载本技能后,通过 run_shell_command 调用脚本:
python3 {skill_path}/scripts/pdf_to_md.py <pdf_file_path>
其中 {skill_path} 是 LoadSkill("pdf-to-md") 返回的技能文件夹路径。
返回结果
脚本在 stdout 输出 JSON:
| 字段 | 说明 |
|---|---|
markdown |
转换后的 Markdown 文本(超过 10000 字符会截断) |
output_file |
完整结果保存的 .md 文件路径 |
total_pages |
PDF 总页数 |
total_chars |
完整文本的字符数 |
truncated |
是否被截断("True"/"False") |
如果 truncated 为 "True",需通过 read_file 读取 output_file 路径获取完整内容。
处理流程
- 验证文件存在、后缀为 .pdf、大小不超过 50MB
- 用 PyMuPDF 将 PDF 拆分为单页
- 每页并发发送至 DeepSeek-OCR API(最多 10 并发)
- 按页码顺序拼接结果,用
---分隔各页 - 完整结果写入同目录下的同名 .md 文件
环境变量
OCR_API_KEY:SiliconFlow API Key。本脚本经run_shell_command在沙箱里执行, 只能读到 sandbox scope 的环境变量——必须配在「运行配置 → 沙箱环境」, 或按次请求经variables.sandbox_env传入。配成 runtime scope 该脚本读不到。
依赖
PyMuPDF(fitz)httpx
两者均已预装在沙箱的 /opt/sandbox-python venv 中(已 PATH 前置),直接 python3 调用即可。