Spaces:
Sleeping
Sleeping
File size: 1,435 Bytes
49d34d1 f892d0d 49d34d1 5f214e4 49d34d1 5f214e4 49d34d1 | 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 | from pydantic import BaseModel
from typing import Optional, List, Dict, Any
from enum import Enum
class ActionType(str, Enum):
CLASSIFY = "classify"
RESPOND = "respond"
ESCALATE = "escalate"
ARCHIVE = "archive"
SKIP = "skip"
class Category(str, Enum):
BILLING = "billing"
TECHNICAL = "technical"
GENERAL = "general"
SPAM = "spam"
ACCOUNT = "account"
FEATURE_REQUEST = "feature_request"
class Urgency(str, Enum):
HIGH = "high"
MEDIUM = "medium"
LOW = "low"
class Action(BaseModel):
action_type: ActionType
category: Optional[Category] = None
urgency: Optional[Urgency] = None
response_text: Optional[str] = None
escalation_reason: Optional[str] = None
email_id: Optional[str] = None
class Email(BaseModel):
id: str
subject: str
body: str
sender: str
sender_tier: str = "standard"
received_minutes_ago: int = 0
class Observation(BaseModel):
current_email: Optional[Email] = None
email_queue: List[Email] = []
processed_count: int = 0
step_count: int = 0
task_id: str = ""
task_description: str = ""
available_actions: List[str] = []
context: Dict[str, Any] = {}
class Reward(BaseModel):
value: float
components: Dict[str, float] = {}
reason: str = ""
class StepResult(BaseModel):
observation: Observation
reward: Reward
done: bool
info: Dict[str, Any] = {}
|