ciyidogan commited on
Commit
b69c342
Β·
verified Β·
1 Parent(s): 2eebdb5

Update session.py

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