Zirok05 commited on
Commit
a69fc0b
·
verified ·
1 Parent(s): 2d986f5

Update app/simulation/core/processor.py

Browse files
Files changed (1) hide show
  1. app/simulation/core/processor.py +5 -35
app/simulation/core/processor.py CHANGED
@@ -26,8 +26,8 @@ class ApplicationProcessor:
26
  def __init__(self, lr_model, second_model, second_model_name,
27
  specialists_count=5, # основные специалисты (модели)
28
  business_specialists_count=2, # эксперты (бизнес-правила)
29
- base_processing_time=5,
30
- business_processing_time=10, # эксперты дольше копаются
31
  lr_weight=1.0, second_weight=1.5):
32
  self.lr_model = lr_model
33
  self.second_model = second_model
@@ -66,7 +66,7 @@ class ApplicationProcessor:
66
  def process_batch(self, applications_batch, preprocessor, scaler,
67
  threshold, lr_margins, second_margins, current_time):
68
  """
69
- Обрабатывает батч заявок за текущую минуту (батчевая версия)
70
  """
71
  minute_results = {
72
  'new_apps': len(applications_batch),
@@ -95,13 +95,12 @@ class ApplicationProcessor:
95
  self.stats['business_specialist_busy'].append(minute_results['business_specialists_busy'])
96
  return minute_results
97
 
98
- # 2. Превращаем батч в DataFrame для удобства
99
  df = pd.DataFrame(applications_batch)
100
 
101
- # 3. Применяем бизнес-правила ко всем заявкам (БАТЧЕВО)
102
  manual_mask, auto_reject_mask, messages, auto_decisions = check_business_rules(df)
103
 
104
- # Сохраняем статистику по бизнес-правилам
105
  business_manual_count = manual_mask.sum()
106
  business_auto_count = auto_reject_mask.sum()
107
 
@@ -186,12 +185,6 @@ class ApplicationProcessor:
186
  second_confident_count = stats['second_confident']
187
  second_uncertain_count = stats['second_uncertain']
188
 
189
- # print(f"Статистика батча: бизнес-ручной={business_manual_count}, "
190
- # f"бизнес-отказ={business_auto_count}, "
191
- # f"LR уверен={lr_confident_count}, "
192
- # f"вторая уверен={second_confident_count}, "
193
- # f"вторая не уверен={second_uncertain_count}")
194
-
195
  # Распределяем результаты по исходным индексам
196
  for local_idx, orig_idx in enumerate(model_indices):
197
  decision = batch_decisions[local_idx]
@@ -314,26 +307,3 @@ class ApplicationProcessor:
314
  'auto': self.stats['business_rules_auto']
315
  }
316
  }
317
-
318
- # def reset(self):
319
- # self.specialists = [0] * self.specialists_count
320
- # self.business_specialists = [0] * self.business_specialists_count
321
- # self.manual_queue = []
322
- # self.business_queue = []
323
- # self.stats = {
324
- # 'total_processed': 0,
325
- # 'auto_approved': 0,
326
- # 'auto_declined': 0,
327
- # 'manual_sent': 0,
328
- # 'manual_processed': 0,
329
- # 'business_manual_sent': 0,
330
- # 'business_manual_processed': 0,
331
- # 'queue_history': [],
332
- # 'business_queue_history': [],
333
- # 'wait_times': [],
334
- # 'business_wait_times': [],
335
- # 'specialist_busy': [],
336
- # 'business_specialist_busy': [],
337
- # 'business_rules_manual': 0,
338
- # 'business_rules_auto': 0
339
- # }
 
26
  def __init__(self, lr_model, second_model, second_model_name,
27
  specialists_count=5, # основные специалисты (модели)
28
  business_specialists_count=2, # эксперты (бизнес-правила)
29
+ base_processing_time=5, # время рассмотрения анкет от моделей
30
+ business_processing_time=10, # время рассмотрения анкет от бизнес-правил
31
  lr_weight=1.0, second_weight=1.5):
32
  self.lr_model = lr_model
33
  self.second_model = second_model
 
66
  def process_batch(self, applications_batch, preprocessor, scaler,
67
  threshold, lr_margins, second_margins, current_time):
68
  """
69
+ Обрабатывает батч заявок за текущую минуту
70
  """
71
  minute_results = {
72
  'new_apps': len(applications_batch),
 
95
  self.stats['business_specialist_busy'].append(minute_results['business_specialists_busy'])
96
  return minute_results
97
 
 
98
  df = pd.DataFrame(applications_batch)
99
 
100
+ # 2. Применяем бизнес-правила ко всем заявкам
101
  manual_mask, auto_reject_mask, messages, auto_decisions = check_business_rules(df)
102
 
103
+ # 3. Сохраняем статистику по бизнес-правилам
104
  business_manual_count = manual_mask.sum()
105
  business_auto_count = auto_reject_mask.sum()
106
 
 
185
  second_confident_count = stats['second_confident']
186
  second_uncertain_count = stats['second_uncertain']
187
 
 
 
 
 
 
 
188
  # Распределяем результаты по исходным индексам
189
  for local_idx, orig_idx in enumerate(model_indices):
190
  decision = batch_decisions[local_idx]
 
307
  'auto': self.stats['business_rules_auto']
308
  }
309
  }