Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Full-stack AI Resume Agent & LaTeX Editor (cococv.cn). 一句话生成在线可修改的高清 LaTeX PDF 简历:支持 AI 对话生成、可解释诊断与 ATS 检查、PDF/图片解析及 CLI / Codex Skill。
翻訳待ち
Loading the full README.
Read the full README ↗Resume-Agent(cococv.cn) 是一个面向中文求职场景的全栈 AI 简历平台,打通了从 一句话对话生成 / PDF 与图片导入 → 可解释简历诊断与 ATS 检查 → 自然语言增量改写 → 双栏可视化排版与 LaTeX PDF 导出 的全流程,让你把精力放回经历打磨本身,告别深夜反复调格式。
| 模块 | 核心能力 |
|---|---|
| 🚀 三种起点自由开局 | 支持一句话自然语言引导生成、上传已有 PDF / 图片简历自动解析(glm-ocr + glm-4.6v),或直接套用内置 LaTeX 标准模板从零编辑 |
| 💬 AI 助手左聊右看 | 进程内 Agent 实时调用生成、诊断与修改工具,右侧同步渲染 PDF 预览,生成满意后一键「导入到编辑器」继续精修 |
| 🔍 可解释诊断与 ATS 清单 | 评分依据逐字引用简历原文;针对目标岗位 JD 输出 ATS 兼容检查清单,精准点出空泛套话、量化缺失与技能掌握度短板 |
| 🛠️ 单条建议应用与缺口补齐 | 每条改进建议支持独立点击「帮我改这条」;涉及真实业务数据缺口的条目支持弹窗「补充信息并修改」 |
| 🎨 双栏可视化精细排版 | 涵盖基本信息、教育、工作、实习、项目、开源、技能、获奖、自评、科研 10 大板块(支持自定义模块);支持公司/学校 Logo、工作年限、独立字号、正文蓝字重点高亮与多级列表 |
| 📄 LaTeX PDF 极速直连导出 | 服务端 XeLaTeX 高清编译,自动嵌入中文字体 /ToUnicode CMap(兼容无外部字映射的内置 PDF.js 阅读器),并归一化中英混排引号与连接符保障 ATS 解析 |
| 🔑 可视化密钥配置与防呆热更新 | /settings 页面内置 DeepSeek 与智谱 GLM-OCR 密钥管理面板,支持一键连通性检测、跨平台格式防呆拦截与多 Worker 进程零重启热加载 |
📚 深入开发与二次定制:完整前端架构、Agent 流式协议、数据库表结构、领域术语表与 ADR 请查阅 开发者文档索引 (
docs/README.md)。
| 目录 / 层级 | 技术栈 | 职责说明 |
|---|---|---|
frontend/ | React 18 · TypeScript · Vite · Tailwind | 简历双栏可视化工作区、AI 助手对话流、多皮肤主题与简历管理 |
backend/ | FastAPI · Python 3.12+ · SQLAlchemy | 主业务 API、进程内 backend/agent/ 智能体引擎、PDF 编译路由 |
web/ | Next.js 16 · BetterAuth · PostgreSQL | 统一身份认证服务(线上共享登录态,本地单机体验可按需启用) |
| AI 模型层 | DeepSeek 官方(deepseek-flash / deepseek-v4-pro)· 智谱 GLM(glm-ocr / glm-4.6v) | DeepSeek 负责对话、诊断与结构化生成,智谱负责 PDF/图片 OCR 与版面识别 |
| PDF 引擎 | XeLaTeX · CTeX | 服务端中英混排编译、Logo 嵌入渲染与 ATS 字符归一化 |
3.12+(推荐使用 uv 管理依赖)18+sudo apt install texlive-xetex texlive-lang-chinese fonts-noto-cjkgit clone https://github.com/wycocoyu/Resume-Agent.git
cd Resume-Agent
pip install uv
uv pip install -r requirements.txt
cd frontend && npm install && cd ..
复制根目录 .env.example 为 .env:
cp .env.example .env
在 .env 中填入以下核心配置(也可先启动服务,再打开 http://localhost:5173/settings 在「AI 与 OCR 服务配置」面板可视化保存并一键检测连通性):
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
ZHIPU_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx
JWT_SECRET_KEY=replace-with-any-random-string
| 变量名 | 是否必填 | 格式与用途说明 |
|---|---|---|
DEEPSEEK_API_KEY | 必填 | 以 sk- 开头;驱动 AI 对话、简历诊断与导入后的 JSON 结构化组装(DeepSeek 开放平台) |
ZHIPU_API_KEY | 推荐 | 格式为 id.secret(含英文点号 .);驱动 PDF / 图片简历导入的 glm-ocr 版面识别,单份简历 OCR 成本约 ¥0.001(智谱开放平台) |
JWT_SECRET_KEY | 必填 | 本地签名密钥,填入任意随机字符串即可 |
💡 数据库默认使用本地 SQLite,开箱即用。如需切换 PostgreSQL,可在
.env中启用USE_POSTGRESQL=true与POSTGRESQL_URL。前端默认连接http://127.0.0.1:9000,如需自定义可执行cp frontend/.env.example frontend/.env.local。
启动后端 API 与内置 Agent(端口 9000):
python -m uvicorn backend.main:app --host 127.0.0.1 --port 9000
另起终端启动前端开发服务器(端口 5173):
cd frontend && npm run dev
启动后访问:
| 服务 | 本地地址 |
|---|---|
| 🖥️ 前端应用 | http://localhost:5173 |
| ⚙️ 后端 API | http://127.0.0.1:9000 |
| 📖 Swagger 接口文档 | http://127.0.0.1:9000/docs |
前端类型检查与生产构建:
cd frontend && npm run build
后端单元测试:
python -m pytest backend/tests/ -q
无需本地安装 Python / Node / XeLaTeX,一条命令拉起完整服务(后端镜像内置 XeLaTeX 中文编译环境与 Adobe 中文字体)。
cp .env.example .env
在 .env 中填入 DEEPSEEK_API_KEY(必填)、ZHIPU_API_KEY(推荐,PDF/图片导入)与 JWT_SECRET_KEY,Docker Compose 会自动读取并注入后端容器;也可启动后在 http://localhost/settings 页面可视化配置并热更新。
docker compose up -d --build
启动完成后访问:
| 服务 | 地址 |
|---|---|
| 🖥️ 前端应用 | http://localhost |
| ⚙️ 后端 API | http://localhost:9000(`BACKEND_PORT` 可改) |
| 📖 Swagger 接口文档 | http://localhost:9000/docs |
前端 Nginx 已配置 /api/ 反向代理与 SSE 流式透传(proxy_buffering off),AI 对话与 PDF 渲染进度实时输出,无需任何额外配置。
| 宿主机目录 | 容器挂载点 | 内容 |
|---|---|---|
./data/ | /app/data | SQLite 数据库(resume.db)与用户数据 |
./logs/ | /app/logs | 后端 / LaTeX 编译 / 前端日志 |
容器重建(docker compose down && up)后数据与日志不丢失;彻底清空数据请手动删除 ./data 与 ./logs 目录。
需要统一身份认证(Next.js BetterAuth + PostgreSQL)时,以 auth profile 启动:
docker compose --profile auth up -d --build
将额外拉起 postgres:16-alpine(数据落在 pgdata 卷)与 web 认证服务(http://localhost:3000),并在 .env 中补充共享密钥:
FASTAPI_INTERNAL_AUTH_SECRET=与-web-一致的内部签名密钥
BETTER_AUTH_SECRET=BetterAuth-Cookie-签名密钥
| 变量 | 默认值 | 说明 |
|---|---|---|
FRONTEND_PORT | 80 | 前端(Nginx)对外端口 |
BACKEND_PORT | 9000 | 后端 API 对外端口 |
WEB_PORT | 3000 | 认证服务对外端口(auth profile) |
POSTGRES_PASSWORD | resume_auth_password | 认证库密码(auth profile,生产环境务必修改) |
DEEPSEEK_API_KEY | 空 | AI 对话 / 诊断 / 结构化生成 |
ZHIPU_API_KEY | 空 | PDF / 图片简历 OCR 导入 |
JWT_SECRET_KEY | 占位值 | 本地签名密钥 |
其他后端环境变量(RUOLI_API_KEY、COS_SECRET_KEY 等)同样在 .env 中配置后自动透传进容器;完整清单见 .env.example。
欢迎通过 Issues 反馈问题或提交 Pull Requests。如果本项目对你有帮助,欢迎点亮右上角 ⭐ Star 支持!
本项目基于 MIT License 开源。