Spaces:
Sleeping
Sleeping
File size: 1,541 Bytes
1cff1e5 03faf26 d50ee26 1cff1e5 03faf26 1cff1e5 03faf26 1cff1e5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | from pydantic import BaseModel
from typing import Optional, List, Dict
class StartInterviewRequest(BaseModel):
role_id: Optional[str] = None
custom_role: Optional[str] = None
interview_type: Optional[str] = "resume"
topic_id: Optional[str] = None
job_description_id: Optional[str] = None
class VerifyResumeJdRequest(BaseModel):
role_id: Optional[str] = None
custom_role: Optional[str] = None
job_description_id: str
class SubmitAnswerRequest(BaseModel):
session_id: str
question_id: str
answer: str
class QuitInterviewRequest(BaseModel):
session_id: str
class InterviewQuestion(BaseModel):
question_id: str
question: str
difficulty: str = "medium"
question_number: int = 1
total_questions: int = 10
class InterviewStartResponse(BaseModel):
session_id: str
question: InterviewQuestion
message: str = "Interview started"
class AnswerResponse(BaseModel):
session_id: str
next_question: Optional[InterviewQuestion] = None
is_complete: bool = False
message: str = ""
class QuitInterviewResponse(BaseModel):
session_id: str
report_generated: bool = False
message: str = ""
class QuestionScore(BaseModel):
question: str
answer: str
score: int
feedback: str
class InterviewReport(BaseModel):
session_id: str
overall_score: int
total_questions: int
strengths: List[str]
weaknesses: List[str]
detailed_scores: List[QuestionScore]
recommendations: List[str]
completed_at: str
|