File size: 781 Bytes
13ac338
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from pydantic import BaseModel
from typing import List, Optional, Dict

class Email(BaseModel):
    id: int
    sender: str
    subject: str
    body: str
    folder: str  # e.g., "Inbox", "Archive", "Spam", "Work"
    priority: int # 1 (high) to 3 (low)

class CalendarEvent(BaseModel):
    title: str
    start_time: str
    end_time: str

class Observation(BaseModel):
    inbox_count: int
    current_email: Optional[Email] = None
    calendar: List[CalendarEvent] = []
    folders: List[str] = ["Inbox", "Archive", "Spam", "Work", "Social"]

class Action(BaseModel):
    type: str  # "MOVE", "DELETE", "REPLY", "SCHEDULE"
    email_id: int
    target_folder: Optional[str] = None
    reply_text: Optional[str] = None

class Reward(BaseModel):
    value: float
    reason: str