thepipe

GitHub
1.5k 98 简单 1 次阅读 3天前MIT数据工具语言模型其他插件
AI 解读 由 AI 自动生成,仅供参考

thepipe 是一款专为处理复杂文档而设计的开源数据提取工具。面对 PDF、Word、PPT、代码笔记本甚至音视频等非结构化或格式混乱的文件,传统解析方式往往难以保留原始布局或提取出干净的数据。thepipe 通过集成视觉 - 语言模型(VLM),能够像人类一样“看懂”文档内容,从中精准提取格式整洁的 Markdown、表格、图片及多模态媒体资源。

它主要解决了从多样化来源中高质量获取结构化数据的难题,特别适用于构建检索增强生成(RAG)系统、向量数据库索引或大模型训练数据清洗等场景。无论是开发者、AI 研究人员还是数据工程师,都能利用 thepipe 快速将杂乱文档转化为机器可读的优质语料。

thepipe 的技术亮点在于其原生的 AI 文件类型检测与布局分析能力,支持开箱即用地对接各类大语言模型和向量库。安装灵活,既提供轻量级的 CPU 版本以适应受限环境,也支持按需加载音频转录、语义分块等高级功能模块。只需几分钟配置,即可让繁琐的文档预处理工作变得高效可靠。

使用场景

某金融风控团队需要每天从数百份格式各异的招股说明书、扫描版财报 PDF 及嵌入图表的 PPT 中提取关键财务数据,以构建企业知识图谱。

没有 thepipe 时

  • 传统 OCR 工具无法识别复杂排版,导致表格行列错乱,数字与对应科目经常错位,人工校验耗时极长。
  • 遇到扫描件中的手写批注或模糊图表时,提取程序直接报错或输出乱码,大量非结构化数据被迫丢弃。
  • 为处理不同文件格式(PDF、PPT、图片),团队需维护多套独立的解析脚本,代码耦合度高且难以扩展。
  • 提取后的文本缺乏语义结构,直接存入向量数据库后,RAG 检索经常返回无关片段,严重影响问答准确率。

使用 thepipe 后

  • thepipe 利用视觉语言模型精准还原文档布局,即使面对复杂的跨页表格和混合图文,也能输出格式完美的 Markdown。
  • 能够“看懂”模糊图表和手写注释,自动将其转化为详细的文字描述或结构化数据,显著提升了数据利用率。
  • 一套接口即可统一处理 PDF、URL、Office 文档甚至视频音频,无需针对不同文件类型编写重复的解析逻辑。
  • 原生支持语义分块并直接对接主流向量数据库,生成的数据自带清晰结构,使 RAG 系统的检索命中率大幅提升。

thepipe 将原本需要数天的人工清洗工作缩短至分钟级,让团队能专注于高价值的风险分析而非数据预处理。

运行环境要求

操作系统
  • 未说明
GPU
  • 非必需
  • 默认安装仅包含 CPU 依赖
  • 如需 GPU 加速(运行 VLM 微调、Whisper 或 Sentence Transformers),需额外安装 PyTorch GPU 版本
内存

未说明

依赖
notes1. 默认安装 ('pip install thepipe-api') 仅包含 CPU 友好型依赖,适合受限环境和 CI 系统。 2. GPU 相关库(PyTorch, Triton 等)作为可选额外依赖,需手动安装(例如:thepipe-api[gpu])。 3. 若在纯 CPU 机器上需要使用依赖 PyTorch 的功能,建议先从 PyTorch 索引安装 CPU 版本的 wheel,再安装 extras。 4. 处理富媒体源(网页、视频、音频)时,需预先安装系统级依赖:git, ffmpeg 以及 playwright (含 chromium)。 5. 默认使用 OpenAI API 进行视觉语言模型 (VLM) 处理,也支持配置自定义兼容 OpenAI 接口的本地或云端服务(如 OpenRouter, OpenLLM)。
python未说明
openai-whisper (可选,音频处理)
sentence-transformers (可选,语义分块)
llama-index (可选,框架集成)
torch (可选,GPU 加速)
torchvision (可选,GPU 加速)
torchaudio (可选,GPU 加速)
playwright (系统依赖,用于网页抓取)
ffmpeg (系统依赖,用于媒体处理)
git (系统依赖)
thepipe hero image

