Spaces:
Sleeping
Sleeping
| # schemas.py | |
| from pydantic import BaseModel, EmailStr | |
| from typing import List, Literal, Optional, Union | |
| class FetchEmailsParams(BaseModel): | |
| query: str # Natural language query with sender and date info (e.g., "show me mails for last week from swiggy") | |
| class ShowEmailParams(BaseModel): | |
| message_id: str | |
| class AnalyzeEmailsParams(BaseModel): | |
| emails: List[dict] | |
| class DraftReplyParams(BaseModel): | |
| email: dict | |
| tone: Optional[Literal["formal", "informal"]] = "formal" | |
| class SendReplyParams(BaseModel): | |
| message_id: str | |
| reply_body: str | |
| ToolParams = Union[ | |
| FetchEmailsParams, | |
| ShowEmailParams, | |
| AnalyzeEmailsParams, | |
| DraftReplyParams, | |
| SendReplyParams | |
| ] | |
| class PlanStep(BaseModel): | |
| action: Literal[ | |
| "fetch_emails", | |
| "show_email", | |
| "analyze_emails", | |
| "draft_reply", | |
| "send_reply", | |
| "done", | |
| ] | |
| parameters: Optional[ToolParams] = None | |
| class Plan(BaseModel): | |
| plan: List[PlanStep] | |