Travel_Assistant / modules /session_manager.py
Eliot0110's picture
improve: 优化模型调用并对各组件升级
af60cba
raw
history blame
1.42 kB
# modules/session_manager.py
import uuid
from typing import Dict, Any
class SessionManager:
def __init__(self):
self.sessions: Dict[str, Dict[str, Any]] = {}
def get_or_create_session(self, session_id: str = None) -> Dict[str, Any]:
if not session_id or session_id not in self.sessions:
session_id = str(uuid.uuid4())[:8]
self.sessions[session_id] = {
"session_id": session_id,
"destination": None,
"duration": None,
"persona": None,
"stage": "greeting" # 对话状态机
}
return self.sessions[session_id]
def update_session(self, session_id: str, updates: Dict[str, Any]):
if session_id in self.sessions:
self.sessions[session_id].update(updates)
def format_session_info(self, session_state: dict) -> str:
parts = [f"ID: {session_state.get('session_id', 'N/A')}"]
if session_state.get('destination'): parts.append(f"目的地: {session_state['destination']['name']}")
if session_state.get('duration'): parts.append(f"天数: {session_state['duration']['days']}")
if session_state.get('persona'): parts.append(f"风格: {session_state['persona']['name']}")
return " | ".join(parts)
def reset(self, session_id: str):
if session_id in self.sessions:
del self.sessions[session_id]