快速开始

从复杂文档中提取干净数据 ⚡

thepi.pe 是一个能够从复杂文档中抓取干净的 Markdown、多模态媒体和结构化数据的工具包。它在底层使用视觉语言模型(VLM)以实现更高质量的输出,并且可以与任何 LLM、VLM 或向量数据库开箱即用。它可以从多种来源中提取格式良好的数据,包括 PDF、URL、Word 文档、PowerPoint 演示文稿、Python 笔记本、视频、音频等。

特性 🌟

  • 从任何文档中抓取干净的 Markdown、表格和图片
  • 从任何文件或 URL 中抓取文本、图片、视频和音频
  • 可与视觉语言模型、向量数据库和 RAG 框架开箱即用
  • 原生 AI 的文件类型检测、布局分析和结构化数据提取
  • 支持广泛的输入源,包括 PDF、URL、Word 文档、PowerPoint 演示文稿、Python 笔记本、GitHub 仓库、视频、音频等

5 分钟快速入门 🚀

可以通过命令行安装 thepipe:

pip install thepipe-api

默认安装仅包含对 CPU 友好的依赖项,因此适用于资源受限的环境和 CI 系统。而像 PyTorch 和 Triton 这样的 GPU 加速库则作为可选依赖项提供。

可选依赖

该包提供了一系列可选依赖,允许用户按需选择更重的依赖:

选项 安装内容 适用场景
thepipe-api[audio] openai-whisper 使用 Whisper 进行本地音频/视频转录。
thepipe-api[semantic] sentence-transformers 使用 Transformer 嵌入进行语义分块。
thepipe-api[llama-index] llama-index Chunk 转换为 LlamaIndex 格式。
thepipe-api[gpu] PyTorch + Whisper + Sentence Transformers 全面 GPU 加速,适用于 VLM 微调任务。

如果您使用的机器仅支持 CPU,但仍需要依赖 PyTorch 的功能,请先从 PyTorch 官方索引直接安装 CPU 版本的轮子,然后再添加相应的额外依赖。例如:

pip install torch==2.5.1+cpu torchvision==0.20.1+cpu torchaudio==2.5.1+cpu \
  --index-url https://download.pytorch.org/whl/cpu
pip install thepipe-api[semantic]

如果需要处理包含丰富媒体的来源,如网页、视频和音频,您可以选择安装以下系统依赖:

apt-get update && apt-get install -y git ffmpeg
python -m playwright install --with-deps chromium

然后使用全局安装方式通过 pip 安装:

pip install thepipe-api[all]

默认设置(OpenAI)

默认情况下,thepi.pe 使用 OpenAI API,因此只要传入 OpenAI 客户端,VLM 功能即可开箱即用。

自定义 VLM 服务器设置(OpenRouter、OpenLLM 等)

如果您希望使用本地视觉语言模型或其他云服务提供商,可以提供自定义的 OpenAI 客户端。例如,将基础 URL 设置为 https://openrouter.ai/api/v1 以使用 OpenRouter;或者设置为 http://localhost:3000/v1 来连接本地服务器,如 OpenLLM。请注意,您还需要将非 OpenAI 云服务提供商的 API 密钥传递给 OpenAI 客户端。模型名称可以通过 model 参数进行更改,默认为 gpt-4o

抓取

from thepipe.scraper import scrape_file

# 从 PDF 中抓取文本和页面图片
chunks = scrape_file(filepath="paper.pdf")

若要使用视觉语言模型增强抓取效果,可以传入兼容 OpenAI 的客户端和模型名称。

from openai import OpenAI
from thepipe.scraper import scrape_file

# 创建一个兼容 OpenAI 的客户端
client = OpenAI()

# 从 PDF 中抓取干净的 Markdown 和页面图片
chunks = scrape_file(
  filepath="paper.pdf",
  openai_client=client,
  model="gpt-4o"
)

分块

