m7mdal7aj commited on
Commit
0ed508e
1 Parent(s): 3a20d92

Update my_model/state_manager.py

Browse files
Files changed (1) hide show
  1. my_model/state_manager.py +11 -14
my_model/state_manager.py CHANGED
@@ -41,22 +41,22 @@ class StateManager:
41
  """
42
  Sets up user interface widgets for selecting models, settings, and displaying model settings conditionally.
43
  """
44
- disabled=st.session_state['loading_in_progress']
45
- self.col1.selectbox("Choose a method:", ["Fine-Tuned Model", "In-Context Learning (n-shots)"], index=0, key='method', disabled=self.is_widget_disabled)
46
- detection_model = self.col1.selectbox("Choose a model for objects detection:", ["yolov5", "detic"], index=1, key='detection_model', disabled=self.is_widget_disabled)
47
  default_confidence = 0.2 if st.session_state.detection_model == "yolov5" else 0.4
48
- self.set_slider_value(text="Select minimum detection confidence level", min_value=0.1, max_value=0.9, value=default_confidence, step=0.1, slider_key_name='confidence_level', col=self.col1, disabled=self.is_widget_disabled)
49
 
50
  # Conditional display of model settings
51
 
52
 
53
- show_model_settings = self.col3.checkbox("Show Model Settings", False)
54
  if show_model_settings:
55
  self.display_model_settings()
56
 
57
 
58
 
59
- def set_slider_value(self, text, min_value, max_value, value, step, slider_key_name, col=None, disabled=False):
60
  """
61
  Creates a slider widget with the specified parameters, optionally placing it in a specific column.
62
 
@@ -71,9 +71,9 @@ class StateManager:
71
  """
72
 
73
  if col is None:
74
- return st.slider(text, min_value, max_value, value, step, key=slider_key_name, disabled=disabled)
75
  else:
76
- return col.slider(text, min_value, max_value, value, step, key=slider_key_name, disabled=disabled)
77
 
78
  @property
79
  def is_widget_disabled(self):
@@ -129,14 +129,13 @@ class StateManager:
129
  """
130
 
131
  try:
132
- st.session_state['loading_in_progress'] = True
133
  free_gpu_resources()
134
  st.session_state['kbvqa'] = prepare_kbvqa_model()
135
  st.session_state['kbvqa'].detection_confidence = st.session_state.confidence_level
136
  # Update the previous state with current session state values
137
  st.session_state['previous_state'] = {'method': st.session_state.method, 'detection_model': st.session_state.detection_model, 'confidence_level': st.session_state.confidence_level}
138
  st.session_state['model_loaded'] = True
139
- st.session_state['loading_in_progress'] = False
140
  st.session_state['button_label'] = "Reload Model"
141
  free_gpu_resources()
142
 
@@ -145,7 +144,6 @@ class StateManager:
145
 
146
  def force_reload_model(self):
147
  try:
148
- st.session_state['loading_in_progress'] = True
149
  self.delete_model()
150
  free_gpu_resources()
151
  st.session_state['kbvqa'] = prepare_kbvqa_model(force_reload=True)
@@ -153,7 +151,6 @@ class StateManager:
153
  # Update the previous state with current session state values
154
  st.session_state['previous_state'] = {'method': st.session_state.method, 'detection_model': st.session_state.detection_model, 'confidence_level': st.session_state.confidence_level}
155
  st.session_state['model_loaded'] = True
156
- st.session_state['loading_in_progress'] = False
157
  free_gpu_resources()
158
  except Exception as e:
159
  st.error(f"Error reloading model: {e}")
@@ -223,11 +220,11 @@ class StateManager:
223
  try:
224
  free_gpu_resources()
225
  if self.is_model_loaded():
226
- st.session_state['loading_in_progress'] = True
227
  prepare_kbvqa_model(only_reload_detection_model=True)
228
  st.session_state['kbvqa'].detection_confidence = st.session_state.confidence_level
229
  self.col1.success("Model reloaded with updated settings and ready for inference.")
230
- st.session_state['loading_in_progress'] = False
231
  free_gpu_resources()
232
  except Exception as e:
233
  st.error(f"Error reloading detection model: {e}")
 
41
  """
42
  Sets up user interface widgets for selecting models, settings, and displaying model settings conditionally.
43
  """
44
+
45
+ self.col1.selectbox("Choose a method:", ["Fine-Tuned Model", "In-Context Learning (n-shots)"], index=0, key='method', on_click=self.disable_widgets, disabled=self.is_widget_disabled)
46
+ detection_model = self.col1.selectbox("Choose a model for objects detection:", ["yolov5", "detic"], index=1, key='detection_model', on_click=self.disable_widgets, disabled=self.is_widget_disabled)
47
  default_confidence = 0.2 if st.session_state.detection_model == "yolov5" else 0.4
48
+ self.set_slider_value(text="Select minimum detection confidence level", min_value=0.1, max_value=0.9, value=default_confidence, step=0.1, slider_key_name='confidence_level', col=self.col1)
49
 
50
  # Conditional display of model settings
51
 
52
 
53
+ show_model_settings = self.col3.checkbox("Show Model Settings", False, on_click=self.disable_widgets, disabled=self.is_widget_disabled)
54
  if show_model_settings:
55
  self.display_model_settings()
56
 
57
 
58
 
59
+ def set_slider_value(self, text, min_value, max_value, value, step, slider_key_name, col=None):
60
  """
61
  Creates a slider widget with the specified parameters, optionally placing it in a specific column.
62
 
 
71
  """
72
 
73
  if col is None:
74
+ return st.slider(text, min_value, max_value, value, step, key=slider_key_name, on_click=self.disable_widgets, disabled=self.is_widget_disabledd)
75
  else:
76
+ return col.slider(text, min_value, max_value, value, step, key=slider_key_name, on_click=self.disable_widgets, disabled=self.is_widget_disabled)
77
 
78
  @property
79
  def is_widget_disabled(self):
 
129
  """
130
 
131
  try:
132
+
133
  free_gpu_resources()
134
  st.session_state['kbvqa'] = prepare_kbvqa_model()
135
  st.session_state['kbvqa'].detection_confidence = st.session_state.confidence_level
136
  # Update the previous state with current session state values
137
  st.session_state['previous_state'] = {'method': st.session_state.method, 'detection_model': st.session_state.detection_model, 'confidence_level': st.session_state.confidence_level}
138
  st.session_state['model_loaded'] = True
 
139
  st.session_state['button_label'] = "Reload Model"
140
  free_gpu_resources()
141
 
 
144
 
145
  def force_reload_model(self):
146
  try:
 
147
  self.delete_model()
148
  free_gpu_resources()
149
  st.session_state['kbvqa'] = prepare_kbvqa_model(force_reload=True)
 
151
  # Update the previous state with current session state values
152
  st.session_state['previous_state'] = {'method': st.session_state.method, 'detection_model': st.session_state.detection_model, 'confidence_level': st.session_state.confidence_level}
153
  st.session_state['model_loaded'] = True
 
154
  free_gpu_resources()
155
  except Exception as e:
156
  st.error(f"Error reloading model: {e}")
 
220
  try:
221
  free_gpu_resources()
222
  if self.is_model_loaded():
223
+
224
  prepare_kbvqa_model(only_reload_detection_model=True)
225
  st.session_state['kbvqa'].detection_confidence = st.session_state.confidence_level
226
  self.col1.success("Model reloaded with updated settings and ready for inference.")
227
+
228
  free_gpu_resources()
229
  except Exception as e:
230
  st.error(f"Error reloading detection model: {e}")