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

81 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
## 快速开始
```bash
# 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 导出)