JeCabrera commited on
Commit
748e5df
·
verified ·
1 Parent(s): c8a5a7f

Update session_state.py

Browse files
Files changed (1) hide show
  1. session_state.py +18 -3
session_state.py CHANGED
@@ -42,6 +42,9 @@ class SessionState:
42
 
43
  if 'system_instruction' not in st.session_state:
44
  st.session_state.system_instruction = None
 
 
 
45
 
46
  # Getters y setters para cada propiedad
47
  @property
@@ -116,6 +119,15 @@ class SessionState:
116
  def system_instruction(self, value):
117
  st.session_state.system_instruction = value
118
 
 
 
 
 
 
 
 
 
 
119
  # Métodos de utilidad
120
  def add_message(self, role, content, avatar=None):
121
  """Añade un mensaje al historial"""
@@ -215,7 +227,7 @@ class SessionState:
215
  chat_id = self.chat_id
216
 
217
  serialized_history = self._serialize_gemini_history(self.gemini_history)
218
- os.makedirs(DATA_DIR, exist_ok=True)
219
  joblib.dump(self.messages, self._st_messages_path(chat_id))
220
  joblib.dump(serialized_history, self._gemini_messages_path(chat_id))
221
 
@@ -235,10 +247,13 @@ class SessionState:
235
  return False
236
 
237
  def _st_messages_path(self, chat_id):
238
- return f'{DATA_DIR}/{chat_id}-st_messages'
239
 
240
  def _gemini_messages_path(self, chat_id):
241
- return f'{DATA_DIR}/{chat_id}-gemini_messages'
 
 
 
242
 
243
  def _serialize_gemini_history(self, history):
244
  """Convierte tipos del SDK (Content/Part) a diccionarios serializables."""
 
42
 
43
  if 'system_instruction' not in st.session_state:
44
  st.session_state.system_instruction = None
45
+
46
+ if 'user_namespace' not in st.session_state:
47
+ st.session_state.user_namespace = 'default'
48
 
49
  # Getters y setters para cada propiedad
50
  @property
 
119
  def system_instruction(self, value):
120
  st.session_state.system_instruction = value
121
 
122
+ @property
123
+ def user_namespace(self):
124
+ return st.session_state.user_namespace
125
+
126
+ @user_namespace.setter
127
+ def user_namespace(self, value):
128
+ sanitized = str(value).replace('/', '_').replace('\\', '_').strip() or 'default'
129
+ st.session_state.user_namespace = sanitized
130
+
131
  # Métodos de utilidad
132
  def add_message(self, role, content, avatar=None):
133
  """Añade un mensaje al historial"""
 
227
  chat_id = self.chat_id
228
 
229
  serialized_history = self._serialize_gemini_history(self.gemini_history)
230
+ os.makedirs(self._user_data_dir(), exist_ok=True)
231
  joblib.dump(self.messages, self._st_messages_path(chat_id))
232
  joblib.dump(serialized_history, self._gemini_messages_path(chat_id))
233
 
 
247
  return False
248
 
249
  def _st_messages_path(self, chat_id):
250
+ return f'{self._user_data_dir()}/{chat_id}-st_messages'
251
 
252
  def _gemini_messages_path(self, chat_id):
253
+ return f'{self._user_data_dir()}/{chat_id}-gemini_messages'
254
+
255
+ def _user_data_dir(self):
256
+ return f'{DATA_DIR}/{self.user_namespace}'
257
 
258
  def _serialize_gemini_history(self, history):
259
  """Convierte tipos del SDK (Content/Part) a diccionarios serializables."""