为了满足 token 数量限制,提供了以下几种分块方法,可以将内容拆分为更小的片段:

  • chunk_by_document: 返回包含整个文件内容的一个块。
  • chunk_by_page: 按每页返回一个块(例如:每个网页、PDF 页面或 PowerPoint 幻灯片)。
  • chunk_by_length: 按长度分割块。
  • chunk_by_section: 按 Markdown 段落分割块。
  • chunk_by_keyword: 在关键词处分割块。
  • chunk_semantic(实验性功能,需安装 sentence-transformers):根据语义变化的突变点分割块,可配置阈值。
  • chunk_agentic(实验性功能,需安装 OpenAI):由 LLM 代理尝试找到语义上有意义的部分来分割块。

例如:

from thepipe.scraper import scrape_file
from thepipe.chunker import chunk_by_document, chunk_by_page

# 可选地指定分块方法
# chunk_by_document 返回整个文档的一个块
chunks = scrape_file(
  filepath="paper.pdf",
  chunking_method=chunk_by_document
)

# 也可以稍后再重新分块。
# chunk_by_page 每页返回一个块(例如:每个网页、PDF 页面或 PowerPoint 幻灯片)。
chunks = chunk_by_page(chunks)

OpenAI 聊天集成 🤖

from openai import OpenAI
from thepipe.core import chunks_to_messages

# 初始化 OpenAI 客户端
client = OpenAI()

# 使用 OpenAI 格式的聊天消息
messages = [{
  "role": "user",
  "content": [{
      "type": "text",
      "text": "这篇论文讲的是什么?"
    }]
}]

# 直接将抓取到的块添加到消息中
messages += chunks_to_messages(chunks)

# 调用大语言模型
response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
)

chunks_to_messages 接受一个可选的 text_only 参数,用于仅输出源文档中的文本内容。这对于下游使用缺乏多模态能力的大语言模型非常有用。

⚠️ 务必注意模型的令牌限制。 请确保您的提示词在模型的令牌限制范围内。您可以通过分块将消息拆分为更小的片段。

LLamaIndex 集成 🦙

安装可选的额外依赖项,然后调用 .to_llamaindex

pip install thepipe-api[llama-index]

安装完成后,可以使用 .to_llamaindex 将分块转换为 LlamaIndex 的 DocumentImageDocument。如果没有安装该额外依赖,系统会抛出一条友好的错误信息,而不是在导入时直接失败。

结构化提取 🗂️

请注意,结构化提取功能即将弃用,并将在未来的版本中移除。当前的实现只是对 OpenAI 聊天 API 的简单封装,这并不适合用于结构化数据的提取。我们建议使用 OpenAI 的 结构化输出 功能来进行结构化数据提取,或者使用 Trellis AI 来构建基于结构化数据的自动化工作流。

from thepipe.extract import extract
from openai import OpenAI

client = OpenAI()

schema = {
  "description": "string",
  "amount_usd": "float"
}

results, tokens_used = extract(
    chunks=chunks,
    schema=schema,
    multiple_extractions=True,  # 每个分块提取多行数据
    openai_client=client
)

运行测试套件 🧪

安装基础依赖以及您所依赖的任何额外依赖,然后执行以下命令:

pip install -r requirements.txt
python -m unittest discover

依赖于可选额外组件(如 Whisper、Sentence Transformers、LlamaIndex)或 OpenAI API 密钥的测试,在相应依赖不可用时会自动跳过。

赞助商

请考虑通过 成为赞助商 来支持 thepipe。您的支持不仅有助于我维护和改进该项目,还能帮助开源社区发现您的工作成果。

访问 Cal.com,这是一款开源的日程安排工具,可帮助您轻松预约会议。对于希望简化日程安排流程的繁忙专业人士来说,它是一个理想的解决方案。

使用 Cal.com 与我们预约

如果您正在寻找企业级的文档处理和智能自动化解决方案,请了解 Trellis AI 如何优化您的工作流程并提升生产力。

工作原理 🛠️

thepipe 结合计算机视觉模型和启发式规则,从源文档中提取干净的内容,并将其处理以供下游使用,例如大型语言模型(LLM)或视觉-语言模型(VLM)。您可以将这些消息直接输入到模型中,也可以先对其进行分块,然后存储到向量数据库中,比如 ChromaDB、LLamaIndex 或其他类似的 RAG 框架。

