feat: builder 简历生成 + 轻度优化 + 简历导入交付副本

自内部仓库剥离深度优化与 RAG 知识库后的交付版本:
- Builder 对话式简历生成(FSM + 意图路由 LLM 兜底增强)
- 条目级轻度优化:事实覆盖门禁 + STAR/bullet 修复链,功能/简介/成果与技术栈同级保护
- 简历导入:DOCX/PDF 解析、结构归一、手机号脱敏
- PostgreSQL 运行时 + Alembic 迁移链

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
hyp
2026-08-05 11:08:30 +08:00
co-authored by Claude
commit ae2d9b128d
191 changed files with 27719 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
# Resume AgentOfferπ 简历生成 Agent
对话式简历生成服务:引导用户分段填写经历,AI 将用户确认过的事实整理为优化稿,支持导入既有简历继续编辑。本仓库为 MVP 交付范围:
- **简历生成(Builder)**:分板块对话采集(教育/实习/项目/校园/竞赛等),事实→候选稿→确认写入
- **轻度优化**:基于条目已有事实的一键 STAR 优化稿(纯 LLM 改写 + 声明校验,不追加追问)
- **简历导入**:docx/pdf/图片解析为结构化草稿,确认后并入在线简历
- 个人总结生成/再生成、技能推荐、目标岗位设置、条目级编辑/撤销
**当前不包含**:深度优化(多轮追问式)与 RAG 知识库。两者将随深度优化架构重构后单独集成;轻度优化自始不依赖知识库(优化稿仅基于用户已确认事实 + 声明校验)。
## 目录结构
```
backend/ FastAPI 后端(Python 3.11+),SQLite(试点)或 PostgreSQL(生产)
frontend/ Vue 3 + Vite 前端(构建产物为静态文件)
```
## 快速开始
### 后端
```bash
cd backend
python -m pip install -r requirements.txt
cp .env.example .env # 配置 OPENAI_API_KEY / DATABASE_URL 等
python -m uvicorn app.asgi:application --port 8000
```
- `OPENAI_API_KEY` 留空时走规则兜底(可演示流程,无 AI 改写)。
- 生产使用 PostgreSQL:在 `.env` 配置 `DATABASE_URL`,表结构由 Alembic 迁移管理
`alembic upgrade head`;存量 SQLite 数据可用 `scripts/migrate_sqlite_to_postgres.py` 迁移)。
- API 文档默认关闭;仅在开发环境设置 `RESUME_AGENT_API_DOCS=1` 开启 `/docs`
### 前端
```bash
cd frontend
npm ci
npm run build # 产物在 frontend/dist,任意静态服务器/Nginx 托管
npm run dev # 开发模式(默认代理到本机 8000)
```
前端通过 `VITE_API_BASE_URL` 指定后端地址(默认同源 `/ai-api/resume-agent`)。
## 测试
```bash
cd backend
python -m pytest tests -q # 需要 .env 中配置 RESUME_AGENT_TEST_DATABASE_URLPostgres 测试库)
cd frontend
npm run typecheck && npm run build
```
## 部署与安全基线
见 [docs/DEPLOY.md](docs/DEPLOY.md)。要点:试点期单进程 + 单 Postgres 即可,无需容器编排;
服务无内置认证,必须放在内网或网关之后;不要在环境变量中设置
`RESUME_AGENT_DEFAULT_TIER=vip`(会把全量会话提权)。