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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-05 11:08:30 +08:00

38 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 部署说明(试点期)
## 结论:试点不需要容器编排
单台机器即可跑起完整服务:一个后端进程 + 一个 PostgreSQL + 前端静态文件。
后续接入 officeπ 主站时再按公司标准容器化(Dockerfile 可在那时补)。
## 组成
| 组件 | 形式 | 说明 |
|---|---|---|
| 后端 | `python -m uvicorn app.asgi:application --port 8000` | 单进程;试点量级无需多 worker |
| 数据库 | PostgreSQL5435 或公司实例) | `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"}`,供探活。