常见问题
上传多份简历出现 504
现象:
html
504 Gateway Time-out
nginx/1.18.0原因通常是上传请求里包含了耗时解析、LLM 调用和向量写入,超过 Nginx 超时时间。
当前实现已经改为:
- 上传接口先保存文件并创建
parsing记录。 - HTTP 请求快速返回。
- 后端后台逐份解析。
- 前端轮询列表,自动更新
parsed或failed状态。
简历状态是 parsed,但页面显示等待解析结果
原因是 parsed_data.summary 可能为空。前端已经做了兜底展示,会显示姓名、学历、年限、技能等结构化字段。
重复上传导致简历重复
系统使用文件内容的 SHA-256 hash 判断重复。为了防止并发请求同时插入,上传流程使用 PostgreSQL advisory lock 对同一岗位、同一 hash 做串行化处理。
如果历史数据已经重复,可以在前端逐个删除重复简历。删除接口会同步清理:
resumesscreening_results- pgvector 中对应向量文档
- 上传目录中的文件
删除岗位后列表突然为空
如果后端日志出现 SQLAlchemy connection pool timeout,通常是删除流程占用连接太久或请求并发过多。当前删除流程已经把数据库删除和文件系统清理拆开,尽量提前释放数据库连接。
本地很慢,服务器较快
常见原因:
- 本地使用
next dev,首次打开页面会按路由编译。 - 本地到 DashScope 或数据库链路更慢。
- 本地有旧的 Node / Python / Uvicorn 进程残留。
- 生产环境已构建,Next.js 页面无需开发模式编译。
本地可用生产构建验证:
bash
cd frontend
npm run build
npm run start筛选结果不准确
排查顺序:
- 简历是否
parsed。 parsed_data中学历、年限、技能是否正确。- 向量文档是否写入成功。
- 查询是否过于宽泛或过于口语化。
- LLM 精排结果是否返回了 0 分候选人。