Commit Graph

6 Commits

Author SHA1 Message Date
zwt13703 5f87f695fe feat: 新版生成流程 - 确认弹窗 + 任务详情页
- 生成弹窗: 展示所有AI块(prompt/模型/备注),支持多文件上传/删除/重传
- 点击生成 → 创建任务 → 提示前往任务历史查看
- 任务详情页: 显示模板名/状态/AI块/提示词/上传文件/下载DOCX+PDF
- 任务历史: 行可点击进入详情,增加详情按钮
- 后端: /tasks/{id}?detail=true 返回含生成点信息的完整详情
- 编辑器: 移除旧进度条+下载按钮,接入新GenerateModal
2026-07-06 21:11:39 +08:00
zwt13703 57cdb01ec8 feat: 生成点表单重构 - 参考文件改为开关 + 备注字段
- 模型新增 need_ref_file(bool) + remark(text) 字段
- 生成点创建表单移除直接上传,改为「需要参考文件」开关 + 备注文本框
- 测试按钮:检测 need_ref → 弹出文件选择 → 上传后提取文本 + 调AI
- 生成任务:检查 ref_file_path,有则提取文本并入 prompt
- 前后端完整联调,TypeScript 零错误
2026-07-06 18:27:30 +08:00
zwt13703 c11ea22e88 fix: 占位符替换 - 新增 selected_text 字段彻底解决位置偏移问题
- 新增 generation_points.selected_text 字段存储用户实际选中的文本
- 生成任务优先使用 selected_text 直改 docx,不再依赖脆弱的位置偏移
- 前端创建生成点时同时传递选中文本内容
- 原始 docx 直改方案完美保留所有样式(加粗/标题/表格)
- 端到端验证: {{ placeholder }} → AI 内容替换成功,样式不变
2026-07-06 18:20:00 +08:00
zwt13703 40b861cfcc fix: 核心 bug 修复 - API Key 加密/解密 + AI 调用 + 数据安全
- schema: 用 @field_serializer 掩码 api_key,不再直接修改 SQLAlchemy 对象
- API: 移除所有 model.api_key='***' 赋值,防止数据库被覆盖
- security: SHA256(SECRET_KEY) 派生合法 Fernet 32 字节密钥
- ai_adapter: CustomAdapter 改用 OpenAI-compatible messages 格式
- ai_adapter: trust_env=False 防止代理干扰,增加详细异常信息
- templates: bleach HTML 净化防止 XSS
- .env.example: CORS_ORIGINS 修复为 JSON 数组格式
- 端到端验证:单点测试 + 异步生成任务均通过
2026-07-06 17:26:32 +08:00
zwt13703 aa84521449 feat: 阶段二 - 核心业务 API 实现
- Pydantic Schemas: AIModel, Template, GenerationPoint, GenerationTask
- 文档处理服务: docx↔HTML (Mammoth), docx→PDF (reportlab)
- AI 模型管理 API: CRUD + 启用/禁用切换 + API Key 加密
- 模板管理 API: 上传/转换HTML/在线编辑保存/下载(docx+pdf)
- 生成点管理 API: CRUD + 参考文件上传 + 批量排序
- 17 个 API 端点注册,后端启动验证通过
2026-07-06 16:18:23 +08:00
zwt13703 b5fa343bf8 feat: 阶段一 - 项目基础设施搭建
- 创建前后端项目目录结构
- docker-compose.yml (Postgres 18.3 + Redis 7)
- 后端:FastAPI + SQLAlchemy 异步引擎 + Alembic 迁移
- 5个ORM模型:AIModel, Template, GenerationPoint, GenerationTask, SystemConfig
- 核心模块:config, database, security(Fernet加密), file_storage
- 前端:Vite + React 18 + TS + Ant Design + React Router
- 侧边栏布局 + 5个占位页面
2026-07-06 16:16:23 +08:00