# devHelper **Repository Path**: liutaoxyz/dev-helper ## Basic Information - **Project Name**: devHelper - **Description**: 码面通: 面向程序员的 AI 编程学习 + 求职面试一体化平台 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-11 - **Last Updated**: 2026-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CodeInterview - AI 编程面试助手 > 面向程序员的 AI 编程学习 + 求职面试一体化平台 [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.5.3-brightgreen.svg)](https://spring.io/projects/spring-boot) [![Java](https://img.shields.io/badge/Java-21-orange.svg)](https://www.oracle.com/java/) [![Vue.js](https://img.shields.io/badge/Vue.js-3.4-4FC08D.svg)](https://vuejs.org/) [![LangChain4j](https://img.shields.io/badge/LangChain4j-1.12.2-blue.svg)](https://github.com/langchain4j/langchain4j) [![License](https://img.shields.io/badge/license-MIT-yellow.svg)](LICENSE) --- ## 📖 项目介绍 ### 定位 CodeInterview 是一个面向程序员的 AI 助手平台,融合两大核心功能: | 模块 | 功能 | 状态 | |------|------|------| | **编程助手** | AI 问答、RAG 知识库检索、面试题搜索、流式输出 | 🚀 已上线 | | **面试大厅** | 简历上传与分析、AI 生成面试题、模拟面试、评估报告 | 🚧 规划中 | | **简历中心** | 简历解析、AI 分析优化、PDF 导出 | 🚧 规划中 | | **知识库** | 多用户文档管理、向量化检索 | 🚧 规划中 | > 💡 **愿景**:从学习到 offer,一站式搞定 ### 目标用户 - 🧑‍💻 计算机专业学生 — 规划学习路线、准备秋招/春招 - 🔄 转行开发者 — 补足基础知识、优化简历、模拟面试 - 👨‍💻 在职程序员 — 技术提升、跳槽准备、面试题库查询 --- ## ✨ 核心功能 ### 已上线功能 #### 1. 编程助手 - 💬 **智能问答** — 基于对话历史,理解上下文,支持追问 - ⚡ **流式输出** — 打字机效果,实时看到 AI 回复 - 🧠 **会话记忆** — MySQL 持久化,跨会话保留上下文 - 📚 **RAG 知识库** — 基于本地文档检索,增强回答准确性 - 🔧 **工具调用** — 联网搜索最新面试题,实时获取信息 - 🛡️ **安全防护** — 输入内容检测,过滤敏感信息 #### 2. 技术亮点 - SSE 流式响应,实现真正的打字机效果 - LangChain4j AiServices 接口代理,开发便捷 - MCP(Model Context Protocol)协议支持 - MySQL 会话记忆持久化 - InMemoryEmbeddingStore 本地向量存储 ### 规划功能 #### 面试大厅 🚧 - 基于简历内容 AI 生成针对性面试题 - 多轮追问,模拟真实面试场景 - 实时反馈与评价 - 自动生成评估报告与改进建议 #### 简历中心 🚧 - 多格式简历解析(PDF/DOCX/TXT) - AI 分析技术栈匹配度 - 简历优化建议 - 一键导出 PDF #### 知识库管理 🚧 - 多用户文档隔离 - 批量向量化处理 - 可配置 RAG 参数 - 文档版本管理 --- ## 🏗️ 技术架构 ### 技术栈 | 层级 | 技术 | 说明 | |------|------|------| | **后端框架** | Spring Boot 3.5.3 | 核心框架 | | **AI 框架** | LangChain4j 1.12.2 | AI 服务抽象 | | **编程语言** | Java 21 | LTS 版本 | | **数据库** | MySQL + InMemory | 业务数据 + 向量存储 | | **前端** | Vue 3 + Vite + TypeScript | SPA 应用 | | **AI 模型** | Qwen2.5-72B-Instruct | 硅基流动 API | | **MCP** | 智谱 mcp-web-search | 联网搜索 | ### 系统架构图 ``` ┌─────────────────────────────────────────────────────────────┐ │ 用户浏览器 │ └────────────────────────────┬────────────────────────────────┘ │ HTTP / SSE ┌────────────────────────────▼────────────────────────────────┐ │ Vue 3 前端 │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │ │ │ 聊天界面 │ │ 面试大厅 │ │ 简历中心 │ │ │ │ (已上线) │ │ (规划中) │ │ (规划中) │ │ │ └──────────────┘ └──────────────┘ └──────────────────┘ │ └────────────────────────────┬────────────────────────────────┘ │ ┌────────────────────────────▼────────────────────────────────┐ │ Spring Boot 后端 │ │ ┌────────────────────────────────────────────────────────┐ │ │ │ AI 服务层 (LangChain4j) │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌────────────────┐ │ │ │ │ │ AiServices │ │ Content │ │ Interview │ │ │ │ │ │ (对话服务) │ │ Retriever │ │ QuestionTool │ │ │ │ │ │ │ │ (RAG检索) │ │ (工具调用) │ │ │ │ │ └─────────────┘ └─────────────┘ └────────────────┘ │ │ │ └────────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────────┐ │ │ │ 数据层 │ │ │ │ ┌──────────────────┐ ┌──────────────────────────┐ │ │ │ │ │ MySQL │ │ InMemoryEmbeddingStore │ │ │ │ │ │ (会话记忆/业务) │ │ (向量存储) │ │ │ │ │ └──────────────────┘ └──────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────┘ │ └────────────────────────────┬────────────────────────────────┘ │ ┌───────────────┼───────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 硅基流动 API │ │ 智谱 MCP API │ │ 本地 docs/ │ │ Qwen2.5-72B │ │ 联网搜索 │ │ 知识库文档 │ └──────────────┘ └──────────────┘ └──────────────┘ ``` ### 项目结构 ``` ai-code-helper/ ├── src/main/java/com/liuxyz/aicodehelper/ │ ├── AiCodeHelperApplication.java # 启动类 │ │ │ ├── controller/ │ │ └── AiController.java # SSE 流式对话接口 │ │ │ ├── ai/ │ │ ├── AiCodeHelperService.java # AI 服务接口 │ │ ├── AiCodeHelperServiceFactory.java # AiServices 工厂 │ │ ├── guardrail/ # 安全护栏 │ │ │ └── SafeInputGuardrail.java │ │ ├── listener/ # 对话监听器 │ │ │ └── ChatModelListenerConfig.java │ │ ├── mcp/ # MCP 配置 │ │ │ └── McpConfig.java │ │ ├── rag/ # RAG 配置 │ │ │ └── RagConfig.java │ │ └── tool/ # 工具类 │ │ └── InterviewQuestionTool.java │ │ │ ├── config/ # 配置类 │ │ ├── AiModelConfig.java │ │ └── CorsConfig.java │ │ │ ├── entity/ # JPA 实体 │ ├── mapper/ # MyBatis Mapper │ ├── memory/ # 记忆存储 │ │ ├── AiChatMemoryMapper.java │ │ └── MySqlChatMemoryStore.java │ └── service/ # 业务服务 │ ├── src/main/resources/ │ ├── application.yml # 主配置 │ ├── application-local.yml # 本地配置(密钥) │ ├── system-prompt.txt # 系统提示词 │ ├── docs/ # RAG 知识库文档 │ └── static/ # 静态资源 │ ├── ai-code-helper-frontend/ # 前端项目(Vue 3) │ ├── src/ │ │ ├── views/ │ │ │ └── ChatRoom.vue # 聊天界面 │ │ ├── components/ │ │ └── api/ │ └── package.json │ └── pom.xml # Maven 配置 ``` --- ## 🚀 快速开始 ### 环境要求 | 依赖 | 版本 | 说明 | |------|------|------| | JDK | 21+ | Lombok 需要 Java 21 | | Maven | 3.6+ | 项目构建 | | Node.js | 18+ | 前端开发 | | MySQL | 8.0+ | 会话记忆存储 | | 硅基流动 API | - | AI 模型调用 | | 智谱 API | - | MCP 联网搜索 | ### 1. 配置 API 密钥 编辑 `src/main/resources/application-local.yml`: ```yaml ai: siliconflow: api-key: your-api-key-here # 硅基流动 API Key zhipu: api-key: your-api-key-here # 智谱 API Key ``` > 📝 如何获取 API Key: > - 硅基流动:https://cloud.siliconflow.cn > - 智谱 AI:https://open.bigmodel.cn ### 2. 初始化数据库 ```sql CREATE DATABASE IF NOT EXISTS ai_code_helper DEFAULT CHARACTER SET utf8mb4; ``` ### 3. 启动后端 ```bash # 方式一:Maven ./mvnw spring-boot:run # 方式二:IDEA # 右键 AiCodeHelperApplication.java -> Run ``` 后端启动后访问:`http://localhost:8080` ### 4. 启动前端 ```bash cd ai-code-helper-frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端启动后访问:`http://localhost:5173` --- ## 📡 API 接口 ### 聊天接口 | 方法 | 路径 | 说明 | |------|------|------| | `GET` | `/api/ai/chat` | SSE 流式对话 | | `POST` | `/api/ai/chat` | POST 流式对话 | **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | `memoryId` | int | 是 | 会话 ID,用于区分不同对话 | | `message` | string | 是 | 用户输入的消息 | **响应示例**(SSE 流式): ``` data:你 data:好 data:! data:请问 data:有什么 data:可以 data:帮助 data:你的 data:吗 data:? ``` --- ## 🔧 扩展开发 ### 添加自定义工具 1. 创建工具类,添加 `@Tool` 注解: ```java public class CustomTool { @Tool("获取当前天气信息") public String getWeather(@P("city") String city) { // 工具实现 return "当前" + city + "天气晴朗,温度 25°C"; } } ``` 2. 在 `AiCodeHelperServiceFactory` 中注册: ```java .tools(new CustomTool()) ``` ### 修改系统提示词 编辑 `src/main/resources/system-prompt.txt`,修改 AI 的角色设定和行为规范。 ### 添加 RAG 知识库 将文档放入 `src/main/resources/docs/` 目录,系统会自动: 1. 分块处理文档内容 2. 生成向量嵌入 3. 存储到 InMemoryEmbeddingStore 4. 回答时检索相关文档 支持的文档格式:`.txt`、`.md` --- ## 🗺️ 路线图 ```roadmap [X] 基础聊天功能 [X] SSE 流式输出 [X] 会话记忆持久化 [X] RAG 知识库检索 [X] MCP 联网搜索 [X] 安全输入过滤 [ ] 简历上传与分析 [ ] AI 生成面试题 [ ] 模拟面试对话 [ ] 评估报告生成 [ ] 简历 PDF 导出 [ ] 多用户知识库 [ ] 向量存储持久化(pgvector) [ ] Spring AI 迁移 ``` --- ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request --- ## 📄 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 --- ## 🙏 致谢 - [LangChain4j](https://github.com/langchain4j/langchain4j) — 强大的 AI 应用开发框架 - [硅基流动](https://cloud.siliconflow.cn) — 优质的大模型 API 服务 - [通义千问](https://tongyi.aliyun.com/) — 阿里云大语言模型 - [Spring Boot](https://spring.io/projects/spring-boot) — 简化的 Java 开发框架 - [Vue.js](https://vuejs.org/) — 渐进式 JavaScript 框架 - [智谱 AI](https://www.zhipuai.cn/) — MCP 协议支持 ---

⭐ 如果这个项目对你有帮助,请点个 Star!