from pydantic import BaseModel from typing import Optional, List class ConversationTurn(BaseModel): Human_msg: str LLM_response: str class UserInfoRequest(BaseModel): courses: Optional[List[str]] = None deadlines: Optional[List[str]] = None grades: Optional[List[str]] = None instructor_owned_files: Optional[List[str]] = None more_info: Optional[str] = None class ChatRequest(BaseModel): prompt: Optional[str] = None username: str session_id: str role: str top_k: int = 5 source_file: Optional[str] = None bookmark: Optional[str] = None history: Optional[List[ConversationTurn]] = None user_info: Optional[UserInfoRequest]= None