LifeFlow-AI / core /session.py
Marco310's picture
feat: Complete UI/UX redesign and fix critical workflow bugs
6b71d3d
raw
history blame
2.05 kB
"""
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
}
@classmethod
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