AI Resume Master

type
status
date
slug
summary
tags
category
icon
password
基于 RAG 架构的全栈 AI 简历优化平台
LangChain
Node.js
React
TypeScript

📖 项目简介

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
功能流程:
  1. 接收简历文本
  1. 使用 RecursiveCharacterTextSplitter 分块
      • chunk_size: 1000 字符
      • chunk_overlap: 200 字符
  1. 调用 bge-large-zh-v1.5 生成 1024 维向量
  1. 存储到 Supabase pg_vector 数据库
请求示例:
响应示例:

2️⃣ 智能匹配分析

路由: POST /api/analyze-match
功能流程:
  1. 接收职位描述 (JD)
  1. 将 JD 向量化
  1. 在向量数据库中检索相似度 Top-5 的简历片段
  1. 构建包含上下文的 Prompt
  1. 调用 LLM (Qwen/DeepSeek) 生成分析报告
  1. 使用 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 个相似结果
原因: 相似度阈值过高或数据库为空
解决:
  1. 降低阈值到 0.0
  1. 确认数据库有数据: SELECT COUNT(*) FROM documents;

❌ LLM 调用失败

错误: 400 Bad RequestMissing credentials
解决:
  1. 检查 .env 文件中的 API Key
  1. 确认硅基流动账号有余额
  1. 尝试切换模型名称

📊 性能指标

系统性能

指标
数值
简历向量化时间
~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

🙏 致谢


上一篇
YLT
下一篇
提示词
Loading...