GitHub热点: anydoc把文档秒变Markdown喂给AI
想让AI读你的文档?它得先变成Markdown。就这一步,卡住了无数人。
今天的故事
最近做AI应用的人都有个体会:喂给大模型的东西,最好是干净的Markdown。模型读Markdown最顺、最不容易胡编。
可现实是,你的资料堆在Word、PPT、Excel、PDF里。要把它们变成AI能"咽下去"的Markdown,太折磨人了。
我自己踩过这几个坑:
- 复制粘贴
:从Word拷一段带表格的文字到纯文本,表格散架、换行乱套,AI读完理解错位。 - 在线转换网站
:上传一份合同PDF,转是转完了,可里面好几页是扫描件,出来的Markdown一堆乱码。更要命的是--合同是保密的,我图省事传到陌生网站,事后后脊背发凉。 - PDF解析库
:换个库,速度慢得能去泡杯咖啡,一份50页报告转完要十几秒。 还有个老哥的吐槽特别真实:"我让Claude直接读PDF,它说'这页是图片我看不清',我让它用OCR,识别完错别字比我原文还多。"
文档转Markdown这事,看着不起眼,实际是"喂AI"流水线里最碍事的卡点。
然后我刷GitHub,发现有个项目8天涨了一万五千星,专治这个。它叫:anydoc。
这是什么
anydoc是Firecrawl团队开源的文档转换库,用Rust写的,把Word、PowerPoint、Excel、OpenDocument、RTF、EPUB、CSV、PDF这些常见办公文档,统统转成干净的GitHub风格Markdown。
一句话理解它:不管什么格式进去,出来都是同一套干净的Markdown,而且是个位数毫秒。
来头不小:它就是Firecrawl Parse的底层引擎。Firecrawl是做网页和文档抓取的老牌玩家,这套转换逻辑早经过大规模实战。现在单独抽出来开源,star数1.5万,8天涨出来的,正处在爆发期。许可证MIT,商业随便用。
为什么它火:先把痛点说透
文档转Markdown这事,难在三个地方,anydoc都精准踩中了:
- 1. 格式太碎
Word有Word的标记、PPT有PPT的结构、PDF有PDF的坑。市面上很多工具是"一种格式一个库",拼凑起来又乱又慢。anydoc统一吃下七种格式,吐出一致的Markdown,省掉你"对格式选库"的麻烦。
- 2. 速度太慢
Python系转换工具(比如微软的MarkItDown)够好用,但处理大文件、批量转换时,Python的速度就是天花板。anydoc用Rust写,官方说法是个位数毫秒一篇--快到什么程度?批量转几百份文档,你眨完眼它已经转完了。
- 3. 隐私过不去
这点对很多场景是命门。你的合同、财报、客户资料,敢不敢传到云端转换?anydoc能编译成WebAssembly,直接在浏览器里跑--文件根本不离开你的电脑。这一点,多少在线转换工具都做不到。
核心设计:Rust内核 + 全平台绑定
它的架构挺干净:
- Rust核心
:所有格式解析、Markdown生成都在Rust里完成,又快又稳。 - 多语言绑定
:Node.js、Python、Rust原生、浏览器WASM,四种方式调同一个内核。不管你技术栈是啥,都能接。 - CLI + Agent技能
:命令行能直接用,还能装成AI Agent的技能--你的Claude Code、Cursor遇到文档,自己就知道调anydoc来读。 最让我眼前一亮的是浏览器本地转换。它的官网有个在线demo,传个文件上去,转换全在你本地浏览器跑(WebAssembly),文件不上传服务器。对敏感文档来说,这"本地"两个字值千金。
怎么上手:三种姿势
门槛很低,按你的场景选:
- 姿势一:命令行一把梭
(不想写代码) npx @firecrawl/anydoc report.docx # 直接输出Markdown npx @firecrawl/anydoc slides.pptx -o slides.md # 存成文件 npx @firecrawl/anydoc - --format csv < data.csv # 从标准输入读npx第一次会自动下对应平台的二进制,之后就能直接用。想常驻命令,全局装: npm install -g @firecrawl/anydoc。 - 姿势二:Python里调
(最常用) import anydoc # 从文件路径转 markdown = anydoc.to_markdown("report.docx") # 从字节转,格式自动识别 markdown = anydoc.to_markdown_bytes(data)- 姿势三:装成Agent技能
(让AI自己会读文档) npx skills add firecrawl/anydoc装完,Claude Code、Codex、Cursor这些Agent遇到文档,自己就会用anydoc转了。这步对"做AI工作流"的人是惊喜--省掉你手写文档预处理。
适合谁
- 做RAG和知识库的
:文档要先转Markdown切块再喂向量库,anydoc把这步从"卡脖子"变"顺手"。 - 处理敏感文档的
:合同、财报、病历--浏览器本地转换,不外传。 - 要批量转的
:Rust的个位数毫秒,几百上千份文档扛得住。 - 用Claude Code或Cursor做AI编程的
:装成技能,AI自己会读文档,不用你手动预处理。 不太适合:偶尔转一两份、不在意隐私和速度的--在线工具凑合用就行,没必要装。
真实感受(我说的,非Firecrawl)
聊几点判断:
- 第一,"文档转Markdown"是被低估的刚需。
大家光盯着模型多强,可真正落地时,七成卡点在数据准备。anydoc把这条最碍事的缝补上,难怪涨这么快。 - 第二,Rust加多语言绑定这套路子,正成为工具类项目标配。
核心用Rust求性能,再包出Python、Node、浏览器绑定求生态。既要又要,anydoc是个干净范本。 - 第三,"本地转换"是真护城河。
隐私这事儿,企业不是不懂,是没好工具。anydoc把"不传云端"做成开箱即用,这比快更戳人。 当然也得说句公道话:它读不了扫描版PDF(那得靠OCR),官方自己也讲清楚--这类页面可以接它的Firecrawl Parse托管API。文档里没藏着掖着,这点反而更让人信。
今日金句
喂AI这件事,胜负不在模型多聪明,在你给它吃的料干不干净。 今日挑战
挑一份你手头吃灰的文档,试试anydoc:
- 入门
: npx @firecrawl/anydoc 你的文件.docx,看看转出来的Markdown干不干净 - 进阶
:写个Python脚本,把一个文件夹里的Word全转成Markdown - 挑战
:去官网demo传份敏感文档,感受"文件不离开浏览器"的踏实 转一次才有感觉,光看README体会不到个位数毫秒的爽。
GitHub链接
项目地址:https://github.com/firecrawl/anydoc
在线体验:https://firecrawl.github.io/anydoc/
官网:https://firecrawl.dev
夜雨聆风