返回项目
CASE_FILE / doc2alpaca源码已公开

Doc2Alpaca

把文档里的知识,整理成能审、能改、能导出的训练数据。

一个面向微调数据整理的全栈应用:把多格式文档拆成可处理的内容块,生成候选问答,经过人工审核后导出为 Alpaca 或 ShareGPT 数据集。

  • Next.js
  • TypeScript
  • OpenAI-compatible API
  • PostgreSQL
  • Redis
  • RabbitMQ
  • Docker Compose
  • Electron
REAL_INTERFACEWEB / PRODUCT_CAPTURE
Doc2Alpaca 文档上传和转换入口的真实网页截图
上传入口同时区分单文件与批量工作流,并直接标出当前支持的文件类型。
VERIFIED_CASE这是实际项目记录;以下信息来自源码、构建、测试或真机证据。核验日期:2026-09-08

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,避免一次转换拖住整个页面。

  1. 01

    产品与接口层

    提供上传、历史记录、配置、审核和导出,并把页面只依赖的状态收敛为稳定接口。

    • Next.js App Router
    • 上传与鉴权
    • 任务状态
    • 审核工作台
    • 导出入口
  2. 02

    转换与审核层

    按内容职责拆分文本提取、分块、候选问答、去重、解析和格式导出,方便对单一环节定位问题。

    • textExtractor
    • documentChunker
    • QA pipeline
    • dedupService
    • resultParser
    • exportService
  3. 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 配置;下一步更值得做的是准备脱敏样例和公开演示环境,让初次使用者也能完整体验一次转换到审核的流程。

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
预设色调 + 自定义主色