用途:把 PDF 文档转换为 Markdown,借助 Mistral 的 OCR API 提取文本、格式与图片,适合研究论文、扫描版 PDF 以及需要保留结构或图片的复杂排版文档。
主要能力:保留标题、列表等 Markdown 结构;自动把内嵌图片保存到转换目录下的 images/ 文件夹,并在 Markdown 中以 images/img-X.jpeg 相对路径引用;支持按页或页范围选择;对图像型 PDF 提供真正的 OCR。
使用方式:在技能目录下运行脚本,<skill-dir> 为包含 SKILL.md 的目录,需替换为真实路径。 整份转换:uv run --script <skill-dir>/scripts/convert_pdf_to_markdown.py input.pdf output.md 指定页:uv run --script /scripts/convert_pdf_to_markdown.py input.pdf output.md --pages "1-5" 或 --pages "1,3,5" 输出为自包含文件夹:传入 Output/PDFConversions/paper_alpha.md 会生成 Output/PDFConversions/paper_alpha/paper_alpha.md 及同级 images/;传入已存在的文件夹式 Markdown 路径则保持该路径;传入目录则生成 <directory>/<输入PDF文件名>.md。也可在 Python 中通过 subprocess 调用该脚本。
依赖与密钥:需要 Mistral API key,以及 mistralai、python-dotenv、pypdf、pyyaml(在脚本 PEP 723 头部内联声明)。密钥按顺序查找:环境变量 MISTRAL_API_KEY(推荐);共享配置 .claude/agent-contract.yaml 或 ~/.config/agent-contract/config.yaml 中的 paper-reader.mistral_api_key;Notes/.env 中的 MISTRAL_API_KEY。切勿把密钥提交到 git。
限制:大 PDF 因 API 限制可能处理较慢;可能遇到 API 限流,需稍后重试或减少单次页数;页码超范围会跳过并提示。若只需简单文本提取、无需 OCR,可考虑改用 pdf 技能。更多 Mistral OCR API 细节见 references/reference.md。