Spaces:
Sleeping
Sleeping
| 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] = {} | |