Doc2Alpaca
把文档里的知识,整理成能审、能改、能导出的训练数据。
一个面向微调数据整理的全栈应用:把多格式文档拆成可处理的内容块,生成候选问答,经过人工审核后导出为 Alpaca 或 ShareGPT 数据集。
- Next.js
- TypeScript
- OpenAI-compatible API
- PostgreSQL
- Redis
- RabbitMQ
- Docker Compose
- Electron

01 / CONTEXT
背景
准备微调数据时,最费时间的常常不是训练,而是把散落在 PDF、Word、Markdown 等文件里的内容整理成能用的数据。复制、切段、编问答、查重复这些步骤一旦靠手工完成,既慢也很难回溯。
Doc2Alpaca 把这段工作收进一条完整流程:先导入文档,再生成候选问答,经过人工审核后按 Alpaca 或 ShareGPT 格式导出。重点不是替人“自动完成一切”,而是把人真正需要判断的那一步留在最后。
02 / CHALLENGE
挑战
长文不能一次塞进处理链路。它需要稳定分块、可恢复的任务状态,还要在重复主题较多时控制相似问答。只要某一个文件或分块失败,也不应该让已经做完的内容一起失效。
另一件容易被忽略的事是可解释性。使用者需要知道当前停在哪个步骤、哪些结果待审核、每条问答依据了什么原文,而不是只看到一个脱离实际任务的进度条。
03 / ARCHITECTURE
方案与选型
产品界面和服务接口由 Next.js 承载;账号、配置和历史记录落在 PostgreSQL;Redis 负责短期任务状态;RabbitMQ 把耗时转换交给独立 Worker。通过 Docker Compose,可以在同一份环境配置里启动 Web、Worker、PostgreSQL、Redis 与 RabbitMQ。
代码不把“生成问答”塞进一个大函数,而是分别处理文本提取、文档分块、候选问答、去重、结果解析与导出。外部模型被封装在 OpenAI 兼容接口之后,换服务地址时不用改动页面和审核流程。
SYSTEM_MAP / DOC2ALPACA
从文件到训练数据的处理链路
项目按模块化单体组织:产品界面、接口和任务编排在同一应用内保持一致,耗时的文档处理则交给独立 Worker,避免一次转换拖住整个页面。
- 01
产品与接口层
提供上传、历史记录、配置、审核和导出,并把页面只依赖的状态收敛为稳定接口。
- Next.js App Router
- 上传与鉴权
- 任务状态
- 审核工作台
- 导出入口
- 02
转换与审核层
按内容职责拆分文本提取、分块、候选问答、去重、解析和格式导出,方便对单一环节定位问题。
- textExtractor
- documentChunker
- QA pipeline
- dedupService
- resultParser
- exportService
- 03
异步与状态层
把慢任务、短期进度和长期记录分开保存;Compose 一次编排应用、Worker 和基础服务。
- RabbitMQ Worker
- Redis 进度
- PostgreSQL 历史
- Prisma
- Docker Compose
04 / ENGINEERING_NOTES
几个真正影响体验的细节
转换过程按任务持续回传状态,界面能显示分块、生成数量与当前处理说明。每个阶段保留检查点,发生异常时可以从可恢复位置继续,而不是把整份文档从头再跑一遍。
导入文件会经过类型与结构检查;文件记录与当前账号关联;临时文件在提取后及时清理。用户配置的密钥与生成记录由服务端保存,浏览器不需要拿到完整敏感配置。
审核工作台把候选问答、原文证据、相似度提示和质量维度放到同一屏。导出前能先筛选、接受、待修改或拒绝,这也是截图中“审核工作台”存在的原因。
05 / CURRENT_STATE
当前状态
项目源码已公开,公开说明中列出 PDF、DOCX、TXT、Markdown 与 HTML 的处理能力,以及 Alpaca / ShareGPT 两种导出格式。当前网站展示的是实际产品界面:上传、转换进度、审核工作台和主题设置,而不是重新绘制的概念稿。
目前没有把它包装成不真实的线上 SaaS。仓库提供可运行代码和 Docker Compose 配置;下一步更值得做的是准备脱敏样例和公开演示环境,让初次使用者也能完整体验一次转换到审核的流程。
INTERFACE_LOG
Doc2Alpaca 的真实界面
这里展示开发过程中的实际产品截图,用来说明功能与交互,而不是用概念图代替已经完成的界面。





VERIFIED_METRICS
当前可核对的工程结果
- RUNTIME SERVICES
- 05
- Web / Worker / PostgreSQL / Redis / RabbitMQ
- EXPORT FORMATS
- 02
- Alpaca / ShareGPT
- PUBLIC INPUT TYPES
- 05
- PDF / DOCX / TXT / MD / HTML
- THEME PRESETS
- 06
- 预设色调 + 自定义主色