"""岗位简历技能差距分析 + 定制简历接口""" from fastapi import APIRouter, Depends from app.core.auth import func_permission from app.core.context import RequestContext from app.core.database import get_db from app.schemas.skill_gap import SkillGapParam, CustomizeResumeParam, AiEditParam from app.services.skill_gap_service import SkillGapService router = APIRouter(prefix="/job", tags=["岗位简历"]) @router.post("/skill-gap", summary="技能差距分析") async def skill_gap(param: SkillGapParam): """根据岗位技能标签和用户简历,分析技能差距""" user_id = RequestContext.user_id.get() async for session in get_db(): service = SkillGapService(session) result = await service.analyze_skill_gap(user_id, param.job_id) return result @router.post("/customize-resume", summary="生成定制简历") async def generate_customize_resume(param: CustomizeResumeParam, _: None = Depends(func_permission("resume_custom"))): """根据差距分析结果,AI 生成定制简历""" user_id = RequestContext.user_id.get() async for session in get_db(): service = SkillGapService(session) await service.generate_customize_resume( user_id, param.job_id, param.resume_id, param.optimize_modules, param.add_skills, ) return {"success": True} @router.post("/customize-resume/ai-edit", summary="AI对话编辑定制简历") async def ai_edit_customize_resume(param: AiEditParam): """AI 对话式编辑定制简历""" user_id = RequestContext.user_id.get() # 短事务:查岗位信息 async for session in get_db(): service = SkillGapService(session) result = await service.ai_edit_customize_resume( user_id, param.job_id, param.instruction, [msg.model_dump() for msg in param.chat_history], ) return result