Files
2026-05-14 21:20:59 +08:00

49 lines
1.9 KiB
Python

"""岗位简历技能差距分析 + 定制简历接口"""
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