Spaces:
Sleeping
Sleeping
| from pydantic import BaseModel, ConfigDict | |
| from typing import List, Optional, Dict, Any | |
| from uuid import UUID | |
| # --- Request Models --- | |
| class InterviewStartRequest(BaseModel): | |
| target_company: str | |
| job_role: str | |
| interview_style: str | |
| difficulty: str | |
| topic: Optional[str] = None | |
| max_follow_ups: int = 1 # Default to 1 follow-up per question | |
| class ChatRequest(BaseModel): | |
| session_id: str | |
| user_input: Optional[str] = None | |
| audio_file_data: Optional[bytes] = None # For direct file upload if needed, usually handled via UploadFile | |
| class ReportRequest(BaseModel): | |
| session_id: str | |
| # --- Response Models --- | |
| class InterviewStartResponse(BaseModel): | |
| session_id: str | |
| message: str | |
| first_question: str | |
| class ChatResponse(BaseModel): | |
| question: Optional[str] = None | |
| audio_url: Optional[str] = None # URL to TTS audio | |
| feedback: Optional[Dict[str, Any]] = None | |
| user_transcript: Optional[str] = None # Transcribed text from audio | |
| is_finished: bool = False | |
| class ReportResponse(BaseModel): | |
| report_content: str | |