40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
"""技能差距分析 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")
|