NOT-OMEGA commited on
Commit
f17175f
Β·
verified Β·
1 Parent(s): aa950c5

Update processor_bert.py

Browse files
Files changed (1) hide show
  1. processor_bert.py +16 -4
processor_bert.py CHANGED
@@ -9,6 +9,7 @@ Kaise kaam karta hai:
9
  """
10
  from __future__ import annotations
11
  import os
 
12
  import numpy as np
13
  import joblib
14
 
@@ -18,6 +19,8 @@ _embedding_model = None
18
  _classifier = None
19
  _ort_session = None
20
  _ort_tokenizer = None
 
 
21
 
22
  MODEL_PATH = os.path.join(os.path.dirname(__file__), 'models', 'log_classifier.joblib')
23
  ONNX_DIR = os.path.join(os.path.dirname(__file__), 'models', 'onnx')
@@ -25,12 +28,18 @@ CONFIDENCE_THRESHOLD = 0.30
25
  DEFAULT_BATCH = 64
26
 
27
 
 
 
 
 
 
28
  def _load_models():
29
- """Lazily load models β€” pehli call pe hi load hoga, baar baar nahi."""
30
- global _USE_ONNX, _embedding_model, _classifier, _ort_session, _ort_tokenizer
31
 
32
- if _classifier is not None:
33
- return # Already loaded
 
34
 
35
  # ── Classifier load karo ───────────────────────────────
36
  if not os.path.exists(MODEL_PATH):
@@ -72,6 +81,9 @@ def _load_models():
72
  _embedding_model = SentenceTransformer('all-MiniLM-L6-v2')
73
  print('[BERT] ⚠️ PyTorch mode (install ONNX for 3-5x speedup)')
74
 
 
 
 
75
 
76
  def _embed_onnx(texts: list[str]) -> np.ndarray:
77
  """ONNX Runtime se embeddings generate karo β€” FAST."""
 
9
  """
10
  from __future__ import annotations
11
  import os
12
+ import threading
13
  import numpy as np
14
  import joblib
15
 
 
19
  _classifier = None
20
  _ort_session = None
21
  _ort_tokenizer = None
22
+ _model_ready = False
23
+ _load_lock = threading.Lock()
24
 
25
  MODEL_PATH = os.path.join(os.path.dirname(__file__), 'models', 'log_classifier.joblib')
26
  ONNX_DIR = os.path.join(os.path.dirname(__file__), 'models', 'onnx')
 
28
  DEFAULT_BATCH = 64
29
 
30
 
31
+ def preload_models():
32
+ """App startup pe background thread mein models load karo."""
33
+ threading.Thread(target=_load_models, daemon=True).start()
34
+
35
+
36
  def _load_models():
37
+ """Lazily load models β€” thread-safe, sirf ek baar load hoga."""
38
+ global _USE_ONNX, _embedding_model, _classifier, _ort_session, _ort_tokenizer, _model_ready
39
 
40
+ with _load_lock:
41
+ if _classifier is not None:
42
+ return # Already loaded
43
 
44
  # ── Classifier load karo ───────────────────────────────
45
  if not os.path.exists(MODEL_PATH):
 
81
  _embedding_model = SentenceTransformer('all-MiniLM-L6-v2')
82
  print('[BERT] ⚠️ PyTorch mode (install ONNX for 3-5x speedup)')
83
 
84
+ _model_ready = True
85
+ print('[BERT] βœ… Models ready!')
86
+
87
 
88
  def _embed_onnx(texts: list[str]) -> np.ndarray:
89
  """ONNX Runtime se embeddings generate karo β€” FAST."""