api-ta / models.py
Muhammad Risqi Firdaus
add new lang
f452678
from pydantic import BaseModel, Field
from typing import List, Optional, Any, Dict
class Experience(BaseModel):
start: Optional[str] = Field(None, description="Start date in ISO String YYYY-MM-DDTHH:mm:ss.sssZ format")
end: Optional[str] = Field(None, description="End date in ISO String YYYY-MM-DDTHH:mm:ss.sssZ format")
designation: str = Field(...)
company: str = Field(...)
experience_description: str = Field(...)
class Education(BaseModel):
start: Optional[str] = Field(None, description="Start date in ISO String YYYY-MM-DDTHH:mm:ss.sssZ format")
end: Optional[str] = Field(None, description="End date in ISO String YYYY-MM-DDTHH:mm:ss.sssZ format")
major: str = Field(...)
campus: str = Field(...)
gpa: int = Field(None, description="Get the two most significant digit then times by 100, for example 3.41 become 341")
class CVExtracted(BaseModel):
name: str = Field(...)
skills: List[str] = Field(...)
links: List[str] = Field(...)
achievements: List[str] = Field(...)
experiences: List[Experience] = Field(...)
educations: List[Education] = Field(...)
class InsertedText(BaseModel):
text: str
class CVToClassify(BaseModel):
educations: List[dict[str, Any]]
skills: List[str]
experiences: List[dict[str, Any]]
location: str
class JobToClassify(BaseModel):
minYoE: int
jobDesc: str
skills: List[str]
role: str
majors: List[str]
location: str
class Weight(BaseModel):
exp: float
position: float
major: float
skills: float
diffYoe: float
location: float
class JobAndCV(BaseModel):
cv: CVToClassify
job: JobToClassify
weight: Weight
class ClassificationResult(BaseModel):
score: float
class InsertedLink(BaseModel):
link: str
class Evaluation(BaseModel):
score: float = Field(None, description="Float range between [0,1]")
judgement: str = Field(None, description="Give judgement about the score of the interview evaluation.")
class Evaluations(BaseModel):
value: list[Evaluation] = Field(...)
class EvaModul(BaseModel):
competences: list[str]
transcript: list[list[Dict[str,str]]]
lang: str = Field(...)
class EvalResult(BaseModel):
final_score: float
details: list[Evaluation]