"""简历上传解析接口""" from fastapi import APIRouter, UploadFile, File from app.core.context import RequestContext from app.core.database import get_db from app.services.resume_parse_service import ResumeParseService router = APIRouter(prefix="/resume", tags=["简历"]) @router.post("/upload", summary="上传简历文件并AI解析") async def upload_resume(file: UploadFile = File(...)): """上传简历文件(PDF/Word/TXT),AI解析后生成结构化简历,返回简历ID""" user_id = RequestContext.user_id.get() content = await file.read() service = ResumeParseService() # 文件解析 + AI 结构化(不占数据库连接) parsed = await service.parse_and_extract(file.filename, content) # 短事务:只做数据库写入 resume_id = None async for session in get_db(): resume_id = await service.save_resume(session, user_id, file.filename, parsed) return {"resumeId": resume_id}