当前位置: 首页 > news >正文

LLM喂文件神器-讲讲开源文件转换工具 file2md

这两年 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 报告.pdf

CLI 用法

给个文件路径,输出 Markdown 到终端或文件:

file2md 合同.docx # 输出到终端 file2md 报告.pdf -o 输出.md # 写入文件

管道输入,适合做自动化处理的一环:

cat 会议纪要.docx | file2md -x docx curl 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
http://www.gsyq.cn/news/1611490.html

相关文章:

  • 10 种 RAG 模式
  • 你的 Agent 架构选错了:越复杂的 Agent 系统,越可能走向失败
  • Spring AI + RAG
  • 告别Keil律师函!手把手教你用VSCode+GNU Arm+STM32CubeMX搭建免费单片机开发环境(Windows版)
  • 深智微:华润微官方授权代理商,如何让型号、库存交期与项目交付协同推进
  • 操作系统缓存机制深度解析:从页缓存到内存映射,超越Redis的性能优化之道
  • 行测申论试卷|公务员申论刷题|数量关系备考
  • Qt——文本绘制技巧
  • 气泡特效的核心在于BubbleEffect类,它继承自Manim的Animation类,通过重写关键方法来实现气泡的上升、变大和透明度变化效果。
  • 你的输出第一行肯定和我不一样,且每次运行的输出肯定不一样。
  • — 一款针对 IT 团队开发的文档管理系统,基于 Golang 开发,内置项目管理,用户管理,权限管理等功能,可以用来储存日常接口文档,数据库字典,手册说明等文档。功能特色:
  • 零基础使用VMware虚拟机安装CentOS Linux超详细教程
  • 硬件学习第三天(阅读芯片手册)
  • 技术速递|通过全新开放数据集,加速研究人员和开发者构建多语言 AI
  • [智能体-612]:AGENTS.md 完整详解(OpenClaw 体系,对应 workspace 里的工作规范文件)
  • 中餐厅摆台 点击UI图片拖拽预制体到桌面并 实现预制体拖拽
  • 一文搞懂巴别鸟版本管理:从历史回溯到冲突解决的完整攻略
  • Keepalived简介与工作原理Keepalived是一个基于VRRP协议(虚拟路由冗余协议) 实现的高可用解
  • 23 万 Star 的秘密知识库,运维和安全人员的工具箱
  • 3个步骤让Windows 11重获新生:Win11Debloat系统优化完全指南
  • 基于STM32单片机老人防丢智能拐杖 盲人导航定位跌倒检测设计系统3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • HTML和CSS基本知识
  • 大模型核心技术与企业级应用实战指南-附录
  • App Store Connect CLI 1.5.4 官方版下载(夸克网盘+百度网盘,SHA256校验)
  • 企业级数字人直播解决方案:多账号矩阵 + 全域同步推流
  • 双向链表,反转链表
  • PHP本地开发环境一键部署与API集成实践指南
  • MySQL索引深潜:从B+树到查询优化器的艺术
  • Spring Boot 3.0.5 + Vue 3 实战:手把手教你搞定WebSocket消息推送(含完整前后端代码)
  • Java中实现html转pdf