Spaces:
Sleeping
Sleeping
| from llm_tool import llm | |
| from notification_tool import send_email_reminder | |
| from calendar_tool import get_calendar_service, add_to_calendar | |
| class TaskAgent: | |
| def __init__(self): | |
| self.tasks = [] | |
| self.calendar_service = get_calendar_service() | |
| def add_task(self, name, description, email): | |
| suggestion = self._safe_get_deadline(description) | |
| deadline = self._extract_field(suggestion, "Recommended Deadline") | |
| priority = self._extract_field(suggestion, "Priority") | |
| self.tasks.append({ | |
| "name": name, | |
| "description": description, | |
| "deadline": deadline or "2024-12-31 23:59", | |
| "priority": priority or "Medium", | |
| "status": "Pending", | |
| "email": email | |
| }) | |
| if self.calendar_service: | |
| add_to_calendar(self.calendar_service, name, deadline) | |
| return suggestion | |
| def _safe_get_deadline(self, description): | |
| try: | |
| return llm.get_deadline_suggestion(description) | |
| except Exception as e: | |
| return f"LLM unavailable: {str(e)}. Set deadline manually." | |
| def _extract_field(self, text, field): | |
| for line in text.split("\n"): | |
| if field in line: | |
| return line.split(":", 1)[-1].strip() | |
| return None | |
| # This line is CRITICAL — don't remove it | |
| agent = TaskAgent() |