# AIWriter **Repository Path**: preHappymall/aiwriter ## Basic Information - **Project Name**: AIWriter - **Description**: AI写作:一个专注于自然语言生成的文章的应用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 毕设写作工具 基于 **Vue3 + NestJS + SQLite/PostgreSQL + Umo Editor** 的 AI 毕设论文写作平台。 ## 功能概览 | 模块 | 功能 | |------|------| | 我的文档 | 增删改查、复制、自动保存、版本快照 | | 我的模板 | 用户自定义模板 CRUD | | 系统模板 | 3 套内置毕设模板(只读,不可增删改) | | 文稿编辑 | Umo Editor 完整接入,图片上传 | | AI 工具栏 | 选中文本润色、扩写、续写、学术化(预览后应用) | | AI 助手 | 右侧聊天面板,针对当前文档提问 | | AI 设置 | 多模型选择、Token 用量查看、自有 API Key(BYOK) | | 管理后台 | 用户每日 Token 配额管理、模型启用/禁用 | | 导出 Word | HTML → DOCX 服务端转换 | | 文档审查 | AI 审查 + 提示词 CRUD + 查重外链 | ## 快速开始 ### 环境要求 - Node.js >= 18 - npm > 可选:Docker 用于 PostgreSQL 生产部署;开发环境默认使用 SQLite,无需 Docker。 ### 一键启动 ```bash # 1. 安装依赖并初始化数据库 npm run setup # 2. 启动前后端(并发) npm run dev ``` 如需 PostgreSQL,修改 `server/prisma/schema.prisma` 的 provider 为 `postgresql`,更新 `DATABASE_URL` 后执行 `npm run db:migrate`。 - 前端:http://localhost:5173 - 后端 API:http://localhost:5174 - Swagger 文档:http://localhost:5174/api/docs ### 演示账号 | 角色 | 邮箱 | 密码 | |------|------|------| | 学生 | `demo@thesis.com` | `123456` | | 管理员 | `admin@thesis.com` | `123456` | 学生默认每日 Token 上限 300 万;管理员无限制。 ## 项目结构 ``` ├── web/ # Vue3 前端 │ └── src/ │ ├── modules/ │ │ ├── documents/ # 文档列表 │ │ ├── templates/ # 模板管理 │ │ ├── editor/ # Umo 编辑器 + AI │ │ ├── review/ # 文档审查 │ │ ├── ai/ # AI 设置页 │ │ └── admin/ # 管理后台 │ ├── api/ # API 封装 │ └── stores/ # Pinia 状态 ├── server/ # NestJS 后端 │ ├── prisma/ # 数据库 Schema + Seed │ └── src/modules/ │ ├── auth/ # JWT 鉴权 │ ├── document/ # 文档 CRUD │ ├── template/ # 模板 CRUD │ ├── ai/ # 多模型网关 + 配额 │ ├── admin/ # 管理接口 │ ├── review/ # 审查 + 提示词 │ ├── export/ # Word 导出 │ └── upload/ # 图片上传 └── docker-compose.yml # PostgreSQL ``` ## 配置 复制 `.env.example` 为 `server/.env`: ```env AI_MOCK=true # 开发模式使用 Mock AI AI_DEFAULT_DAILY_TOKEN_LIMIT=3000000 # 新用户默认每日 Token 上限 DASHSCOPE_API_KEY="" # 通义千问 DEEPSEEK_API_KEY="" # DeepSeek MOONSHOT_API_KEY="" # Moonshot ZHIPU_API_KEY="" # 智谱 AI ``` 设置 `AI_MOCK=false` 并填入对应厂商 API Key 即可接入真实 AI。未配置 Key 的模型不会出现在用户可选列表中。 ### 支持的系统预设模型 | 模型 | 厂商 | |------|------| | 通义千问 Plus / Turbo | 阿里云 DashScope | | DeepSeek Chat | DeepSeek | | Moonshot v1 8K | 月之暗面 | | 智谱 GLM-4 Flash | 智谱 AI | 用户也可在「AI 设置」中添加自定义模型,自由配置 Base URL、API Key 和模型名称;使用自定义模型时不消耗系统每日配额。 ## 技术栈 - **前端**:Vue 3、Vite、Element Plus、Pinia、Vue Router、@umoteam/editor - **后端**:NestJS、Prisma、SQLite/PostgreSQL、JWT、Swagger - **AI**:多 Provider 网关(OpenAI 兼容接口),Token 计量与配额 - **导出**:html-to-docx ## 开发命令 ```bash npm run dev:web # 仅前端 npm run dev:server # 仅后端 npm run db:migrate # 数据库迁移 npm run db:seed # 填充演示数据 npm run build # 构建 ```