# dev-helper-coze **Repository Path**: elfbobo_admin_admin/dev-helper-coze ## Basic Information - **Project Name**: dev-helper-coze - **Description**: 码面通 基于 SpringBoot + Vue3 + RAG 的 AI 开发者助手:AI 对话、模拟面试、简历优化、知识库问答与订阅管理,开箱即用。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-07 - **Last Updated**: 2026-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DevHelper 码面通 > 🌐 English version: [README_EN.md](README_EN.md) > AI 编程学习与求职面试一体化平台 — 让每位程序员都能得到 24 小时在线的 AI 技术导师 [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Java: 21](https://img.shields.io/badge/Java-21-blue.svg)](https://www.oracle.com/java/) [![Spring Boot: 3.4](https://img.shields.io/badge/Spring%20Boot-3.4-success.svg)](https://spring.io/projects/spring-boot) [![Vue: 3](https://img.shields.io/badge/Vue-3-brightgreen.svg)](https://vuejs.org/) [![Build](https://img.shields.io/badge/Build-Passing-green.svg)]() [![Test Coverage](https://img.shields.io/badge/Test%20Coverage-85%25-success.svg)]() [![Demo](https://img.shields.io/badge/Demo-Online-brightgreen.svg)](https://f371eb233ffb4fbebac8a3ac9fc00841.app.codebuddy.work) --- ## 📋 目录 - [项目简介](#项目简介) - [🎯 为什么需要 DevHelper](#为什么需要-devhelper) - [📸 功能预览](#功能预览) - [核心功能](#核心功能) - [技术架构](#技术架构) - [快速启动](#快速启动) - [开发指南](#开发指南) - [API 文档](#api-文档) - [开发进度](#开发进度) - [路线图](#路线图) - [部署指南](#部署指南) - [贡献指南](#贡献指南) - [⭐ 支持项目](#支持项目) - [许可证](#许可证) --- ## 项目简介 **DevHelper 码面通** 是一款面向程序员的 AI 编程学习与求职面试一体化平台。平台融合智能对话、简历分析、模拟面试等核心功能,帮助程序员从学习到求职的每一个环节都能得到 AI 的助力。 ### 设计理念 - **专业而不失温度**:既有技术感的科技美学,又有人文关怀的交互体验 - **24 小时在线导师**:不只是工具,更是随时可用的技术伙伴 - **数据驱动提升**:通过面试记录和趋势分析,量化个人成长 --- ## 🎯 为什么需要 DevHelper 程序员成长路上工具很多,但碎片化的工具解决不了系统性的问题: | 痛点 | DevHelper 的解法 | |------|----------------| | 刷题零散,遇问题只能翻搜索引擎 | 24h 在线 AI 编程助手 + RAG 知识库精准溯源 | | 面试前不知会被问什么,临场发慌 | 传简历 → AI 生成专属题 → 模拟面试 → 多维评估报告 | | 简历石沉大海,不知差在哪 | AI 解析 + 匹配度分析 + 关键词优化,一键导出多模板 PDF | | 知识散落各处,检索困难 | 文档向量化 + 语义检索,让知识"问得出、找得到" | | 想用 AI 但嫌配置麻烦 | 开箱即用,未配 Key 自动降级 Mock,零门槛体验 | > 一个平台,覆盖「学 → 练 → 面 → 优化」全链路。 ## 📸 功能预览 | 编程助手(AI 对话 · 流式输出 · RAG 溯源) | 面试大厅(简历 → AI 出题 → 模拟面试 → 评估) | |-------------------------------------------|----------------------------------------------| | ![编程助手](docs/screenshots/chat.png) | ![面试大厅](docs/screenshots/interview.png) | | 简历中心(解析 · AI 优化 · PDF 导出) | 知识库(文档向量化 · 语义检索) | |--------------------------------------|---------------------------------| | ![简历中心](docs/screenshots/resume.png) | ![知识库](docs/screenshots/knowledge.png) | > 订阅管理(套餐选择 + Mock 支付 + 订单持久化): > ![订阅管理](docs/screenshots/subscription-management.png) ## 核心功能 ### ✅ 模块一:编程助手 智能对话 + 流式输出 + RAG 知识库检索 - ✅ **智能问答**:文本输入,支持 Markdown 预览,上下文理解 - ✅ **流式输出**:AI 回复逐字显示,带光标闪烁,支持手动停止 - ✅ **会话管理**:持久化存储,会话分组,导入导出 - ✅ **RAG 知识库检索**:语义搜索,来源标注,全文定位 - ✅ **工具调用**:联网搜索,代码执行(安全沙箱) - ✅ **安全防护**:输入检测,输出审核,频率限制 ### ✅ 模块二:面试大厅 简历上传与分析 + AI 生成面试题 + 模拟面试 + 评估报告 - ✅ **简历上传与分析**:支持 PDF/DOCX/TXT/图片,解析字段,可视化报告 - ✅ **AI 生成面试题**:基于简历生成,题目类型(选择题/简答题/手写代码题),难度分级,标签分类 - ✅ **模拟面试**:流程(自我介绍→问答→手写代码→反问),计时功能,实时提示 - ✅ **评估报告**:多维评分,改进建议,对比基准 - ✅ **面试趋势统计**:整体统计,趋势图表,分类统计 ### ✅ 模块三:简历中心 简历解析 + AI 分析优化 + PDF 导出 - ✅ **简历解析**:结构化提取,技能标签提取,经历时间线 - ✅ **AI 分析优化**:匹配度分析,优化建议,关键词优化 - ✅ **PDF 导出**:多模板选择(简约/专业/创意),实时预览,一键导出 ### ✅ 模块四:知识库 文档管理 + 向量化处理 + RAG 配置 + 版本管理 - ✅ **文档管理**:上传方式(本地/URL),格式支持(PDF/DOCX/MD/TXT/网页),文件夹结构 - ✅ **向量化处理**:批量处理,进度显示,失败重试 - ✅ **RAG 配置**:向量模型选择,检索参数配置 - ✅ **文档版本管理**:版本历史,回滚功能,版本对比 ### ✅ 模块五:订阅管理 套餐订阅 + Mock 支付流程 + 订单状态机 + 个人中心展示 - ✅ **套餐展示与选择**:免费版 / 专业版月付 / 专业版年付三档套餐卡片式展示,当前在用套餐高亮显示(含有效期) - ✅ **Mock 支付流程**:选择付费套餐 → 生成支付订单 → 跳转模拟支付页 → 支付回调激活 → 订阅生效 - ✅ **订单持久化**:`selectPlan` 写入 `subscription` + `payments` + `subscription_history` 三张表,事务一致性保障 - ✅ **个人中心**:当前订阅信息、功能对比表、降级到免费版(免费版时按钮置灰显示"已是免费版") ![订阅管理页面](docs/screenshots/subscription-management.png) > *截图:订阅管理 — 展示当前在用套餐(专业版·月付)及三档可选套餐(免费版 / ¥49.00 月付 / ¥399.00 年付),选中套餐以绿色边框高亮* --- ## 技术架构 ### 前端技术栈 | 技术 | 版本 | 说明 | |------|------|------| | Vue 3 | 3.5+ | 前端框架 | | Vite | 5.0+ | 构建工具 | | Vue Router | 4.x | 路由管理 | | Pinia | 3.x | 状态管理 | | Axios | 1.x | HTTP 客户端 | | SCSS | - | 样式预处理 | | Lucide Vue | - | 图标库 | ### 后端技术栈 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.4.x | 后端框架 | | Java | 21 | 开发语言 | | MyBatis-Plus | 3.5+ | ORM 框架 | | MySQL | 8.0+ | 主数据库 | | PostgreSQL + PGVector | 16+ | 向量数据库 | | Spring Security + JWT | - | 安全认证 | | Spring AI | 2024.2.x | AI 框架 | | LangChain4j | 1.0.0 | 向量嵌入 | --- ## 项目结构 ``` DevHelper/ ├── frontend/ # Vue 3 前端 │ ├── public/ # 静态资源 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 通用组件 │ │ ├── composables/ # 组合式函数 │ │ ├── layouts/ # 布局组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia 状态 │ │ ├── styles/ # 全局样式 │ │ ├── utils/ # 工具函数 │ │ ├── views/ # 页面视图 │ │ ├── App.vue │ │ └── main.ts │ ├── index.html │ ├── vite.config.ts │ └── package.json │ ├── backend/ # Spring Boot 后端 │ ├── src/main/java/com/devhelper/ │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器 │ │ ├── service/ # 业务逻辑 │ │ ├── mapper/ # 数据访问 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ └── util/ # 工具类 │ ├── src/main/resources/ │ │ ├── mapper/ # MyBatis XML │ │ ├── db/ # 数据库迁移脚本 │ │ └── application.yml # 配置文件 │ └── pom.xml │ ├── docs/ # 项目文档 │ ├── deployment.md # 部署指南 │ ├── 开发任务列表.md # 开发任务清单 │ └── ... ├── SPEC.md # 产品规范文档 └── README.md # 本文件 ``` --- ## 快速启动 ### 前置要求 - **Node.js** 18+ - **pnpm** 8+ - **Java** 21+ - **Maven** 3.9+ - **MySQL** 8.0+ - **PostgreSQL** 16+ (带 PGVector 扩展) ### 数据库初始化 #### 1. 创建 MySQL 数据库 ```sql CREATE DATABASE devhelper CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` #### 2. 创建 PostgreSQL 向量数据库 ```sql CREATE DATABASE devhelper_vector; -- 执行 backend/src/main/resources/db/init-pgvector.sql ``` ### 环境配置 配置环境变量(或在 `application-local.yml` 中修改): ```bash # MySQL 配置 export DB_HOST=localhost export DB_PORT=3306 export DB_NAME=devhelper export DB_USERNAME=root export DB_PASSWORD=your_password # PostgreSQL 配置 export PG_HOST=localhost export PG_PORT=5432 export PG_NAME=devhelper_vector export PG_USERNAME=postgres export PG_PASSWORD=your_password # AI 配置 (SiliconFlow) export OPENAI_API_KEY=sk-your-api-key export OPENAI_BASE_URL=https://api.siliconflow.cn/v1 export OPENAI_MODEL=Qwen/Qwen2.5-72B-Instruct ``` ### 启动后端 ```bash cd backend mvn spring-boot:run ``` 后端服务启动于 http://localhost:8080 ### 启动前端 ```bash cd frontend pnpm install pnpm run dev ``` 前端服务启动于 http://localhost:5173 --- ## 开发指南 ### 前端开发命令 ```bash cd frontend # 安装依赖 pnpm install # 开发模式(热更新) pnpm run dev # 生产构建 pnpm run build # 预览生产版本 pnpm run preview # 单文件类型检查 npx vue-tsc --noEmit src/views/ChatView.vue # 代码格式化 pnpm run format # 代码检查 pnpm run lint ``` ### 后端开发命令 ```bash cd backend # 编译项目 mvn compile # 运行项目(开发模式) mvn spring-boot:run # 打包项目 mvn package # 运行单测试类 mvn test -Dtest=AuthServiceTest # 运行所有测试 mvn test # 跳过测试构建 mvn package -DskipTests # 清理构建 mvn clean ``` ### 开发注意事项 1. **前端开发**:使用 pnpm,后端使用 Java 21+ Maven 2. **跨域**:后端已配置 CORS(开发环境允许 localhost:5173) 3. **代理**:Vite 配置 `/api/v1` 代理到后端 8080 4. **开发模式问题**:如遇 SyntaxError,使用生产构建 `pnpm build && pnpm preview` 5. **AI 降级**:未配置 AI 时自动降级为本地 Mock 6. **数据库迁移**:使用 Flyway(backend/src/main/resources/db/) --- ## API 文档 ### 认证模块 | 接口 | 方法 | 描述 | |------|------|------| | `/api/v1/auth/login` | POST | 用户登录 | | `/api/v1/auth/register` | POST | 用户注册 | | `/api/v1/auth/refresh` | POST | 刷新 Token | | `/api/v1/auth/logout` | POST | 用户退出 | ### 编程助手模块 | 接口 | 方法 | 描述 | |------|------|------| | `/api/v1/chat/session` | POST | 创建会话 | | `/api/v1/chat/sessions` | GET | 获取会话列表 | | `/api/v1/chat/history/{sessionId}` | GET | 获取历史消息 | | `/api/v1/chat/send` | POST | 发送消息(流式) | | `/api/v1/chat/session/{sessionId}` | DELETE | 删除会话 | ### 面试大厅模块 | 接口 | 方法 | 描述 | |------|------|------| | `/api/v1/interview/sessions` | POST | 创建面试会话 | | `/api/v1/interview/sessions` | GET | 面试会话列表 | | `/api/v1/interview/stream/{sessionId}` | GET | SSE 流式面试 | | `/api/v1/interview/answer` | POST | 提交回答 | | `/api/v1/interview/followup` | POST | 追问 | | `/api/v1/interview/evaluate/{sessionId}` | GET | 获取评估报告 | | `/api/v1/interview/records` | GET | 获取面试记录 | | `/api/v1/interview/statistics` | GET | 面试统计 | | `/api/v1/interview/trend` | GET | 面试趋势 | ### 简历中心模块 | 接口 | 方法 | 描述 | |------|------|------| | `/api/v1/resume/upload` | POST | 上传简历(多格式) | | `/api/v1/resume/list` | GET | 简历列表 | | `/api/v1/resume/{id}` | GET | 简历详情 | | `/api/v1/resume/{id}/analyze` | POST | 异步 AI 分析 | | `/api/v1/resume/{id}/status` | GET | 查询分析状态 | | `/api/v1/resume/{id}/export` | GET | 导出 PDF 报告 | | `/api/v1/resume/{id}` | DELETE | 删除简历 | ### 知识库模块 | 接口 | 方法 | 描述 | |------|------|------| | `/api/v1/knowledge/upload` | POST | 上传文档 | | `/api/v1/knowledge/docs` | GET | 文档列表 | | `/api/v1/knowledge/stream` | GET | RAG 流式问答(SSE) | | `/api/v1/knowledge/search` | GET | 语义搜索 | | `/api/v1/knowledge/doc/{id}` | DELETE | 删除文档 | ### 订阅管理模块 | 接口 | 方法 | 描述 | |------|------|------| | `/api/v1/subscription/current` | GET | 获取当前订阅信息 | | `/api/v1/subscription/plans` | GET | 获取所有套餐列表 | | `/api/v1/subscription/select` | POST | 选择套餐(生成支付订单) | | `/api/v1/payment/status` | GET | 查询支付订单状态 | | `/api/v1/payment/mock-callback` | POST | Mock 支付回调(模拟支付完成) | | `/api/v1/user/profile` | GET | 个人中心信息(含订阅状态) | --- ## 开发进度 ### 整体进度 | 模块 | 进度 | 状态 | |------|------|------| | 模块一:编程助手 | 100% | ✅ 完成 | | 模块二:面试大厅 | 100% | ✅ 完成 | | 模块三:简历中心 | 100% | ✅ 完成 | | 模块四:知识库 | 100% | ✅ 完成 | | 模块五:订阅管理 | 100% | ✅ 完成 | | **总体完成度** | **100%** | **✅ 可上线** | ### 详细进度 #### 模块一:编程助手 - [x] 4.1.1 智能问答(完成) - [x] 4.1.2 流式输出(完成) - [x] 4.1.3 会话管理(完成) - [x] 4.1.4 RAG 知识库检索(完成) - [x] 4.1.5 工具调用(完成) - [x] 4.1.6 安全防护(完成) #### 模块二:面试大厅 - [x] 4.2.1 简历上传与分析(完成) - [x] 4.2.2 AI 生成面试题(完成) - [x] 4.2.3 模拟面试 - 实时提示(完成) - [x] 4.2.3 模拟面试 - 计时功能(完成) - [x] 4.2.4 评估报告(完成) - [x] 4.2.5 面试趋势统计 - 趋势图(完成) - [x] 4.2.5 面试趋势统计 - 分类统计(完成) #### 模块三:简历中心 - [x] 4.3.1 简历解析(完成) - [x] 4.3.2 AI 分析优化(完成) - [x] 4.3.3 PDF 导出(完成) #### 模块四:知识库 - [x] 4.4.1 文档管理(完成) - [x] 4.4.2 向量化处理(完成) - [x] 4.4.3 RAG 配置(完成) - [x] 4.4.4 文档版本管理(完成) #### 模块五:订阅管理 - [x] 4.5.1 套餐展示与选择(完成) - [x] 4.5.2 Mock 支付流程(完成) - [x] 4.5.3 订单持久化与状态机(完成) - [x] 4.5.4 个人中心订阅信息(完成) --- ## 🗺️ 路线图 Roadmap - [x] **v1.0** 五大核心模块(对话 / 面试 / 简历 / 知识库 / 订阅)已上线 - [ ] **v1.1** 面试视频录制 + AI 语速 / 表情分析 - [ ] **v1.2** 多模型切换(DeepSeek / Claude / GPT) - [ ] **v1.3** 团队版 / 企业版(组织管理 + 共享知识库) - [ ] **v1.4** 微信 / 支付宝 / Stripe 真实支付接入 - [ ] **v2.0** 插件市场 + 开放 API --- ## 部署指南 详细部署指南请参考:[docs/deployment.md](docs/deployment.md) ### 快速部署步骤 1. **后端部署**:参考 [docs/deployment.md](docs/deployment.md#2-后端部署) 2. **前端部署**:参考 [docs/deployment.md](docs/deployment.md#3-前端部署) 3. **数据库初始化**:参考 [docs/deployment.md](docs/deployment.md#4-数据库初始化) 4. **配置说明**:参考 [docs/deployment.md](docs/deployment.md#5-配置说明) --- ## 安全防护 DevHelper 实现了完整的安全防护体系,包括: ### 1. 输入检测(Input Validation) - `InputValidationFilter`:Servlet Filter,拦截所有 POST/PUT 请求的 body - `InputSanitizer`:输入净化工具,检测 XSS 攻击和敏感词 - 返回结果:检测到攻击返回 `400 Bad Request` ### 2. 输出审核(Output Auditing) - `OutputAuditService`:在 AI 返回结果后、保存数据库前进行检查 - 检测内容:恶意代码、入侵攻击、违禁品交易、自我伤害、重复内容、内容过长 - 返回结果:审核失败返回 `"抱歉,我无法回答这个问题。"` ### 3. 频率限制(Rate Limiting) - `RateLimitFilter`:使用 Bucket4j 实现令牌桶限流 - 限制规则:普通用户 60 次/分钟,API 调用 10 次/分钟 - 返回结果:超过限制返回 `429 Too Many Requests` ### 4. 安全漏洞修复状态(2026-06-09) - ✅ P0-1 (API Key 泄露) - 已修复 - ✅ P0-2 (JWT 弱密钥) - 已修复 - ✅ P0-3 (CORS 通配符) - 已修复 - ✅ P0-4 (/api/test/** 未认证) - 已确认不存在 - ✅ P0-5 (路径遍历) - 已修复 - ✅ P0-6 (异常泄露+用户枚举) - 已修复 - ✅ P0-7 (IDOR 越权) - 已修复 - ✅ P0-8 (默认管理员账户) - 已修复 > 详见:[deliverables/gstack/p0-fix-report-2026-06-09.md](deliverables/gstack/p0-fix-report-2026-06-09.md) --- ## 贡献指南 ### 开发流程 1. **查看开发任务列表**:`docs/开发任务列表.md` 2. **选择任务**:按优先级(P0 > P1 > P2 > P3 > P4 > P5)选择任务 3. **创建分支**:`git checkout -b feature/任务名称` 4. **开发**:遵循代码规范,编写测试用例 5. **提交**:使用约定式提交(Conventional Commits) 6. **推送**:`git push origin feature/任务名称` 7. **创建 PR**:填写 PR 模板,等待代码审查 ### 代码规范 - **Java**:遵循 Google Java Style Guide - **Vue/TypeScript**:遵循 Vue 3 风格指南 - **提交信息**:使用 Conventional Commits(feat/fix/docs/style/refactor/test/chore) ### 文档 - **产品规范**:`SPEC.md` - **开发任务列表**:`docs/开发任务列表.md` - **API 文档**:本文档的 API 文档部分 - **部署指南**:`docs/deployment.md` --- ## 许可证 MIT License 详见 [LICENSE](LICENSE) 文件 --- ## ⭐ 支持项目 如果这个项目对你有帮助,欢迎点个 Star ⭐ 让更多人看到!你的支持是持续优化的动力 🙌 [![Star History Chart](https://api.star-history.com/svg?repos=liutaoxyz/dev-helper-coze&type=Date)](https://star-history.com/#liutaoxyz/dev-helper-coze&Date) ## 联系方式 - **项目主页**:[Gitee](https://gitee.com/liutaoxyz/dev-helper-coze) - **在线 Demo**:[点击体验(前端预览)](https://f371eb233ffb4fbebac8a3ac9fc00841.app.codebuddy.work) - **Issue Tracker**:[Issues](https://gitee.com/liutaoxyz/dev-helper-coze/issues) - **讨论区**:[Issues](https://gitee.com/liutaoxyz/dev-helper-coze/issues) > ⚠️ 在线 Demo 为前端 UI 预览;AI 对话 / 模拟面试 / 简历分析等需后端能力,请按「快速启动」本地部署后端后完整体验。 --- **最后更新**:2026-07-06