🚀 一个智能的模板克隆报告生成系统,能够分析文档模板的结构和样式,并使用知识库内容生成专业报告。
- 📄 结构克隆: 100%复制模板的章节层次、标题和组织结构
- 🎨 样式传输: 分析和模仿写作语调、格式模式和展示风格
- 📊 内容集成: 使用知识库中的相关内容填充模板,保持原有格式
- ⚡ 实时处理: 后台任务队列和进度监控
- 🔍 质量控制: 内容相关性阈值和质量评分系统
- Next.js 14 (App Router)
- React 18 + TypeScript
- Tailwind CSS + shadcn/ui 组件库
- Supabase Auth 用户认证
- Next.js API Routes RESTful API
- Supabase PostgreSQL + 文件存储
- JWT 身份验证
- Row-Level Security 数据安全
- Template Parser - 模板解析和结构分析
- Knowledge Extractor - 知识提取和索引
- Style Cloner - 样式克隆和格式复制
- Report Generator - 智能报告生成
- Node.js 18.17+
- npm 或 yarn
- Supabase 项目(用于数据库和认证)
```bash git clone cd template-cloning-report-generator ```
```bash npm install ```
创建 `.env.local` 文件:
```env
NEXT_PUBLIC_SUPABASE_URL=your-supabase-project-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key SUPABASE_SERVICE_ROLE_KEY=your-supabase-service-role-key
MAX_FILE_SIZE=52428800 SUPPORTED_FORMATS=md,html,docx,pdf,txt
DEFAULT_CONTENT_THRESHOLD=70 MAX_CONCURRENT_JOBS=10 ```
在 Supabase 控制台中运行 `database/schema.sql` 文件来创建所需的表和策略。
```bash npm run dev ```
访问 http://localhost:3000 查看应用。
- 访问首页,点击"Get Started"进行注册
- 使用邮箱和密码创建账户
- 登录后进入仪表板
- 进入"Templates"页面
- 点击"Upload Template"
- 选择支持的文件格式:.md, .html, .docx, .pdf
- 等待处理完成
- 进入"Knowledge Bases"页面
- 点击"Create Knowledge Base"
- 选择类型:文件集合、数据库连接或API端点
- 上传相关文档(文件集合类型)
- 进入"Reports" → "Generate Report"
- 选择模板和知识库
- 调整生成参数
- 启动报告生成
- 在"Reports"页面监控进度
- 查看生成的报告
- 编辑报告内容
- 更新报告状态
- 下载报告文件
- `GET /api/auth/profile` - 获取用户档案
- `GET /api/templates` - 获取模板列表
- `POST /api/templates` - 上传新模板
- `GET /api/knowledge-bases` - 获取知识库列表
- `POST /api/knowledge-bases` - 创建知识库
- `GET /api/knowledge-bases/{id}/documents` - 获取文档列表
- `POST /api/knowledge-bases/{id}/documents` - 上传文档
- `GET /api/reports` - 获取报告列表
- `POST /api/reports` - 创建报告生成任务
- `GET /api/jobs/{id}` - 获取任务状态
- `DELETE /api/jobs/{id}` - 取消任务
- `GET /api/health` - 健康检查
- `users` - 用户信息
- `templates` - 模板存储
- `knowledge_bases` - 知识库配置
- `kb_documents` - 知识库文档
- `generated_reports` - 生成的报告
- `report_generation_jobs` - 生成任务队列
- 启用行级安全(RLS)
- 基于用户ID的访问控制
- JWT令牌验证
- 存储桶访问策略
- 身份验证: Supabase Auth JWT令牌
- 授权: 行级安全策略
- 数据隔离: 用户只能访问自己的数据
- 文件安全: 私有存储桶和访问控制
- API安全: 所有端点都需要身份验证
- 连接 GitHub 仓库到 Vercel
- 配置环境变量
- 自动部署
```dockerfile FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . RUN npm run build EXPOSE 3000 CMD ["npm", "start"] ```
生产环境需要配置:
- `NEXT_PUBLIC_SUPABASE_URL`
- `NEXT_PUBLIC_SUPABASE_ANON_KEY`
- `SUPABASE_SERVICE_ROLE_KEY`
- `MAX_FILE_SIZE`
- `SUPPORTED_FORMATS`
``` src/ ├── app/ # Next.js App Router页面 │ ├── api/ # API路由 │ ├── auth/ # 认证页面 │ ├── dashboard/ # 仪表板页面 │ └── globals.css # 全局样式 ├── components/ # React组件 ├── contexts/ # React Context ├── lib/ # 核心库和工具 ├── types/ # TypeScript类型定义 └── utils/ # 工具函数 ```
```bash npm run dev # 启动开发服务器 npm run build # 构建生产版本 npm run start # 启动生产服务器 npm run lint # 代码检查 ```
- Fork 项目
- 创建功能分支
- 提交更改
- 推送到分支
- 创建 Pull Request
- CPU: 1 core
- 内存: 512MB
- 存储: 1GB
- 网络: 稳定的互联网连接
- CPU: 2+ cores
- 内存: 2GB+
- 存储: 10GB+
- 网络: 高速连接
-
无法连接数据库
- 检查 Supabase URL 和密钥
- 确认数据库表已创建
-
文件上传失败
- 检查文件大小限制
- 确认存储桶配置
-
报告生成卡住
- 检查后台任务处理器
- 查看任务队列状态
```bash NODE_ENV=development npm run dev ```
检查浏览器控制台和服务器日志输出。
MIT License - 详见 LICENSE 文件
- 📧 Email: [email protected]
- 💬 讨论: GitHub Issues
- 📖 文档: /docs 目录
- 多语言支持
- 批量报告生成
- 模板市场
- 高级样式克隆
- API集成扩展
- 移动应用
注意: 这是一个演示系统,请在生产环境中使用真实的 Supabase 项目配置。