34 lines
1.6 KiB
Python
34 lines
1.6 KiB
Python
"""求职助手 Agent 岗位简历优化接口"""
|
|
|
|
from fastapi import APIRouter, Depends
|
|
|
|
from app.core.asserts import Assert
|
|
from app.core.auth import func_permission
|
|
from app.core.context import RequestContext
|
|
from app.core.database import get_db
|
|
from app.schemas.job_agent_chat import OptimizeResumeParam, MatchScoreParam
|
|
from app.services.job_agent_chat_service import JobAgentChatService
|
|
|
|
router = APIRouter(prefix="/job-agent", tags=["求职助手agent"])
|
|
|
|
|
|
@router.post("/match-score", summary="岗位匹配度评分")
|
|
async def match_score(param: MatchScoreParam):
|
|
"""根据定制简历或原始简历和岗位,从技能/学历/经验维度评估匹配度,返回 0-100 分"""
|
|
Assert.is_true(param.customize_resume_id is not None or param.resume_id is not None, "customizeResumeId 和 resumeId 至少传一个")
|
|
user_id = RequestContext.user_id.get()
|
|
async for session in get_db():
|
|
service = JobAgentChatService(session)
|
|
result = await service.score_match(user_id, param.job_id, param.customize_resume_id, param.resume_id)
|
|
return result
|
|
|
|
|
|
@router.post("/optimize-resume", summary="针对岗位优化简历")
|
|
async def optimize_resume(param: OptimizeResumeParam, _: None = Depends(func_permission("resume_custom"))):
|
|
"""根据目标岗位,AI并发优化简历(summary + 5张子表经历),存Redis并返回"""
|
|
user_id = RequestContext.user_id.get()
|
|
async for session in get_db():
|
|
service = JobAgentChatService(session)
|
|
result = await service.optimize_resume(user_id, param.resume_id, param.job_id)
|
|
return result
|