26 lines
896 B
Python
26 lines
896 B
Python
"""Nova Chat 对话接口"""
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from app.core.context import RequestContext
|
|
from app.core.database import get_db
|
|
from app.schemas.nova_chat import NovaChatParam, NovaChatDto
|
|
|
|
router = APIRouter(prefix="/nova-chat", tags=["Nova对话助手"])
|
|
|
|
|
|
@router.post("/chat", summary="Nova对话", response_model=NovaChatDto)
|
|
async def chat(param: NovaChatParam):
|
|
"""Nova 求职对话,根据用户简历和岗位上下文(可选)提供求职分析与建议"""
|
|
from app.services.nova_chat_service import NovaChatService
|
|
|
|
user_id = RequestContext.user_id.get()
|
|
async for session in get_db():
|
|
service = NovaChatService(session)
|
|
result = await service.chat(
|
|
user_id, param.resume_id, param.message,
|
|
[msg.model_dump() for msg in param.history],
|
|
param.job_id,
|
|
)
|
|
return NovaChatDto(message=result)
|