Files
offerpai_python_ai/app/api/resume.py
T
2026-04-02 16:01:08 +08:00

26 lines
962 B
Python

"""简历上传解析接口"""
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}