ciyidogan commited on
Commit
c42d836
Β·
verified Β·
1 Parent(s): 88f2989

Update session.py

Browse files
Files changed (1) hide show
  1. session.py +48 -28
session.py CHANGED
@@ -1,28 +1,48 @@
1
- import uuid
2
-
3
- class Session:
4
- def __init__(self, project_name):
5
- self.session_id = str(uuid.uuid4())
6
- self.project_name = project_name
7
- self.variables = {}
8
- self.auth_tokens = {}
9
- self.last_intent = None
10
- self.awaiting_variable = None
11
- self.chat_history = []
12
-
13
- class SessionStore:
14
- def __init__(self):
15
- self.sessions = {}
16
-
17
- def create_session(self, project_name):
18
- session = Session(project_name)
19
- self.sessions[session.session_id] = session
20
- return session
21
-
22
- def get_session(self, session_id):
23
- return self.sessions.get(session_id)
24
-
25
- def remove_session(self, session_id):
26
- if session_id in self.sessions:
27
- del self.sessions[session_id]
28
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import uuid
2
+ import threading
3
+ from log import log
4
+
5
+
6
+ class Session:
7
+ def __init__(self, project_name):
8
+ self.session_id = str(uuid.uuid4())
9
+ self.project_name = project_name
10
+ self.last_intent = None
11
+ self.variables = {} # Extracted parameters
12
+ self.awaiting_parameters = [] # Still-missing parameters
13
+ self.state = "intent_detection" # intent_detection, parameter_extraction, api_call, humanization
14
+ self.chat_history = [] # [{'role': 'user'/'assistant', 'content': text}]
15
+ self.auth_tokens = {} # Per-API auth tokens
16
+
17
+
18
+ class SessionStore:
19
+ def __init__(self):
20
+ self.sessions = {}
21
+ self.lock = threading.Lock()
22
+
23
+ def create_session(self, project_name):
24
+ with self.lock:
25
+ session = Session(project_name)
26
+ self.sessions[session.session_id] = session
27
+ log(f"πŸ†• Created session: {session.session_id} for project: {project_name}")
28
+ return session
29
+
30
+ def get_session(self, session_id):
31
+ with self.lock:
32
+ return self.sessions.get(session_id)
33
+
34
+ def update_session(self, session_id, **kwargs):
35
+ with self.lock:
36
+ session = self.sessions.get(session_id)
37
+ if not session:
38
+ return None
39
+ for key, value in kwargs.items():
40
+ setattr(session, key, value)
41
+ log(f"πŸ”„ Updated session: {session_id} with {kwargs}")
42
+ return session
43
+
44
+ def remove_session(self, session_id):
45
+ with self.lock:
46
+ if session_id in self.sessions:
47
+ del self.sessions[session_id]
48
+ log(f"❌ Removed session: {session_id}")