File size: 933 Bytes
1d95600
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from pydantic import BaseModel
from typing import List, Optional, Dict, Any
from datetime import datetime

class ChatMessage(BaseModel):
    role: str  # "user" or "assistant"
    content: str
    timestamp: datetime = datetime.now()

class ChatSession(BaseModel):
    session_id: str
    messages: List[ChatMessage] = []
    pdf_content: Optional[str] = None
    lecture_content: Optional[str] = None
    created_at: datetime = datetime.now()

class LectureRequest(BaseModel):
    pdf_content: str
    style: str = "academic"  # academic, casual, detailed
    include_examples: bool = True

class LectureResponse(BaseModel):
    title: str
    content: str
    sections: List[Dict[str, Any]]
    word_count: int
    estimated_duration: int  # in minutes

class ProcessingStatus(BaseModel):
    status: str  # "processing", "completed", "error"
    progress: int  # 0-100
    message: str
    result: Optional[Dict[str, Any]] = None