AI Resume Master
type
status
date
slug
summary
tags
category
icon
password
基于 RAG 架构的全栈 AI 简历优化平台
📖 项目简介
AI Resume Master 是一个智能简历分析系统,帮助求职者优化简历与职位的匹配度。系统使用 RAG (检索增强生成) 架构,通过向量数据库存储简历语义信息,结合大语言模型生成个性化的匹配分析报告。
✨ 核心特性
- 🧠 智能向量检索: 基于语义相似度的精准匹配 (准确率 82%+)
- 📊 多维度分析: 技能匹配、经验评估、亮点提取、优化建议
- ⚡ 实时流式输出: Server-Sent Events 实现打字机效果
- 🎨 现代化 UI: React + TailwindCSS 响应式设计
- 🔒 类型安全: 全栈 TypeScript 开发
🏗️ 技术架构
技术栈
前端:
- React 18 + TypeScript
- Vite (构建工具)
- TailwindCSS (样式)
- react-markdown (Markdown 渲染)
后端:
- Node.js + Express
- TypeScript
- LangChain.js (AI 编排)
- Nodemon (热重载)
数据库:
- Supabase (PostgreSQL + pg_vector)
- HNSW 索引优化
AI 服务:
- 硅基流动 API
- Embedding:
BAAI/bge-large-zh-v1.5(1024维) - LLM:
Qwen/Qwen2.5-7B-Instruct
系统架构图
RAG 工作流程
📂 项目结构
🎯 核心功能详解
1️⃣ 简历上传与向量化
路由:
POST /api/upload-resume功能流程:
- 接收简历文本
- 使用
RecursiveCharacterTextSplitter分块 - chunk_size: 1000 字符
- chunk_overlap: 200 字符
- 调用
bge-large-zh-v1.5生成 1024 维向量
- 存储到 Supabase pg_vector 数据库
请求示例:
响应示例:
2️⃣ 智能匹配分析
路由:
POST /api/analyze-match功能流程:
- 接收职位描述 (JD)
- 将 JD 向量化
- 在向量数据库中检索相似度 Top-5 的简历片段
- 构建包含上下文的 Prompt
- 调用 LLM (Qwen/DeepSeek) 生成分析报告
- 使用 SSE (Server-Sent Events) 流式返回
请求示例:
SSE 响应格式:
3️⃣ 向量相似度检索
核心代码:
相似度计算:
- 使用余弦相似度:
1 - (embedding1 <=> embedding2)
- 值域: 0-1 (1 表示完全相同)
- 实际效果: 82%+ 表示高度匹配
🔧 开发指南
调试技巧
1. 查看后端日志
后端有详细的日志输出:
2. 查看 Supabase 数据
在 Supabase Dashboard → Table Editor → documents:
3. 测试向量检索
在 Supabase SQL Editor:
常见问题排查
❌ 向量存储失败
错误:
expected 1536 dimensions, not 1024原因: 数据库向量维度与实际不符
解决:
❌ 检索不到结果
错误:
找到 0 个相似结果原因: 相似度阈值过高或数据库为空
解决:
- 降低阈值到 0.0
- 确认数据库有数据:
SELECT COUNT(*) FROM documents;
❌ LLM 调用失败
错误:
400 Bad Request 或 Missing credentials解决:
- 检查
.env文件中的 API Key
- 确认硅基流动账号有余额
- 尝试切换模型名称
📊 性能指标
系统性能
指标 | 数值 |
简历向量化时间 | ~500ms |
向量检索时间 | ~200ms |
LLM 首字响应时间 | ~1s |
完整分析报告生成 | 3-5s |
相似度检索准确率 | 82%+ |
资源消耗
- 后端内存: ~150MB
- 前端打包体积: ~500KB (gzipped)
- 数据库存储: 每条简历 ~10KB
🛡️ 安全性考虑
已实现
- ✅ 环境变量隔离 (
.env)
- ✅ CORS 跨域配置
- ✅ TypeScript 类型检查
- ✅ 输入验证 (长度、格式)
待实现 (生产环境必需)
- ⏳ 用户认证 (JWT)
- ⏳ API 限流
- ⏳ 数据加密存储
- ⏳ SQL 注入防护
- ⏳ XSS 防护
🚧 后续优化计划
功能增强
PDF/Word 简历自动解析
历史分析记录管理
批量 JD 分析
简历版本对比
导出分析报告 (PDF)
技术优化
Redis 缓存频繁查询
向量检索 Rerank 优化
混合检索 (向量 + 关键词)
Docker 容器化
CI/CD 自动化部署
单元测试覆盖
AI 优化
Prompt 模板优化
多轮对话支持
根据反馈 Fine-tune
多模型对比测试
📝 开发日志
v1.0.0
核心功能:
- ✅ 简历上传与向量化
- ✅ RAG 检索与分析
- ✅ 流式输出 (SSE)
- ✅ Markdown 渲染
技术栈:
- ✅ React + TypeScript
- ✅ Node.js + Express
- ✅ Supabase pg_vector
- ✅ LangChain.js
- ✅ 硅基流动 API
已知问题:
- ⚠️ 流式输出偶尔不流畅
- ⚠️ 长简历分块策略待优化
👨💻 作者
Lip233
- GitHub: @Lip233
🙏 致谢
- LangChain - AI 应用开发框架
- Supabase - 开源 Firebase 替代
- 硅基流动 - 国内可用的 AI API
上一篇
YLT
下一篇
提示词
Loading...