# Undergraduate_broccoli **Repository Path**: LCPSpace/undergraduate_broccoli ## Basic Information - **Project Name**: Undergraduate_broccoli - **Description**: 123123123123 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-05 - **Last Updated**: 2026-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI代码生成器 (AI Code Mother)

Spring Boot Vue Java License Version

🌐 在线预览📦 GitHub📦 Gitee📖 部署文档

一个功能强大的全栈 AI 代码生成平台,基于 Spring Boot 3.5.4 和 Vue 3 构建,集成 GPT、Qwen 等多种 AI 模型,专注于 Vue 3 项目的智能化生成服务。支持 AI 模型动态选择、两阶段代码生成、代码自动验证等先进功能。 ## 🚀 项目概述 AI Code Mother 是一个现代化的 AI 驱动代码生成平台,旨在通过人工智能技术简化和加速 Vue 3 应用开发流程。系统专注于 Vue 3 项目的智能化生成,通过动态模型选择、两阶段代码生成、自动代码验证等先进功能,为开发者提供高效、智能、可靠的代码生成解决方案。 ### ✨ 核心特性 #### AI 智能生成 - **🤖 动态模型选择**: 支持 GPT、Qwen、OpenAI 等 20+ 个 AI 模型,根据任务复杂度智能选择 - **📋 两阶段生成**: 计划生成 → 用户确认 → 代码生成,避免无效生成节省成本 - **✅ 代码自动验证**: 集成 ESLint 代码质量检查,自动生成代码审查报告 - **🎯 Vue 3 专注**: 专为 Vue 3 项目优化,支持 Composition API、TypeScript、Pinia 等现代特性 - **🔄 实时流式输出**: 基于 SSE (Server-Sent Events) 的实时代码生成进度展示 #### 完善的用户体系 - **📧 邮箱认证**: 支持邮箱注册登录,邮件验证码双因素认证,提升账户安全性 - **🎁 积分系统**: 完善的积分获取、消耗、过期机制(已修复 8 个 P0-P3 级别缺陷) - **👥 邀请机制**: 邀请码系统,邀请双方均可获得积分奖励,配套防刷机制 - **📦 版本管理**: 完整的应用版本历史记录、一键回滚功能 #### 企业级运维 - **🚀 一键部署**: 规范的 deployment/ 目录,支持 Ubuntu 服务器一键部署 - **🔄 备份回滚**: 自动备份数据库、应用、配置,支持交互式回滚 - **📊 监控系统**: 集成 Prometheus 指标监控,支持 Grafana 可视化 - **🛡️ 安全加固**: 支持 OpenResty 限流、WAF 防护、日志轮转 #### 云端集成 - **☁️ 腾讯云 COS**: 生成文件自动上传云端,CDN 加速访问 - **🔧 智能工具**: 网页截图、项目下载、代码预览、差异对比等实用功能 - **📱 全栈架构**: Spring Boot 后端 + Vue 3 前端的现代化全栈解决方案 ## 📑 目录 - [技术架构](#-技术架构) - [核心功能](#-核心功能) - [项目结构](#-项目结构) - [环境要求](#-环境要求) - [快速开始](#-快速开始) - [用户指南](#-用户指南) - [开发指南](#-开发指南) - [API文档](#-api文档) - [部署指南](#-部署指南) - [常见问题](#-常见问题) - [贡献指南](#-贡献指南) ## 🛠️ 技术架构 ### 后端技术栈 (Spring Boot) **核心框架** - **Spring Boot 3.5.4**: 基于Java 21的现代化Spring应用框架 - **Spring Web**: RESTful API开发 - **Spring AOP**: 切面编程支持,用于权限校验和日志记录 - **Spring Session**: 分布式会话管理,支持Redis存储 **AI集成** - **LangChain4j 1.1.0**: Java AI 应用开发框架,支持工具调用和流式输出 - **LangGraph4j 1.6.0**: AI 工作流编排引擎,支持复杂任务编排 - **动态模型工厂**: 支持 20+ 个 AI 模型的动态选择和配置 - **GPT-5 Codex**: 高级编码模型,用于复杂代码生成 - **GPT-5 Low**: 基础编码模型,快速响应 - **Qwen Turbo**: 快速分类和简单任务处理 - **其他 OpenAI 兼容模型**: 支持多种第三方模型 - **AI 模型等级系统**: 基础编码、标准编码、高级编码、基础推理、高级推理 5 个等级 - **Reactor**: 响应式编程支持 Server-Sent Events 流式输出 **数据层** - **MyBatis-Flex 1.11.0**: 灵活的MyBatis增强ORM框架 - **MySQL**: 主数据库,存储用户、应用、版本、积分等数据 - **HikariCP**: 高性能数据库连接池 - **雪花算法**: 分布式唯一ID生成策略 **缓存与会话** - **Redis 6.0+**: 会话存储、邮箱验证码缓存 - **Caffeine**: 高性能本地缓存,优化热点数据访问 - **Redisson 3.50.0**: 分布式锁、高级Redis客户端 **监控与运维** - **Spring Boot Actuator**: 应用监控和管理端点 - **Micrometer + Prometheus**: 指标收集和监控 - **Grafana**: 监控数据可视化(可选) - **定时任务**: 积分过期、邀请奖励自动发放 **文档与工具** - **Knife4j 4.4.0**: Swagger UI增强版API文档 - **Hutool 5.8.38**: Java工具类库 - **Lombok 1.18.36**: 代码简化注解 **云服务集成** - **腾讯云COS 5.6.227**: 对象存储服务,用于文件存储和CDN加速 - **Spring Mail**: 邮件发送服务,用于验证码和通知 **Web自动化** - **Selenium 4.33.0**: 网页自动化和截图 - **WebDriverManager 6.1.0**: 浏览器驱动自动管理 ### 前端技术栈 (Vue 3) **核心框架** - **Vue 3.5.17**: 渐进式JavaScript框架,使用Composition API - **TypeScript 5.8.0**: 类型安全的JavaScript超集 - **Vite 7.0.0**: 下一代前端构建工具,极速热重载 **UI与组件** - **Ant Design Vue 4.2.6**: 企业级UI组件库 - **Vue Router 4.5.1**: 官方路由管理器 - **Pinia 3.0.3**: 新一代状态管理库 **HTTP与API** - **Axios 1.11.0**: Promise based HTTP客户端 - **OpenAPI Generator**: 从后端OpenAPI规范自动生成TypeScript客户端 **内容渲染** - **Markdown-it 14.1.0**: Markdown解析和渲染引擎 - **highlight.js 11.11.1**: 语法高亮显示库,支持200+编程语言 **开发工具** - **ESLint**: JavaScript/TypeScript代码检查 - **Prettier**: 代码格式化工具 - **Vue DevTools**: Vue调试工具 - **Vue TSC**: Vue TypeScript类型检查 ### 数据库设计 系统包含 10 个核心数据表: - **user**: 用户信息表,支持邮箱注册、邮箱验证 - **user_points**: 用户积分表,记录累计积分和可用积分 - **points_record**: 积分记录表,记录积分获取和消耗明细(新增 status 字段支持积分状态管理) - **invite_record**: 邀请关系表,记录邀请人、被邀请人及奖励状态 - **sign_in_record**: 签到记录表,记录用户签到历史 - **app**: 应用信息表,存储用户创建的应用配置(新增 modelKey 字段支持动态模型选择) - **app_version**: 应用版本表,记录每次应用修改的版本历史(新增 codeContentUrl 字段) - **chat_history**: 聊天记录表,存储用户与 AI 的对话历史 - **email_verification_code**: 邮箱验证码表,临时存储验证码用于注册登录 - **ai_model_config**: AI 模型配置表,存储所有可用 AI 模型的配置信息(🆕 v1.1.0) **技术特性** - 雪花算法ID生成策略 - 软删除支持(逻辑删除) - 时间戳自动管理 - 索引优化查询性能 ## 🎯 核心功能 ### 1. AI 代码生成引擎 **🆕 动态模型选择系统** - **20+ AI 模型支持**: GPT、Qwen、OpenAI 兼容模型等 - **4 级模型分类**: SIMPLE(简单)、MEDIUM(中等)、HARD(困难)、EXPERT(专家) - **智能模型推荐**: 根据项目复杂度自动推荐合适的模型 - **质量系数显示**: 前端显示模型质量系数(替代倍率),帮助用户选择 - **实时成本预估**: 根据选择的模型预估积分消耗 **🆕 两阶段代码生成流程** 1. **阶段一:计划生成** - AI 分析需求,生成详细的开发计划 - 包含文件列表、功能模块、技术选型等 - 用户可预览和修改计划 2. **阶段二:代码生成** - 用户确认计划后开始生成代码 - 支持基于计划的增量生成 - 避免无效生成,节省 Token 成本 **🆕 代码自动验证** - **ESLint 集成**: 自动执行 ESLint 代码质量检查 - **Vue 项目结构验证**: 验证项目结构是否符合 Vue 3 规范 - **自动生成审查报告**: 包含代码质量评分、错误列表、修复建议 - **构建前验证**: 在项目构建前发现潜在问题 **生成类型支持** - **Vue 3 项目生成**: 专注于 Vue 3 完整前端应用(已移除 HTML 和多文件项目支持) - 支持 Composition API、TypeScript、Pinia - 自动配置路由、状态管理、UI 组件库 - 优化的项目结构和代码组织 **实时流式输出** - 基于 Server-Sent Events (SSE) 的实时推送 - 实时展示 AI 思考过程和代码生成进度 - 支持生成过程中的取消操作 - 断线自动重连机制 - 🆕 优化 ChatMemory 管理,避免上下文过长(性能提升 50%+) **代码优化** - 自动代码格式化 - 语法检查和修正 - 最佳实践建议 - 性能优化提示 - 🆕 重复写入检测和警告 ### 2. 版本管理系统 **版本历史记录** - 自动记录每次应用修改的版本快照 - 保存完整的应用配置、生成内容、文件列表 - 记录版本创建时间和操作人 - 支持版本列表分页查询 **版本回滚功能** - 一键回滚到任意历史版本 - 回滚操作会创建新版本记录 - 保持完整的版本变更链 - 仅应用创建者可执行回滚 **权限控制** - 仅应用创建者可查看版本历史 - 仅应用创建者可执行版本回滚 - 版本数据逻辑删除,可恢复 ### 3. 积分系统(已修复 8 个 P0-P3 级别缺陷) **积分获取机制** - **注册奖励**: 新用户注册赠送初始积分 - **邀请奖励**: 成功邀请好友注册,邀请双方均获得积分 - **每日签到**: 每日首次登录获得签到积分(可扩展) **积分消耗场景** - **AI 代码生成**: 根据选择的 AI 模型和实际 Token 消耗量计费 - 不同模型有不同的积分消耗率(每千 Token 消耗的积分数) - 质量系数会影响最终积分消耗(1.0-3.5倍) - 典型 Vue 3 项目生成消耗: 50-200 积分 - **项目部署**: 完全免费,不消耗积分 - **代码下载**: 完全免费,不消耗积分 **🆕 积分状态管理** - **PENDING**: 待处理 - 积分操作已创建但未确认 - **COMPLETED**: 已完成 - 积分成功增加或扣除 - **FAILED**: 已失败 - 积分操作失败,需要回滚 - **REFUNDED**: 已退款 - 失败任务的积分已退还 **🆕 积分一致性保障** - **一致性检查器**: 定期检查积分记录与用户积分余额是否一致 - **自动修复机制**: 发现不一致时自动修复或报警 - **防重复扣费**: 使用分布式锁防止并发扣费 - **事务保障**: 积分操作使用数据库事务确保原子性 **积分管理** - **累计积分**: 记录用户历史获得的总积分 - **可用积分**: 当前可使用的积分余额 - **冻结积分**: 预留字段,支持积分冻结功能 - **积分明细**: 完整的积分获取和消耗记录 **积分过期机制** - 定时任务自动检查过期积分 - 支持设置积分有效期(如 180 天) - 过期积分自动扣除 - 过期通知提醒(可扩展) **🆕 积分监控优化** - Prometheus 指标收集(已修复跨线程问题) - 积分获取/消耗趋势统计 - 用户积分分布分析 - 异常积分变动预警 - Token 使用量监控 ### 4. 邀请机制 **邀请码系统** - 每个用户拥有唯一邀请码 - 邀请码基于用户ID生成,永久有效 - 支持邀请链接一键分享 - 邀请码区分大小写 **邀请奖励** - **邀请人奖励**: 成功邀请好友注册,获得积分奖励 - **被邀请人奖励**: 通过邀请码注册,同样获得积分奖励 - **双向激励**: 促进用户主动分享和推广 - **自动发放**: 定时任务自动检测并发放奖励 **防刷机制** - **IP检测**: 记录注册IP,同一IP多次注册预警 - **设备ID检测**: 通过浏览器指纹识别设备 - **时间窗口**: 短时间内大量邀请触发人工审核 - **人工审核**: 可疑邀请关系需人工确认后发放奖励 **邀请状态管理** - **PENDING**: 待确认 - 邀请链接已创建 - **REGISTERED**: 已注册 - 被邀请人完成注册 - **REWARDED**: 已奖励 - 积分已成功发放 - **状态流转**: 自动化状态更新和通知 **邀请统计** - 邀请人数统计 - 成功注册人数 - 奖励积分总额 - 邀请转化率分析 ### 5. 用户认证系统 **邮箱注册登录** - 邮箱验证码注册 - 邮箱验证码登录 - 邮箱唯一性验证 - 密码MD5加密(加盐: Join2049) **会话管理** - 基于Redis的分布式会话 - 30天会话有效期 - 自动登录状态维护 - 安全退出登录 **权限控制** - 基于角色的访问控制(user/admin) - `@AuthCheck`注解权限校验 - 仅创建者可修改应用 - 管理员拥有全部权限 ### 6. 项目管理系统 **应用CRUD** - 创建新应用(配置名称、描述、生成类型) - 查询应用列表(分页、搜索、过滤) - 更新应用配置 - 删除应用(逻辑删除) **生成类型** - **Vue 3 项目生成**: 专注于 Vue 3 完整前端应用(v1.1.0+ 已聚焦 Vue 项目) - 支持 Composition API、TypeScript、Pinia - 自动配置路由、状态管理、UI 组件库 - 优化的项目结构和代码组织 **应用部署** - 生成的项目自动上传到腾讯云COS - 生成唯一的部署访问链接 - 支持自定义域名访问 - CDN加速文件访问 **批量操作** - 批量删除应用 - 批量导出应用配置 - 批量部署项目 ### 7. 实时通信系统 **SSE流式传输** - 基于Server-Sent Events的单向推送 - 实时显示AI代码生成进度 - 自动处理连接中断和重连 - 支持多客户端同时接收 **聊天历史** - 完整的AI对话历史记录 - 支持历史会话查询 - 上下文关联显示 - 聊天记录导出(可扩展) **实时通知** - 积分变动实时通知 - 邀请成功实时通知 - 系统消息推送 ### 8. 云存储集成 **腾讯云COS** - 生成文件自动上传云端 - 支持大文件分片上传 - 自动生成访问URL - CDN加速文件分发 **文件管理** - 文件列表查看 - 文件下载 - 文件删除 - 存储空间统计 **截图功能** - 基于Selenium的网页截图 - 支持全页面截图 - 自动压缩和优化 - 截图结果云端存储 ### 9. 监控与运维 **Prometheus指标** - HTTP请求统计 - AI模型调用次数 - 数据库查询性能 - 缓存命中率 - 积分系统指标 - 邀请系统指标 **健康检查** - 应用健康状态检查 - 数据库连接检查 - Redis连接检查 - 外部API可用性检查 **日志管理** - 结构化日志记录 - 按级别分类(DEBUG/INFO/WARN/ERROR) - 异常堆栈追踪 - 请求日志记录 ## 📦 项目结构 ``` ai-code-mother/ ├── src/main/java/com/spring/aicodemother/ # 后端源码 │ ├── ai/ # AI 模型集成和服务 │ │ ├── AiManager.java # AI 模型管理器 │ │ ├── DynamicAiModelFactory.java # 🆕 动态模型工厂 │ │ ├── AiCodeGeneratorServiceFactory.java # 🆕 AI 服务工厂 │ │ ├── MessageStreamHandler.java # 流式消息处理 │ │ ├── model/ # AI 请求响应模型 │ │ └── tools/ # 🆕 AI 工具调用 │ │ ├── CodeValidationTool.java # 🆕 代码验证工具 │ │ └── VueProjectStructureValidationTool.java # 🆕 结构验证工具 │ ├── controller/ # REST API 控制器 │ │ ├── AppController.java # 应用管理 │ │ ├── AppVersionController.java # 版本管理 │ │ ├── UserController.java # 用户管理 │ │ ├── PointsController.java # 积分管理 │ │ ├── InviteController.java # 邀请管理 │ │ ├── AiModelController.java # 🆕 AI 模型管理 │ │ └── HealthController.java # 健康检查 │ ├── service/ # 业务逻辑层 │ │ ├── AppService.java # 应用服务 │ │ ├── AppVersionService.java # 版本服务 │ │ ├── UserService.java # 用户服务 │ │ ├── UserPointsService.java # 积分服务 │ │ ├── PointsRecordService.java # 积分记录服务 │ │ ├── InviteRecordService.java # 邀请服务 │ │ ├── ChatService.java # 聊天服务 │ │ ├── AiModelConfigService.java # 🆕 AI 模型配置服务 │ │ ├── AiPlanningService.java # 🆕 AI 计划生成服务 │ │ ├── PlanCacheService.java # 🆕 计划缓存服务 │ │ └── GenerationValidationService.java # 🆕 生成验证服务 │ ├── mapper/ # 数据访问层 │ │ └── *.java # MyBatis-Flex Mapper │ ├── model/ # 数据模型 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ ├── vo/ # 视图对象 │ │ └── enums/ # 枚举类型 │ ├── core/ # 核心业务逻辑 │ │ ├── CodeGenerator.java # 代码生成核心 │ │ ├── FileParser.java # 文件解析器 │ │ └── FileSaver.java # 文件保存器 │ ├── config/ # 配置类 │ │ ├── CorsConfig.java # 跨域配置 │ │ ├── RedisConfig.java # Redis配置 │ │ └── CosClientConfig.java # COS配置 │ ├── utils/ # 工具类 │ │ └── ScreenshotUtils.java # 截图工具 │ ├── manager/ # 第三方服务管理 │ │ └── CosManager.java # COS管理器 │ ├── schedule/ # 定时任务 │ │ ├── PointsExpireScheduler.java # 积分过期任务 │ │ ├── PointsConsistencyChecker.java # 🆕 积分一致性检查 │ │ └── InviteRewardScheduler.java # 邀请奖励任务 │ ├── monitor/ # 监控指标 │ │ ├── PointsMetricsCollector.java # 积分指标收集 │ │ ├── AiModelMetricsCollector.java # 🆕 AI 模型监控 │ │ ├── MonitorContext.java # 🆕 监控上下文 │ │ └── MonitorContextHolder.java # 🆕 上下文持有者(修复跨线程问题) │ ├── exception/ # 异常处理 │ │ ├── GlobalExceptionHandler.java # 全局异常处理器 │ │ ├── BusinessException.java # 业务异常 │ │ └── ErrorCode.java # 错误码定义 │ ├── common/ # 公共类 │ │ ├── BaseResponse.java # 统一响应格式 │ │ └── ResultUtils.java # 响应工具类 │ └── annotation/ # 自定义注解 │ └── AuthCheck.java # 权限校验注解 │ ├── src/main/resources/ # 资源文件 │ ├── application.yml # 应用配置 │ ├── application-dev.yml # 开发环境配置 │ ├── application-prod.yml # 生产环境配置 │ └── prompt/ # AI提示词模板 │ ├── html_generator.txt # HTML生成提示词 │ ├── multifile_generator.txt # 多文件生成提示词 │ └── vue_generator.txt # Vue生成提示词 │ ├── ai-code-mother-frontend/ # 前端源码 │ ├── src/ │ │ ├── main.ts # 应用入口 │ │ ├── App.vue # 根组件 │ │ ├── request.ts # Axios配置 │ │ ├── layouts/ # 布局组件 │ │ │ └── BasicLayout.vue # 基础布局 │ │ ├── components/ # 可复用组件 │ │ │ ├── GlobalHeader.vue # 全局头部 │ │ │ ├── GlobalFooter.vue # 全局底部 │ │ │ ├── AiModelSelector.vue # 🆕 AI 模型选择器(544 行) │ │ │ ├── DeployingModal.vue # 🆕 部署中弹窗 │ │ │ ├── DeploySuccessModal.vue # 部署成功弹窗 │ │ │ ├── PreviewLoading.vue # 🆕 预览加载组件 │ │ │ ├── DiffViewer.vue # 🆕 差异查看器 │ │ │ ├── CodeHighlight.vue # 代码高亮组件 │ │ │ └── MarkdownRenderer.vue # Markdown 渲染器 │ │ ├── pages/ # 页面组件 │ │ │ ├── HomePage.vue # 首页 │ │ │ ├── app/ # 应用管理页面 │ │ │ │ ├── AppChatPage.vue # 🆕 应用聊天页(重构为模块化) │ │ │ │ ├── components/ # 🆕 应用组件 │ │ │ │ │ ├── AppHeaderBar.vue # 应用头部 │ │ │ │ │ ├── ChatPanel.vue # 聊天面板 │ │ │ │ │ └── CodePreviewPanel.vue # 代码预览面板 │ │ │ │ ├── composables/ # 🆕 组合式函数 │ │ │ │ │ ├── useAppDeployment.ts # 部署逻辑 │ │ │ │ │ ├── useAppInfo.ts # 应用信息 │ │ │ │ │ ├── useChatMessages.ts # 消息管理 │ │ │ │ │ ├── useCodeGeneration.ts # 代码生成(605 行) │ │ │ │ │ ├── useVersionManagement.ts # 版本管理 │ │ │ │ │ └── useVisualEditor.ts # 可视化编辑 │ │ │ │ └── utils/ # 工具函数 │ │ │ │ └── contentFilters.ts # 🆕 内容过滤器 │ │ │ ├── user/ # 用户相关页面 │ │ │ │ ├── LoginPage.vue # 登录页 │ │ │ │ ├── RegisterPage.vue # 注册页 │ │ │ │ └── UserManagePage.vue # 用户管理 │ │ │ ├── points/ # 积分相关页面 │ │ │ │ ├── PointsPage.vue # 积分中心 │ │ │ │ └── InvitePage.vue # 邀请页面 │ │ │ └── docs/ # 文档页面 │ │ │ ├── QuickStartDoc.vue # 快速开始 │ │ │ ├── APIDoc.vue # API 文档 │ │ │ ├── FAQDoc.vue # 常见问题 │ │ │ ├── features/ # 功能文档 │ │ │ │ ├── AIGenerationDoc.vue # AI 生成文档 │ │ │ │ └── PointsSystemDoc.vue # 积分系统文档 │ │ │ └── tutorial/ # 教程目录 │ │ ├── router/ # 路由配置 │ │ │ └── index.ts # 路由定义 │ │ ├── stores/ # Pinia 状态管理 │ │ │ ├── user.ts # 用户状态 │ │ │ └── app.ts # 应用状态 │ │ ├── api/ # API 客户端(自动生成) │ │ │ ├── aImoxingpeizhi.ts # 🆕 AI 模型配置 API │ │ │ └── appController.ts # 应用控制器 API │ │ ├── assets/ # 静态资源 │ │ │ ├── Deploy.svg # 🆕 部署图标 │ │ │ ├── Online search.svg # 🆕 在线搜索图标 │ │ │ ├── ToolsCall.svg # 🆕 工具调用图标 │ │ │ ├── refresh.svg # 🆕 刷新图标 │ │ │ └── (共 18 个 SVG 图标) # Deploy、ToolsCall、thinking 等 │ │ └── styles/ # 🆕 样式文件 │ │ ├── lovable-theme.css # Lovable 主题 │ │ └── lovable-theme-override.css # 主题覆盖 │ ├── public/ # 公共资源 │ ├── .env.development # 开发环境变量 │ ├── .env.production # 生产环境变量 │ └── package.json # 依赖配置 │ ├── deployment/ # 🆕 部署包目录 │ ├── backend/ # 后端 JAR 包 │ ├── frontend/ # 前端构建产物 │ ├── config/ # 配置文件 │ │ ├── nginx.conf # Nginx 配置 │ │ ├── openresty.conf # OpenResty 配置 │ │ ├── aicodehub.service # Systemd 服务 │ │ └── logrotate-aicodehub # 日志轮转 │ ├── scripts/ # 部署脚本 │ │ ├── deploy.sh # 一键部署 │ │ ├── check_env.sh # 环境检查 │ │ ├── backup.sh # 备份脚本 │ │ ├── rollback.sh # 回滚脚本 │ │ └── service_manager.sh # 服务管理 │ ├── sql/ # 数据库迁移脚本 │ ├── docs/ # 部署文档 │ ├── .env.prod.example # 环境变量模板 │ └── README.md # 部署说明 ├── sql/ # 数据库脚本 │ ├── create_table.sql # 建表脚本 │ ├── add_24_models.sql # 🆕 新增 24 个模型 │ ├── fix_model_config_pricing_v2.sql # 🆕 修复模型定价 │ └── v1.1.0_ai_model_tier_system.sql # 🆕 模型等级系统 ├── tmp/ # 临时文件目录 │ ├── code_output/ # 生成代码输出 │ └── screenshots/ # 截图输出 ├── tasks/ # 🆕 任务和计划 │ └── todo.md # 任务清单 ├── prometheus.yml # Prometheus 配置 ├── pom.xml # Maven 配置 ├── mvnw / mvnw.cmd # Maven Wrapper └── README.md # 项目说明文档 ``` ## 🔧 环境要求 ### 必需环境 | 组件 | 版本要求 | 说明 | |------|---------|------| | **Java** | 21+ | Spring Boot 3.5.4运行要求 | | **Node.js** | 18+ | 前端开发和构建环境 | | **MySQL** | 8.0+ | 主数据库 | | **Redis** | 6.0+ | 会话存储和缓存 | | **Chrome/Chromium** | 最新版 | Selenium截图功能依赖 | ### 可选组件 | 组件 | 用途 | |------|------| | **Docker** | 容器化部署 | | **Nginx** | 反向代理和静态文件服务 | | **Prometheus** | 指标收集和监控 | | **Grafana** | 监控数据可视化 | ### 开发工具推荐 - **IDE**: IntelliJ IDEA 2023+ / VS Code - **API测试**: Postman / Apifox - **数据库工具**: Navicat / DataGrip - **Git客户端**: SourceTree / GitKraken ## 🚀 快速开始 ### 1. 环境准备 ```bash # 检查Java版本 java -version # 需要Java 21 # 检查Node.js版本 node -version # 需要18.0+ # 启动MySQL服务 mysql -u root -p CREATE DATABASE ai_code_mother CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 启动Redis服务 redis-server ``` ### 2. 数据库初始化 ```bash # 执行建表脚本 mysql -u root -p ai_code_mother < sql/create_table.sql ``` ### 3. 后端配置和启动 ```bash # 克隆项目 git clone [repository-url] cd ai-code-mother ``` #### 3.1 完整配置文件 (src/main/resources/application-dev.yml) ```yaml spring: # 应用名称 application: name: ai-code-mother-backend # 数据库配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ai_code_mother?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root # 修改为你的MySQL用户名 password: your_password # 修改为你的MySQL密码 # HikariCP 连接池配置(生产环境建议) hikari: maximum-pool-size: 20 # 最大连接数 minimum-idle: 5 # 最小空闲连接数 connection-timeout: 30000 # 连接超时时间(毫秒) idle-timeout: 600000 # 空闲超时时间(毫秒) max-lifetime: 1800000 # 连接最大生命周期(毫秒) # Redis 配置 data: redis: host: 127.0.0.1 # Redis服务器地址 port: 6379 # Redis端口 password: # Redis密码(如无密码留空) database: 0 # Redis数据库索引(0-15) ttl: 3600 # 缓存存活时间(秒) # Lettuce 连接池配置(生产环境建议) lettuce: pool: max-active: 8 # 最大活跃连接数 max-idle: 8 # 最大空闲连接数 min-idle: 2 # 最小空闲连接数 max-wait: -1ms # 最大等待时间 # Session 配置 session: store-type: redis # 使用Redis存储Session timeout: 2592000 # Session过期时间(秒,30天) # 邮件服务配置 mail: host: smtp.qq.com # SMTP服务器地址(示例:QQ邮箱) port: 587 # SMTP端口(587为TLS加密端口) username: your-email@qq.com # 发件邮箱地址 password: your-smtp-password # SMTP密码或授权码 protocol: smtp default-encoding: UTF-8 properties: mail: smtp: auth: true # 启用SMTP认证 starttls: enable: true # 启用TLS加密 required: true ssl: trust: smtp.qq.com # 信任的SMTP服务器 # 其他常用邮箱配置示例: # Gmail: smtp.gmail.com:587 # 163邮箱: smtp.163.com:465 (SSL) # 阿里云邮箱: smtp.aliyun.com:465 # 激活的配置文件 profiles: active: dev # 开发环境使用dev # 服务器配置 server: port: 8123 # 后端服务端口 servlet: context-path: /api # API上下文路径 session: cookie: max-age: 2592000 # Cookie过期时间(秒,30天) http-only: true # 仅HTTP访问,防止XSS攻击 secure: false # 开发环境使用HTTP(生产环境改为true) # AI 模型配置(核心配置) langchain4j: open-ai: # 推理AI模型配置(用于复杂的代码生成任务) reasoning-streaming-chat-model: base-url: https://204992.xyz/v1 # OpenAI兼容API地址 api-key: sk-your-api-key-here # 你的API密钥 model-name: gpt-5-codex-medium # 高级编码模型 max-tokens: 4000 # 最大生成Token数 temperature: 0.7 # 生成温度(0-2,越高越随机) timeout: 300s # 请求超时时间(5分钟) log-requests: true # 记录请求日志(开发环境) log-responses: true # 记录响应日志(开发环境) # 路由AI模型配置(用于简单的分类和路由任务) routing-chat-model: base-url: https://204992.xyz/v1 api-key: sk-your-api-key-here model-name: gpt-5-low # 基础编码模型(快速响应) max-tokens: 50 # 路由任务只需少量Token temperature: 0.3 # 较低温度确保稳定性 timeout: 30s log-requests: true log-responses: true # 流式聊天模型配置(用于动态模型选择) streaming-chat-model: base-url: https://204992.xyz/v1 api-key: sk-your-api-key-here model-name: gpt-5-low # 默认流式模型 max-tokens: 8192 # 支持长文本生成 temperature: 0.7 timeout: 300s log-requests: true log-responses: true # 腾讯云 COS 对象存储配置(用于文件存储和部署) cos: client: host: your-custom-domain.com # 自定义域名(可选) secretId: your-secret-id # 腾讯云SecretId secretKey: your-secret-key # 腾讯云SecretKey region: ap-shanghai # COS地域(ap-beijing/ap-shanghai/ap-guangzhou等) bucket: your-bucket-name # 存储桶名称 # 获取方式:登录腾讯云控制台 > 访问管理 > API密钥管理 # Pexels 图片搜索配置(可选功能) pexels: api-key: your-pexels-api-key # 获取方式:https://www.pexels.com/api/ # Pixabay 插画搜索配置(可选功能) pixabay: api-key: your-pixabay-api-key # 获取方式:https://pixabay.com/api/docs/ # 阿里云 DashScope 配置(可选功能) dashscope: api-key: your-dashscope-api-key image-model: wan2.2-t2i-flash # 获取方式:https://dashscope.console.aliyun.com/ # Knife4j API文档配置 knife4j: enable: true # 启用API文档 setting: language: zh_cn # 中文界面 # SpringDoc OpenAPI配置 springdoc: group-configs: - group: 'default' packages-to-scan: com.spring.aicodemother.controller # 监控端点配置 management: endpoints: web: exposure: include: health,info,prometheus # 暴露的端点 endpoint: health: show-details: always # 显示详细健康信息 # 日志配置(可选) logging: level: root: INFO com.spring.aicodemother: DEBUG # 开发环境使用DEBUG级别 file: name: logs/application.log # 日志文件路径 max-size: 100MB # 单个日志文件最大大小 max-history: 30 # 保留30天的日志 ``` #### 3.2 环境变量配置(推荐用于敏感信息) 作为application.yml的替代方案,可以使用环境变量: ```bash # 数据库配置 export DB_HOST=localhost export DB_PORT=3306 export DB_NAME=ai_code_mother export DB_USERNAME=root export DB_PASSWORD=your_password # Redis配置 export REDIS_HOST=127.0.0.1 export REDIS_PORT=6379 export REDIS_PASSWORD= # AI API配置 export OPENAI_API_BASE_URL=https://204992.xyz/v1 export OPENAI_API_KEY=sk-your-api-key-here export OPENAI_MODEL_REASONING=gpt-5-codex-medium export OPENAI_MODEL_ROUTING=gpt-5-low # 邮件配置 export MAIL_HOST=smtp.qq.com export MAIL_PORT=587 export MAIL_USERNAME=your-email@qq.com export MAIL_PASSWORD=your-smtp-password # COS配置 export COS_SECRET_ID=your-secret-id export COS_SECRET_KEY=your-secret-key export COS_REGION=ap-shanghai export COS_BUCKET=your-bucket-name ``` #### 3.3 启动应用 ```bash # 编译项目 ./mvnw clean compile # Linux/Mac mvnw.cmd clean compile # Windows # 运行测试(可选) ./mvnw test # Linux/Mac mvnw.cmd test # Windows # 启动应用 ./mvnw spring-boot:run # Linux/Mac mvnw.cmd spring-boot:run # Windows # 或者打包后运行 ./mvnw clean package -DskipTests java -jar target/ai-code-mother-0.0.1-SNAPSHOT.jar ``` ### 4. 前端配置和启动 ```bash # 进入前端目录 cd ai-code-mother-frontend ``` #### 4.1 环境变量配置 创建环境配置文件: **开发环境配置 (.env.development)** ```bash # API基础URL VITE_API_BASE_URL=http://localhost:8123/api # 应用标题 VITE_APP_TITLE=AI Code Mother # 环境标识 VITE_ENV=development # 是否启用调试模式 VITE_DEBUG=true # API超时时间(毫秒) VITE_API_TIMEOUT=60000 ``` **生产环境配置 (.env.production)** ```bash # API基础URL(修改为你的生产环境地址) VITE_API_BASE_URL=https://your-domain.com/api # 应用标题 VITE_APP_TITLE=AI Code Mother # 环境标识 VITE_ENV=production # 是否启用调试模式 VITE_DEBUG=false # API超时时间(毫秒) VITE_API_TIMEOUT=60000 ``` #### 4.2 安装依赖和启动 ```bash # 安装依赖 npm install # 或使用yarn yarn install # 或使用pnpm(推荐,更快) pnpm install # 生成API客户端(需要后端服务先启动) npm run openapi2ts # 启动开发服务器 npm run dev # 构建生产版本 npm run build # 预览生产构建 npm run preview # 类型检查 npm run type-check # 代码检查 npm run lint # 代码格式化 npm run format ``` #### 4.3 常见配置说明 **package.json 关键配置** ```json { "scripts": { "dev": "vite", // 启动开发服务器 "build": "vite build", // 构建生产版本 "preview": "vite preview", // 预览生产构建 "openapi2ts": "openapi-typescript http://localhost:8123/api/v3/api-docs -o src/api/openapi.d.ts", // 生成API类型 "type-check": "vue-tsc --noEmit", // TypeScript类型检查 "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix", // 代码检查 "format": "prettier --write src/" // 代码格式化 } } ``` **vite.config.ts 关键配置** ```typescript export default defineConfig({ server: { port: 5173, // 开发服务器端口 proxy: { '/api': { // API代理配置 target: 'http://localhost:8123', changeOrigin: true, // rewrite: (path) => path.replace(/^\/api/, '') } } }, build: { outDir: 'dist', // 构建输出目录 sourcemap: false, // 生产环境不生成sourcemap minify: 'terser', // 使用terser压缩 chunkSizeWarningLimit: 1500 // chunk大小警告阈值(KB) } }) ``` ### 5. 访问应用 #### 5.1 应用访问地址 | 服务 | 地址 | 说明 | |------|------|------| | **前端应用** | http://localhost:5173 | Vue 3 用户界面 | | **后端API** | http://localhost:8123/api | REST API 服务 | | **API文档** | http://localhost:8123/api/doc.html | Knife4j 交互式 API 文档 | | **OpenAPI规范** | http://localhost:8123/api/v3/api-docs | OpenAPI 3.0 JSON 规范 | | **健康检查** | http://localhost:8123/api/health | 应用健康状态 | | **Prometheus指标** | http://localhost:8123/api/actuator/prometheus | 监控指标端点 | | **Actuator端点** | http://localhost:8123/api/actuator | Spring Boot Actuator | #### 5.2 首次使用步骤 1. **访问前端应用**: 打开浏览器访问 http://localhost:5173 2. **注册账户**: - 点击"注册"按钮 - 输入邮箱地址 - 点击"发送验证码"(需要配置好邮件服务) - 输入收到的6位验证码 - 设置密码和用户名 - 可选:输入邀请码获得额外积分 - 点击"注册"完成账户创建 3. **登录系统**: - 输入注册的邮箱 - 点击"发送验证码" - 输入验证码登录 4. **创建第一个应用**: - 进入"应用管理"页面 - 点击"创建应用" - 填写应用名称和描述 - 选择生成类型(推荐:Vue 3 项目) - 点击创建 5. **生成代码**: - 在应用列表中点击"生成代码" - 输入详细的需求描述(参考推荐测试提示词) - 选择合适的 AI 模型 - 等待 AI 生成代码 - 查看生成结果 6. **部署项目**: - 点击"部署"按钮 - 等待项目构建和上传 - 获取在线预览链接 #### 5.3 配置验证检查 启动应用后,建议进行以下验证: ```bash # 1. 检查后端健康状态 curl http://localhost:8123/api/health # 预期输出: {"status":"UP"} # 2. 检查数据库连接 # 访问 http://localhost:8123/api/actuator/health # 查看 db.status 应为 UP # 3. 检查Redis连接 # 查看 redis.status 应为 UP # 4. 测试前端API连接 # 打开浏览器访问 http://localhost:5173 # 打开开发者工具查看Network请求是否正常 # 5. 查看API文档 # 访问 http://localhost:8123/api/doc.html # 应能看到完整的API接口列表 ``` #### 5.4 常见启动问题排查 **问题1: 后端启动失败 - 数据库连接错误** ```bash # 检查MySQL服务状态 # Windows net start mysql # Linux/Mac sudo systemctl status mysql # 或 brew services list | grep mysql # 验证数据库存在 mysql -u root -p SHOW DATABASES; # 应能看到 ai_code_mother # 检查用户名密码是否正确 mysql -u your_username -p your_password ai_code_mother ``` **问题2: 后端启动失败 - Redis连接错误** ```bash # 检查Redis服务状态 # Windows redis-server # Linux sudo systemctl status redis # 或 ps aux | grep redis # Mac brew services list | grep redis # 测试Redis连接 redis-cli ping # 应返回 PONG ``` **问题3: 前端API调用失败** ```bash # 检查后端是否启动 curl http://localhost:8123/api/health # 检查端口是否被占用 # Windows netstat -ano | findstr 8123 # Linux/Mac lsof -i :8123 # 清除浏览器缓存并重试 # Chrome: Ctrl+Shift+Delete ``` **问题4: AI模型调用失败** ```bash # 检查API密钥配置 # 查看 application.yml 中的 langchain4j.open-ai.*.api-key # 测试API连接 curl -X POST https://204992.xyz/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-your-api-key-here" \ -d '{ "model": "gpt-5-low", "messages": [{"role": "user", "content": "Hello"}] }' # 检查后端日志 tail -f logs/application.log | grep -i "error" ``` **问题5: 邮件验证码发送失败** ```bash # 检查邮件配置 # 查看 application.yml 中的 spring.mail 配置 # 常见问题: # 1. QQ邮箱需要使用授权码而非密码 # 2. Gmail需要开启"允许不够安全的应用" # 3. 163邮箱需要开启SMTP服务 # 查看后端日志确认错误详情 tail -f logs/application.log | grep -i "mail" ``` #### 5.5 开发环境推荐配置 **最小配置要求**: - CPU: 双核 2.0 GHz+ - 内存: 4 GB RAM - 磁盘: 10 GB 可用空间 **推荐配置**: - CPU: 四核 2.5 GHz+ - 内存: 8 GB RAM - 磁盘: 20 GB 可用空间(SSD 更佳) **网络要求**: - 可访问 OpenAI 兼容 API(或配置代理) - 可访问腾讯云 COS(如需文件存储功能) - 可访问邮件 SMTP 服务器 ## 📖 用户指南 ### 注册与登录 **1. 邮箱注册** 1. 访问注册页面 2. 输入邮箱地址 3. 点击"发送验证码",系统将发送6位数字验证码到邮箱 4. 输入验证码、设置密码、填写用户名 5. 可选:输入邀请码获得额外积分奖励 6. 点击注册,系统自动创建账户并赠送初始积分 **2. 邮箱登录** 1. 访问登录页面 2. 输入注册的邮箱地址 3. 点击"发送验证码" 4. 输入收到的验证码 5. 点击登录即可 **3. 会话管理** - 登录状态保持30天 - 可随时退出登录 - 多设备登录互不影响 ### AI代码生成使用 **1. 创建应用** 1. 登录后进入"应用管理"页面 2. 点击"创建应用"按钮 3. 填写应用信息: - 应用名称 - 应用描述 - 生成类型:Vue 3 项目(当前版本专注于 Vue 3 项目生成) 4. 点击创建 **2. 生成代码** 1. 在应用列表中找到创建的应用 2. 点击"生成代码"按钮 3. 选择合适的 AI 模型(根据项目复杂度选择) 4. 输入详细的需求描述(可参考推荐测试提示词) 5. 系统实时显示AI生成过程: - AI思考过程 - 工具调用信息 - 代码生成进度 - 文件列表 6. 生成完成后可以: - 在线预览代码 - 下载完整项目压缩包 - 部署到云端(免费) **3. 代码预览与下载** - 支持在线查看生成的代码 - 代码高亮显示 - 支持复制代码 - 一键下载完整项目压缩包 **4. 项目部署**(完全免费) 1. 生成完成后点击"部署"按钮 2. 系统自动将项目构建并上传到腾讯云COS 3. 生成唯一的在线预览链接 4. 通过链接即可访问部署的项目 5. 支持分享链接给他人访问 6. **注意**:项目部署不消耗积分,完全免费 ### 版本管理使用 **1. 查看版本历史** 1. 进入应用详情页面 2. 点击"版本历史"标签 3. 查看所有历史版本列表,包括: - 版本号 - 创建时间 - 版本说明 - 操作人 **2. 版本回滚** 1. 在版本历史列表中找到目标版本 2. 点击"回滚"按钮 3. 确认回滚操作 4. 系统自动恢复应用到该版本状态 5. 回滚操作会创建新的版本记录 ### 积分系统使用 **1. 查看积分余额** - 登录后在用户中心查看当前积分 - 累计积分:历史获得的总积分 - 可用积分:当前可使用的积分 **2. 获取积分** - **注册奖励**: 新用户注册赠送100积分 - **邀请奖励**: 成功邀请好友注册,双方各得50积分 - **每日签到**: 每日首次登录获得10积分(可扩展) **3. 消耗积分** - **AI 代码生成**(唯一消耗场景): - 根据选择的 AI 模型和实际消耗的 Token 数量计费 - 不同模型有不同的积分消耗率(每千 Token 消耗的积分数) - 模型等级分类: - **基础编码模型**(如 gpt-5-low): 约 1-3 积分/千Token - **标准编码模型**(如 qwen-turbo): 约 3-5 积分/千Token - **高级编码模型**(如 gpt-5-codex-medium): 约 5-10 积分/千Token - **基础推理模型**: 约 10-15 积分/千Token - **高级推理模型**: 约 15-30 积分/千Token - 质量系数会影响最终积分消耗(1.0-3.5倍) - 典型 Vue 3 项目生成消耗: 50-200 积分(取决于项目复杂度和模型选择) **💡 积分优化建议**: - 简单项目选择基础编码模型,节省积分 - 复杂项目选择高级推理模型,保证质量 - 使用两阶段生成流程,避免无效生成浪费积分 - 项目部署和代码下载不消耗积分,完全免费 **4. 积分明细** 1. 进入"积分中心" 2. 查看积分获取和消耗记录 3. 每条记录包含: - 积分类型(获取/消耗) - 积分数量 - 操作说明 - 操作时间 **5. 积分有效期** - 积分有效期为180天 - 即将过期的积分会提前通知 - 过期积分自动扣除 ### 邀请好友获得奖励 **1. 获取邀请码** 1. 登录后进入"邀请好友" 2. 系统自动为每个用户生成唯一邀请码 3. 复制邀请码或邀请链接 **2. 分享邀请** - **方式一**: 分享邀请码,好友注册时输入 - **方式二**: 分享邀请链接,好友点击直接跳转注册页 **3. 获得奖励** - 好友通过邀请码/链接完成注册 - 系统自动检测邀请关系 - 邀请人和被邀请人各获得50积分 - 奖励在好友注册后24小时内自动发放 **4. 邀请统计** 1. 进入"邀请好友" 2. 查看邀请数据: - 邀请人数 - 成功注册人数 - 获得积分总额 - 邀请排行榜 **5. 防刷规则** - 同一IP短时间内多次注册会被限制 - 异常邀请行为需人工审核 - 作弊行为将扣除全部奖励积分 ## 💻 开发指南 ### 后端开发 **编译和构建** ```bash # 编译项目 ./mvnw clean compile # 打包应用 ./mvnw clean package # 跳过测试打包 ./mvnw clean package -DskipTests ``` **运行测试** ```bash # 运行所有测试 ./mvnw test # 运行特定测试类 ./mvnw test -Dtest=UserServiceTest # 运行特定测试方法 ./mvnw test -Dtest=UserServiceTest#testRegister ``` **热部署** - 项目使用Spring Boot DevTools支持热部署 - 修改代码后自动重启应用 - 静态资源修改无需重启 ### 前端开发 **开发命令** ```bash # 启动开发服务器 npm run dev # 类型检查 npm run type-check # 代码检查和自动修复 npm run lint # 代码格式化 npm run format # 构建生产版本 npm run build # 预览生产构建 npm run preview ``` **API客户端生成** ```bash # 从后端OpenAPI规范生成TypeScript类型 npm run openapi2ts # 注意: 需要后端服务先启动 ``` **组件开发规范** - 使用Composition API - 使用`