Files
doc-forge/README.md
T
zwt13703 e558733f05 init
2026-07-02 14:48:05 +08:00

2.4 KiB
Raw Blame History

doc-forge

上传 Word 模板 → AI 逐段落生成 → 导出保留原始样式的 Word 文档。

技术栈

  • 前端: Vue 3.4 + Vite 5 + TypeScript + Ant Design Vue 4.x + Pinia + Axios
  • 后端: Python 3.11+ + FastAPI + SQLAlchemy 2.0 async
  • 数据库: MySQL 8.0asyncmy 驱动)
  • 对象存储: MinIO(模板/参考文件/导出文档)
  • 文档处理: python-docx、openpyxl

快速开始

# 1. 启动基础设施(MySQL + MinIO
docker-compose up -d mysql minio

# 2. 启动后端
cd backend
pip install -r requirements.txt
python main.py
# → http://localhost:8000/docs  Swagger

# 3. 启动前端
cd web
pnpm install
pnpm dev
# → http://localhost:5173

目录结构

doc-forge/
├── web/                    Vue 3 前端
│   └── src/
│       ├── views/          6 个页面
│       ├── components/     6 个通用组件
│       ├── api/            Axios 请求层
│       ├── stores/         Pinia 状态管理
│       └── router/         路由配置
├── backend/                Python FastAPI 后端
│   ├── app/models/         ORM 数据模型
│   ├── app/routers/        API 路由
│   ├── app/schemas/        Pydantic 校验
│   ├── app/services/       业务逻辑层
│   ├── config.py           配置
│   └── database.py         异步数据库引擎
├── docker-compose.yml      MySQL + MinIO + 后端 + 前端
├── init.sql                数据库建表 DDL
└── docs/                   项目文档

核心流程

上传模板 → 解析段落 → 标注配置 → 保存模板
    → 执行生成(上传文件 → AI 并行生成 → SSE 进度)
    → 预览编辑 → 导出 Word(保留原始样式)

关键设计

决策 选择 原因
段落边界 Word 标题样式 Heading 1~6 稳定可靠,用户学习成本低
AI 输出 结构化 JSON 支持文字+表格混合,后端可控解析
导出策略 基于原模板替换内容 样式零损失,不限模板格式
文件存储 MinIO 对象存储 可扩展,不占用本地磁盘
数据库 MySQL 8.0 生产级可靠性
生成方式 多段落并行 asyncio.gather 大幅缩短等待时间

环境要求

  • Python 3.11+
  • Node.js 18+
  • pnpm 8+
  • Docker + docker-composeMySQL + MinIO
  • LibreOffice(可选,用于 PDF 导出)