概述
Switch to MD 是一个将任意文件格式转换为结构化 Markdown 的库,让 AI Agent 能够完美理解所有文档内容。核心思路是将转换过程抽象为"嗅探 → 路由 → 适配 → 规范化"流水线,支持通过插件接入本地或云端模型进行 OCR 与语义分析。
安装
# 核心包(文档类直接可用)
npm i switch-to-md
# 图片处理(可选)
npm i @switch-to-md/vision-openai # OpenAI Vision
npm i @switch-to-md/vision-local # 本地 Tesseract
# 音频处理(可选)
npm i @switch-to-md/audio-openai # OpenAI Whisper
npm i @switch-to-md/audio-local # 本地 Whisper快速开始
import { convert } from 'switch-to-md';
// 转换 PDF
const md = await convert('report.pdf');
// 转换 Word
const md = await convert('document.docx');
// 输出到文件
await convert('report.pdf', { output: 'report.md' });
// 批量转换
const results = await convert(['a.pdf', 'b.docx']);支持的格式
| 类别 | 格式 | 说明 |
|---|---|---|
| 文档 | PDF, DOCX, XLSX, PPTX, TXT, HTML, EPUB | 无需配置 |
| 图片 | PNG, JPG, GIF, BMP, TIFF, WebP | 需要视觉插件 |
| 音频 | MP3, WAV, FLAC, OGG, M4A | 需要音频插件 |
| 代码 | JSON, YAML, XML, CSV, 多语言源码 | 无需配置 |
| 矢量 | SVG | 无需配置 |
配置方式
import { configure } from 'switch-to-md';
// OpenAI
configure({
provider: 'openai',
apiKey: process.env.OPENAI_API_KEY,
});
// 本地模型
configure({
vision: { provider: 'local', model: 'tesseract' },
});CLI 使用
# 转换文件
npx switch-to-md convert report.pdf
# 批量转换
npx switch-to-md convert ./docs/**/*.pdf -o ./output/
# 设置向导
npx switch-to-md setup输出格式
---
source: report.pdf
type: PDF
pages: 12
extracted_at: 2026-04-29T00:00:00Z
backend: pdf-parse
---
# Document Title
## Body
[内容]
## Tables
| Col1 | Col2 |
|------|------|
| Data | Data |当前状态
已完成核心实现,支持 PDF/Word/Excel/PPT/图片/音频等主流格式的 Markdown 转换。