panda-etl
开源 No-code ETL 工具,无需编程即可从 PDF/邮件/网站/音频中提取结构化数据,集成 GPT 语义理解能力,docker-compose 一键部署
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源 No-code ETL 工具,无需编程即可从 PDF/邮件/网站/音频中提取结构化数据,集成 GPT 语义理解能力,docker-compose 一键部署
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
张明是一家电商公司的数据分析工程师。每天的工作听起来很光鲜——用数据驱动决策——但现实是:他花在前三个步骤上的时间,比真正的分析还多。
周一早上,领导扔给他一份任务:从上周客户反馈的 300 份 PDF 邮件、10 个网站的新闻稿、以及 5 段录音访谈中,提取出所有关于竞品 A 的评价,做成一份报告。
张明开始盘算:PDF 要用 OCR 解析,邮件要写正则匹配,网站要爬虫抓取,录音要先转文字再 NLP 提取……光是写这些 ETL(Extract-Transform-Load)脚本,就得两天。更要命的是:领导周四就要结果。
这不是张明一个人的困境。数据工程师和 AI 应用开发者每天都在和"把非结构化数据变成结构化数据"这件事搏斗。而传统的 ETL 工具,要么太笨重(需要写 SQL),要么太昂贵(SaaS 平台按量收费),要么根本不支持 AI 能力(无法做语义提取)。
PandaETL 的出现,就是来解决这个问题的。
PandaETL 是由 Sinaptik-AI 团队开发的开源 No-code ETL 工具,专注于从多种文档类型中提取数据,并通过 AI/NLP 能力实现语义级别的内容理解。它的定位非常清晰:不需要写一行代码,就能从 PDF、邮件、网站、音频文件中提取结构化数据。
GitHub 数据显示,该项目获得 317 颗星、55 个 Fork,技术栈横跨前端 Next.js、后端 Python FastAPI,代码库结构规范,社区活跃度尚可(有一个 Discord 频道)。虽然目前还在快速迭代中(v0.2.1),部分功能标注为"coming soon",但核心的文档提取链路已经可用。
从架构上看,PandaETL 采用经典的前后端分离设计:前端是基于 Next.js 14 + TypeScript 的单页应用,后端是 Python FastAPI 服务,通过 REST API 与前端通信。数据库采用 SQLite(生产可用),向量存储使用 ChromaDB(用于语义检索)。这个技术选型在轻量级开源项目中非常合理——FastAPI 异步性能好,ChromaDB 部署简单,Next.js 生态成熟。
前端技术栈非常现代化:Next.js 14 + TailwindCSS + Framer Motion + Radix UI。界面设计上采用了暗色主题配合熊猫主题的视觉风格,交互流畅度有保障。
从代码结构来看,前端核心依赖包括:
整体界面逻辑围绕"项目(Project)→ 流程(Process)→ 步骤(Process Step)"三级结构展开:用户先创建项目,然后在项目内新建数据提取流程,流程由多个步骤组成,每个步骤可以配置不同的数据源类型。
后端是整个系统的核心引擎。Python 技术栈选型:
从 app/api/v1/ 的路由设计可以清晰看到功能划分:
| 路由模块 | 功能说明 |
|---|---|
projects.py | 项目 CRUD 管理 |
processes.py | 流程管理(启动/停止/查询状态) |
process_steps.py | 流程步骤管理(每个数据源一个步骤) |
extract.py | 数据提取核心逻辑 |
chat.py | 文档对话功能(规划中的"与文档聊天"功能) |
user.py | 用户/API Key 管理 |
processing/process_queue.py 实现了一个后台任务处理系统:使用 ThreadPoolExecutor(最多 5 个并发 worker)从队列中取出待处理的文档,执行提取任务。任务类型包括:PDF 解析、网页爬取、邮件解析、音频转录(未来)等。提取结果通过 ChromaDB 存储向量,同时保留原始文本供后续查询。
这是 PandaETL 最值得称道的地方:提供完整的前后端双 Dockerfile + docker-compose.yml,真正实现一键部署。
docker-compose.yml 配置了:
poetry run alembic upgrade head),启动 Uvicorn 服务(端口 5328)instance/(数据库)、uploads/(上传文件)、processed/(处理结果)三个目录用户只需要在服务器上运行:
git clone https://github.com/Sinaptik-AI/panda-etl.git
cd panda-etl
docker-compose up -d
访问 http://服务器IP:3000 即可打开前端界面,后端 API 在 :5328 提供服务。整个过程不需要安装 Node.js、Python、Poetry、Conda 等任何本地开发环境。
从代码组织来看,开发团队有良好的工程习惯:
做得好的方面:
--cov=app --cov-report=xml,GitHub Actions 在每次 PR 中跑覆盖率报告可以改进的方面:
allow_origins=["*"],生产环境需要收紧适合的场景:
不太适合的场景:
PandaETL 代表的趋势是AI 原生的数据准备工具。传统 ETL(Informatica、Talend)需要用户理解数据模型和 SQL;新一代 AI ETL(PandaETL、LlamaParse)让用户用自然语言描述提取需求,AI 自动完成理解。
作为一个还处于早期阶段(v0.2.x)的开源项目,PandaETL 的方向对了——No-code + AI 是真实需求,docker-compose 一键部署降低了试用门槛。但能否真正成为一个可用的生产工具,还取决于:路线图功能能否按期交付、向量检索质量能否持续优化、以及社区能否形成正向循环。
对于想尝试 AI 文档提取、但不想从零搭框架的开发者来说,PandaETL 是一个值得 watch 的项目。