Spaces:
Runtime error
Runtime error
File size: 2,481 Bytes
186e98e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
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] |