支持的文件类型 📚

来源 输入类型 多模态 备注
网页 httphttpsftp 开头的 URL ✔️ 从网页中抓取 Markdown、图片和表格。通过传递 OpenAI 客户端进行截图分析,可实现 AI 提取功能
PDF .pdf ✔️ 提取页面的 Markdown 和页面图片。在处理复杂或扫描文档时,若提供 OpenAI 客户端,则可进行 AI 提取
Word 文档 .docx ✔️ 提取文本、表格和图片
PowerPoint .pptx ✔️ 提取幻灯片中的文本和图片
视频 .mp4.mov.wmv ✔️ 使用 Whisper 进行转录,并提取视频帧
音频 .mp3.wav ✔️ 使用 Whisper 进行转录
Jupyter Notebook .ipynb ✔️ 提取 Markdown、代码、输出和图片
电子表格 .csv.xls.xlsx 将每一行转换为 JSON 格式,包括每行的索引号
纯文本 .txt.md.rtf 简单的文本提取
图片 .jpg.jpeg.png ✔️ 在纯文本模式下使用 VLM 进行 OCR
ZIP 文件 .zip ✔️ 解压并处理其中的文件
目录 任何 path/to/folder ✔️ 递归处理目录中的所有文件。可选地使用 inclusion_pattern 传入正则表达式字符串,以指定包含文件的规则。
YouTube 视频(已知问题) https://youtube.comhttps://www.youtube.com 开头的 YouTube 视频 URL ✔️ 使用 pytube 下载视频,并使用 Whisper 进行转录。为确保提取的一致性,可能需要修改 pytube 的安装,以发送有效的用户代理头(参见 此问题)。
推文 https://twitter.comhttps://x.com 开头的 URL ✔️ 使用非官方 API,可能会意外中断
GitHub 仓库 https://github.comhttps://www.github.com 开头的 GitHub 仓库 URL ✔️ 需要设置 GITHUB_TOKEN 环境变量

配置与环境

通过设置以下环境变量来控制 API 密钥、托管服务和模型默认值:

# 如果希望长期存储和托管图片(保存到 ./images 并通过 HOST_URL 提供服务)
export HOST_IMAGES=true

# 用于通过 `scrape_url` 抓取私有/公共仓库的 GitHub Token
export GITHUB_TOKEN=ghp_...

# 控制抓取的默认设置
export DEFAULT_AI_MODEL=gpt-4o
export DEFAULT_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
export FILESIZE_LIMIT_MB=50

# 音频转录的最大时长(单位:秒)
export MAX_WHISPER_DURATION=600

# 网页文件大小限制(单位:MB)
export FILESIZE_LIMIT_MB = 50

# 用于爬取仓库的凭据
export GITHUB_TOKEN=...

CLI 使用方法

thepipe <source> [options]

AI 爬取选项

--openai-api-key=KEY 要启用 VLM 爬取,请传入您的 OpenAI API 密钥。

--openai-model=MODEL 用于爬取的模型(默认为 DEFAULT_AI_MODEL,当前为 gpt-4o)。

--openai-base-url=URL 自定义 LLM 端点,适用于本地 LLM 或像 OpenRouter 这样的托管 API(默认:https://api.openai.com/v1)。

--ai_extraction ⚠️ 已弃用;将从 OPENAI_API_KEY 环境变量中获取 API 密钥。

通用爬取选项

--text_only 仅输出文本(禁用图片)

--inclusion_pattern=REGEX 只包含其_完整路径*匹配正则表达式的文件(适用于目录/压缩包)。

--verbose 打印详细的进度信息。

贡献说明

本包在设计和实现上具有较强的主观性。部分模块与整体架构紧密耦合,而另一些模块则被设计为可灵活修改的。

在贡献代码之前,请先在 GitHub 上创建一个议题,讨论您的想法以及最佳实现方式。未遵循此流程的拉取请求将被关闭。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

155.4k|★★☆☆☆|今天
开发框架Agent语言模型

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|5天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|1周前
开发框架语言模型