salomonsky commited on
Commit
186e98e
verified
1 Parent(s): 9f8b4ae

Upload session_manager.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. session_manager.py +73 -0
session_manager.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import session
2
+ import uuid
3
+ from datetime import datetime
4
+
5
+ class SessionManager:
6
+ def __init__(self):
7
+ self.sessions = {}
8
+
9
+ def create_session(self):
10
+ """Crea una nueva sesi贸n"""
11
+ session_id = str(uuid.uuid4())
12
+ session['id'] = session_id
13
+ self.sessions[session_id] = {
14
+ 'created_at': datetime.now(),
15
+ 'last_activity': datetime.now(),
16
+ 'mode': 'soporte',
17
+ 'model': 'gemini',
18
+ 'tts': 'EDGE',
19
+ 'audio_state': {
20
+ 'is_playing': False,
21
+ 'current_audio': None
22
+ },
23
+ 'chat_history': []
24
+ }
25
+ return session_id
26
+
27
+ def get_session(self, session_id=None):
28
+ """Obtiene una sesi贸n existente o crea una nueva"""
29
+ if not session_id:
30
+ session_id = session.get('id')
31
+
32
+ if not session_id or session_id not in self.sessions:
33
+ return self.create_session()
34
+
35
+ self.sessions[session_id]['last_activity'] = datetime.now()
36
+ return session_id
37
+
38
+ def update_session(self, session_id, key, value):
39
+ """Actualiza un valor en la sesi贸n"""
40
+ if session_id in self.sessions:
41
+ self.sessions[session_id][key] = value
42
+ self.sessions[session_id]['last_activity'] = datetime.now()
43
+
44
+ def get_session_data(self, session_id, key=None):
45
+ """Obtiene datos de la sesi贸n"""
46
+ if session_id not in self.sessions:
47
+ return None
48
+
49
+ if key:
50
+ return self.sessions[session_id].get(key)
51
+ return self.sessions[session_id]
52
+
53
+ def add_message_to_history(self, session_id, message, sender):
54
+ """Agrega un mensaje al historial de la sesi贸n"""
55
+ if session_id in self.sessions:
56
+ self.sessions[session_id]['chat_history'].append({
57
+ 'text': message,
58
+ 'sender': sender,
59
+ 'timestamp': datetime.now()
60
+ })
61
+
62
+ def update_audio_state(self, session_id, is_playing=False, current_audio=None):
63
+ """Actualiza el estado del audio en la sesi贸n"""
64
+ if session_id in self.sessions:
65
+ self.sessions[session_id]['audio_state'] = {
66
+ 'is_playing': is_playing,
67
+ 'current_audio': current_audio
68
+ }
69
+
70
+ def clear_session(self, session_id):
71
+ """Limpia una sesi贸n"""
72
+ if session_id in self.sessions:
73
+ del self.sessions[session_id]