Spaces:
Running
Running
| """ | |
| LifeFlow AI - Session Management | |
| ✅ 新增 final_report 欄位,用於在 Step 3 和 Step 4 之間傳遞報告內容 | |
| """ | |
| import uuid | |
| from typing import Dict, Any, Optional | |
| from src.agent.base import UserState | |
| from src.infra.config import get_settings | |
| class UserSession: | |
| def __init__(self): | |
| self.session_id: Optional[str] = None | |
| self.planner_agent = None | |
| self.core_team = None | |
| self.user_state: Optional[UserState] = None | |
| self.task_list: list = [] | |
| self.reasoning_messages: list = [] | |
| self.chat_history: list = [] | |
| self.planning_completed: bool = False | |
| # 🔥 新增:儲存 Step 3 生成的完整報告 | |
| self.final_report: str = "" | |
| self.lat: Optional[float] = None | |
| self.lng: Optional[float] = None | |
| self.custom_settings: Dict[str, Any] = {} | |
| self.agno_settings = get_settings() | |
| def to_dict(self) -> Dict[str, Any]: | |
| return { | |
| 'session_id': self.session_id, | |
| 'task_list': self.task_list, | |
| 'reasoning_messages': self.reasoning_messages, | |
| 'chat_history': self.chat_history, | |
| 'planning_completed': self.planning_completed, | |
| 'final_report': self.final_report, # 🔥 序列化 | |
| 'lat': self.lat, | |
| 'lng': self.lng, | |
| 'custom_settings': self.custom_settings | |
| } | |
| def from_dict(cls, data: Dict[str, Any]) -> 'UserSession': | |
| session = cls() | |
| session.session_id = data.get('session_id') | |
| session.task_list = data.get('task_list', []) | |
| session.reasoning_messages = data.get('reasoning_messages', []) | |
| session.chat_history = data.get('chat_history', []) | |
| session.planning_completed = data.get('planning_completed', False) | |
| session.final_report = data.get('final_report', "") # 🔥 反序列化 | |
| session.lat = data.get('lat') | |
| session.lng = data.get('lng') | |
| session.custom_settings = data.get('custom_settings', {}) | |
| return session |