generated from kgod/ai-review-template
feat: builder 简历生成 + 轻度优化 + 简历导入交付副本
自内部仓库剥离深度优化与 RAG 知识库后的交付版本: - Builder 对话式简历生成(FSM + 意图路由 LLM 兜底增强) - 条目级轻度优化:事实覆盖门禁 + STAR/bullet 修复链,功能/简介/成果与技术栈同级保护 - 简历导入:DOCX/PDF 解析、结构归一、手机号脱敏 - PostgreSQL 运行时 + Alembic 迁移链 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 部署说明(试点期)
|
||||
|
||||
## 结论:试点不需要容器编排
|
||||
|
||||
单台机器即可跑起完整服务:一个后端进程 + 一个 PostgreSQL + 前端静态文件。
|
||||
后续接入 officeπ 主站时再按公司标准容器化(Dockerfile 可在那时补)。
|
||||
|
||||
## 组成
|
||||
|
||||
| 组件 | 形式 | 说明 |
|
||||
|---|---|---|
|
||||
| 后端 | `python -m uvicorn app.asgi:application --port 8000` | 单进程;试点量级无需多 worker |
|
||||
| 数据库 | PostgreSQL(5435 或公司实例) | `alembic upgrade head` 建表;存量 SQLite 用 `scripts/migrate_sqlite_to_postgres.py` 迁移 |
|
||||
| 前端 | `npm run build` → `frontend/dist` | Nginx/静态托管;通过 `VITE_API_BASE_URL` 指向后端 |
|
||||
|
||||
## 环境变量(backend/.env)
|
||||
|
||||
| 变量 | 必填 | 说明 |
|
||||
|---|---|---|
|
||||
| `OPENAI_API_KEY` | 是(AI 功能) | 兼容网关密钥;留空则全部走规则兜底(仅演示流程) |
|
||||
| `OPENAI_BASE_URL` / `OPENAI_MODEL` | 是 | 网关地址与模型 |
|
||||
| `DATABASE_URL` | 生产必填 | `postgresql+psycopg://user:pass@host:5435/resume_agent` |
|
||||
| `RESUME_AGENT_TEST_DATABASE_URL` | 仅测试 | 测试库 |
|
||||
| `RESUME_AGENT_CORS_ORIGINS` | 生产必填 | 逗号分隔的前端来源,接入 officeπ 时加其域名 |
|
||||
| `RESUME_AGENT_INTENT_ROUTER_MODE` | 建议 `on` | 对话意图路由(off/shadow/on) |
|
||||
|
||||
## 安全红线(试点必须遵守)
|
||||
|
||||
1. **服务无内置认证**:所有接口可匿名调用。只能发布在内网/办公网,或置于带鉴权的网关之后;接入 officeπ 前需补用户绑定与归属校验。
|
||||
2. **不要设置** `RESUME_AGENT_DEFAULT_TIER=vip`:该开关会把所有会话默认提权(后门告警会打日志)。
|
||||
3. **不要设置** `RESUME_AGENT_API_DOCS=1`:生产暴露 `/docs` 等于公开 API 结构。
|
||||
4. 密钥只放 `.env`(已被 gitignore);仓库内不得出现明文令牌。
|
||||
5. 简历文件含用户 PII:`backend/data/`(上传件、SQLite)不得外传、不得提交。
|
||||
|
||||
## 健康检查
|
||||
|
||||
`GET /health` 恒返回 `{"status": "ok"}`,供探活。
|
||||
Reference in New Issue
Block a user