init
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# doc-forge — AI 文档模板生成系统
|
||||
|
||||
## 项目概述
|
||||
上传 Word 模板 → AI 自动解析段落(按标题样式切割)→ 用户标注段落配置 → 上传参考文件 → AI 多段落并行生成 → 预览编辑 → 导出 Word(保留原始样式)。
|
||||
|
||||
## 技术栈
|
||||
| 层 | 技术 | 说明 |
|
||||
|----|------|------|
|
||||
| 前端 | Vue 3.4 + TypeScript + Ant Design Vue 4.x + Pinia + Vite 5 | web/ |
|
||||
| 后端 | Python 3.11+ + FastAPI + SQLAlchemy 2.0 async | backend/app/ |
|
||||
| 数据库 | MySQL 8.0(asyncmy 驱动) | docker-compose mysql |
|
||||
| 对象存储 | MinIO | 存模板文件、参考文件、生成文档 |
|
||||
| Word 处理 | python-docx | 解析/导出 |
|
||||
| Excel 处理 | openpyxl | 解析参考文件 |
|
||||
|
||||
## 目录结构
|
||||
```
|
||||
doc-forge/
|
||||
├── web/ 前端
|
||||
│ └── src/
|
||||
│ ├── views/ TemplateList, TemplateEditor, ModelManage, GeneratePage, HistoryPage, PreviewEdit
|
||||
│ ├── components/ ParagraphList, ParagraphConfig, DocPreview, FileUploader, ModelModal, TestModal
|
||||
│ ├── api/ Axios(template, model, generate)
|
||||
│ ├── stores/ Pinia(template, model, document)
|
||||
│ └── router/ 6 条路由
|
||||
├── backend/
|
||||
│ ├── app/
|
||||
│ │ ├── models/ ORM(template, paragraph, ai_model, document, generation_log)
|
||||
│ │ ├── routers/ API(templates, models, generate, export)
|
||||
│ │ ├── schemas/ Pydantic 校验
|
||||
│ │ ├── services/ 业务逻辑(parser, ai_service, generator, exporter, minio_client)
|
||||
│ │ └── main.py
|
||||
│ ├── config.py 配置(MySQL + MinIO + AI)
|
||||
│ └── database.py 异步引擎
|
||||
├── docs/ 项目文档
|
||||
├── docker-compose.yml MySQL + MinIO + backend + web
|
||||
├── init.sql 数据库建表 DDL
|
||||
├── CLAUDE.md
|
||||
└── AGENTS.md
|
||||
```
|
||||
|
||||
## 关键约定
|
||||
|
||||
### 段落解析规则
|
||||
- 段落边界由 Word 标题样式(Heading 1~6)确定
|
||||
- 标题与下一标题之间的正文、表格归属到该标题段落
|
||||
- 表格独立存储为 `is_table=True`,归属于前一个标题
|
||||
|
||||
### AI 输出格式
|
||||
AI 必须返回结构化 JSON:
|
||||
```json
|
||||
{"content": [{"type": "text", "text": "..."}, {"type": "table", "headers": [], "rows": []}]}
|
||||
```
|
||||
|
||||
### 文件存储
|
||||
- 所有文件存 MinIO,不存本地磁盘
|
||||
- bucket 分三类:templates / uploads / outputs
|
||||
- MinIO 开发环境在 docker-compose 中启动
|
||||
|
||||
### AI 模型调用
|
||||
- OpenAI 格式:GPT-4o, DeepSeek-V3, 通义千问
|
||||
- Anthropic 格式:Claude 3.5 Sonnet
|
||||
- 超时 60s,最多重试 3 次,单文档最大并发 5
|
||||
|
||||
### Word 导出
|
||||
- 从 MinIO 拉取原始模板 → 在内存中修改 → 上传回 MinIO
|
||||
- 样式完全保留(字体/颜色/行距/页边距/页眉页脚)
|
||||
Reference in New Issue
Block a user