36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
"""求职助手 Agent 对话接口"""
|
|
|
|
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.job_agent_chat import JobAgentChatParam, OptimizeResumeParam
|
|
from app.services.job_agent_chat_service import JobAgentChatService
|
|
|
|
router = APIRouter(prefix="/job-agent", tags=["求职助手agent"])
|
|
|
|
|
|
@router.post("/chat", summary="求职助手对话")
|
|
async def chat(param: JobAgentChatParam):
|
|
"""求职助手对话,根据用户简历和意向提供求职建议、触发岗位推荐或偏好调整"""
|
|
user_id = RequestContext.user_id.get()
|
|
async for session in get_db():
|
|
service = JobAgentChatService(session)
|
|
result = await service.chat(
|
|
user_id, param.resume_id, param.message,
|
|
[msg.model_dump() for msg in param.history],
|
|
param.job_categories, param.regions, param.industries,
|
|
)
|
|
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
|