"""技能差距分析 Schema 请求参数 Param。定制简历模型已抽到 customize_resume.py。 字段命名使用 camelCase alias,与前端 JSON 对齐。 """ from typing import Literal from pydantic import BaseModel, Field # 定制简历可优化模块 OptimizeModule = Literal["summary", "skills", "experience"] # ===== 请求参数 ===== class SkillGapParam(BaseModel): job_id: int = Field(..., alias="jobId") class CustomizeResumeParam(BaseModel): job_id: int = Field(..., alias="jobId") resume_id: int = Field(..., alias="resumeId") optimize_modules: list[OptimizeModule] = Field(..., alias="optimizeModules") add_skills: list[str] = Field(default_factory=list, alias="addSkills") ChatRole = Literal["user", "assistant"] class ChatMessage(BaseModel): role: ChatRole content: str class AiEditParam(BaseModel): job_id: int = Field(..., alias="jobId") instruction: str = Field(...) chat_history: list[ChatMessage] = Field(default_factory=list, alias="chatHistory")