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() |