这两年 AI 越来越火,大家都在折腾 RAG、知识库、AI Agent。但有个问题始终绕不开:怎么把各种乱七八糟的文件格式喂给大模型?
PDF、Word、Excel、PPT、图片、邮件……每个格式都有自己的一套解析方案。PDF 要用 pdfminer,Word 要用 mammoth,Excel 要用 xlsx 库,图片还要走 OCR。项目还没写几行业务逻辑,光处理文件格式就堆了一堆代码。
我也踩过这些坑,最开始给一个 AI 项目做文档导入,客户发来的文件五花八门——合同是 PDF 扫描件,报表是 Excel,会议纪要是 Word,还有一堆 PPT 和图片。为了把这些都转成 LLM 能读的文本,我前后试了好几个方案,最后决定自己写一个工具。
这个工具就是 file2md(npm 包是 @covoyage/File2md,同时提供 CLI,MIT 协议开源)。
要做的事情很简单:把任何文件变成 Markdown。不管是 PDF、DOCX、XLSX、PPTX、图片、音频、邮件,甚至 YouTube 视频、维基百科页面、RSS 订阅——都能统一输出成 Markdown。
安装 CLI
全局装,之后直接 file2md 命令:
npm install -g @covoyage/file2md不想装也行,npx 免安装直接跑:
npx @covoyage/file2md 报告.pdfCLI 用法给个文件路径,输出 Markdown 到终端或文件:
file2md 合同.docx # 输出到终端file2md 报告.pdf -o 输出.md # 写入文件管道输入,适合做自动化处理的一环:
cat 会议纪要.docx | file2md -x docxcurl https://example.com/doc.pdf | file2md -x pdf库用法Node.js 项目里直接 import 当库用:
import { File2MD } from "@covoyage/file2md";const md = new File2MD();const result = await md.convertLocal("./合同.docx");浏览器项目(Svelte、Vite 等)也能用,走 convertStream() 传入 File 对象。
给 AI Agent 调用
这工具本身就是为 AI 场景写的,对 Agent 很友好——Markdown 直接打 stdout,exit code 0 表示成功,报错走 stderr。Coding Agent、MCP Server、CI 流程都能直接调:
file2md /path/to/报告.pdf # Markdown 从 stdout 拿file2md 报告.pdf -o /tmp/out.md # 或者写文件让 Agent 读cat 报告.pdf | file2md -x pdf # 管道传内容也一样还额外提供了一个 Agent Skill,装到 Cursor、Claude Code、GitHub Copilot、Windsurf、OpenCode 等编辑器里,Agent 就能自动学会怎么用——知道哪些格式能转、什么时候传路径、什么时候用管道、Cloud 模式怎么配。
目前支持近 20 种格式:文档类有 PDF、DOCX、XLSX、PPTX、EPUB、CSV、IPYNB(Jupyter Notebook);媒体类有图片(JPG/PNG/GIF/WebP)、音频(WAV/MP3/M4A);网络类有 YouTube、维基百科、RSS;还支持 Outlook 邮件 .msg 和 ZIP 压缩包。
对于 AI 开发者来说,这个工具最大的价值就是是省掉了大量的"脏活累活"。无论是做 RAG 管道的文档预处理,还是给 AI Agent 加文件读取能力,或者批量清洗老旧文档,都可以使用这个工具直接把文件转成干净的文本。
如果你也在被文件格式折磨,可以试试:
- GitHub:github.com/covoyage/file2md
- npm:npm install @covoyage/file2md
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.