joschetan commited on
Commit
ee5afa2
·
verified ·
1 Parent(s): 454aca0

Update vision_engine.py

Browse files
Files changed (1) hide show
  1. vision_engine.py +8 -6
vision_engine.py CHANGED
@@ -5,12 +5,16 @@ from PIL import Image
5
  import torch
6
  from transformers import LayoutLMv3ForTokenClassification, AutoProcessor
7
  from pdf2image import convert_from_bytes
 
8
 
9
- # Hugging Face से हल्का और तेज विजन-डॉक्यूमेंट मॉडल लोड करना (जो Streamlit पर चल सके)
10
  MODEL_NAME = "microsoft/layoutlmv3-base"
11
 
12
- @st.cache_resource
13
  def load_vision_processor_and_model():
 
 
 
14
  try:
15
  processor = AutoProcessor.from_pretrained(MODEL_NAME, apply_ocr=True)
16
  model = LayoutLMv3ForTokenClassification.from_pretrained(MODEL_NAME)
@@ -22,7 +26,7 @@ def load_vision_processor_and_model():
22
  def extract_value_with_vision_layout(pdf_bytes, target_keyword):
23
  """
24
  यह फंक्शन पीडीएफ को विजुअल इमेज में बदलकर LayoutLMv3 मॉडल के जरिए
25
- कीवर्ड और उसके आस-पास के लेआउट को पकर सही वैल्यू एक्सट्रैक्ट करता है।
26
  """
27
  if not pdf_bytes:
28
  return None
@@ -37,7 +41,6 @@ def extract_value_with_vision_layout(pdf_bytes, target_keyword):
37
  # 2. Processor और Model लोड करना
38
  processor, model = load_vision_processor_and_model()
39
  if not processor or not model:
40
- # Fallback यदि मॉडल लोड होने में कोई नेटवर्क/रिसोर्स इशू आए
41
  return None
42
 
43
  # 3. इमेज और टेक्स्ट को मॉडल के अनुकूल तैयार करना
@@ -58,5 +61,4 @@ def extract_value_with_vision_layout(pdf_bytes, target_keyword):
58
  return extracted_result.strip() if extracted_result else None
59
 
60
  except Exception as ex:
61
- # यदि कोई तकनीकी दिक्कत आए तो सिस्टम क्रैश न हो, सुरक्षित रूप से हैंडल हो
62
- return None
 
5
  import torch
6
  from transformers import LayoutLMv3ForTokenClassification, AutoProcessor
7
  from pdf2image import convert_from_bytes
8
+ from functools import lru_cache
9
 
10
+ # Hugging Face से विजन-डॉक्यूमेंट मॉडल लोड करने का कॉन्फिगरशन
11
  MODEL_NAME = "microsoft/layoutlmv3-base"
12
 
13
+ @lru_cache(maxsize=1)
14
  def load_vision_processor_and_model():
15
+ """
16
+ Model aur processor ko memory me cache karta hai taaki baar-baar load na karna pade.
17
+ """
18
  try:
19
  processor = AutoProcessor.from_pretrained(MODEL_NAME, apply_ocr=True)
20
  model = LayoutLMv3ForTokenClassification.from_pretrained(MODEL_NAME)
 
26
  def extract_value_with_vision_layout(pdf_bytes, target_keyword):
27
  """
28
  यह फंक्शन पीडीएफ को विजुअल इमेज में बदलकर LayoutLMv3 मॉडल के जरिए
29
+ कीवर्ड और उसके आस-पास के लेआउट को पढ़कर सही वैल्यू एक्सट्रैक्ट करता है।
30
  """
31
  if not pdf_bytes:
32
  return None
 
41
  # 2. Processor और Model लोड करना
42
  processor, model = load_vision_processor_and_model()
43
  if not processor or not model:
 
44
  return None
45
 
46
  # 3. इमेज और टेक्स्ट को मॉडल के अनुकूल तैयार करना
 
61
  return extracted_result.strip() if extracted_result else None
62
 
63
  except Exception as ex:
64
+ return None