Spaces:
Runtime error
Runtime error
from flask import session | |
import uuid | |
from datetime import datetime | |
class SessionManager: | |
def __init__(self): | |
self.sessions = {} | |
def create_session(self): | |
"""Crea una nueva sesi贸n""" | |
session_id = str(uuid.uuid4()) | |
session['id'] = session_id | |
self.sessions[session_id] = { | |
'created_at': datetime.now(), | |
'last_activity': datetime.now(), | |
'mode': 'soporte', | |
'model': 'gemini', | |
'tts': 'EDGE', | |
'audio_state': { | |
'is_playing': False, | |
'current_audio': None | |
}, | |
'chat_history': [] | |
} | |
return session_id | |
def get_session(self, session_id=None): | |
"""Obtiene una sesi贸n existente o crea una nueva""" | |
if not session_id: | |
session_id = session.get('id') | |
if not session_id or session_id not in self.sessions: | |
return self.create_session() | |
self.sessions[session_id]['last_activity'] = datetime.now() | |
return session_id | |
def update_session(self, session_id, key, value): | |
"""Actualiza un valor en la sesi贸n""" | |
if session_id in self.sessions: | |
self.sessions[session_id][key] = value | |
self.sessions[session_id]['last_activity'] = datetime.now() | |
def get_session_data(self, session_id, key=None): | |
"""Obtiene datos de la sesi贸n""" | |
if session_id not in self.sessions: | |
return None | |
if key: | |
return self.sessions[session_id].get(key) | |
return self.sessions[session_id] | |
def add_message_to_history(self, session_id, message, sender): | |
"""Agrega un mensaje al historial de la sesi贸n""" | |
if session_id in self.sessions: | |
self.sessions[session_id]['chat_history'].append({ | |
'text': message, | |
'sender': sender, | |
'timestamp': datetime.now() | |
}) | |
def update_audio_state(self, session_id, is_playing=False, current_audio=None): | |
"""Actualiza el estado del audio en la sesi贸n""" | |
if session_id in self.sessions: | |
self.sessions[session_id]['audio_state'] = { | |
'is_playing': is_playing, | |
'current_audio': current_audio | |
} | |
def clear_session(self, session_id): | |
"""Limpia una sesi贸n""" | |
if session_id in self.sessions: | |
del self.sessions[session_id] |