28 lines
819 B
Python
28 lines
819 B
Python
"""Nova Chat Schema
|
|
|
|
请求参数 Param、响应 Dto。
|
|
字段命名使用 camelCase alias,与前端 JSON 对齐。
|
|
"""
|
|
|
|
from typing import Literal, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
ChatRole = Literal["user", "assistant"]
|
|
|
|
|
|
class ChatMessage(BaseModel):
|
|
role: ChatRole
|
|
content: str
|
|
|
|
|
|
class NovaChatParam(BaseModel):
|
|
message: str = Field(..., description="用户输入的消息")
|
|
resume_id: int = Field(..., alias="resumeId", description="简历ID")
|
|
job_id: Optional[int] = Field(default=None, alias="jobId", description="当前浏览岗位ID,不传则无岗位上下文")
|
|
history: list[ChatMessage] = Field(default_factory=list, description="历史对话,前端维护")
|
|
|
|
|
|
class NovaChatDto(BaseModel):
|
|
message: str = Field(..., description="AI回复,Markdown格式")
|