File size: 1,333 Bytes
9db4439 5ae7a14 9db4439 5ae7a14 9db4439 5ae7a14 9db4439 299c47b 9db4439 5ae7a14 9ea0c0e 9db4439 5ae7a14 9db4439 5ae7a14 9db4439 5ae7a14 9db4439 9ea0c0e 9db4439 9ea0c0e 9db4439 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import os
from transformers import AutoModel, AutoTokenizer
from transformers_modules.RufusRubin777.GOT_OCR2_0_CPU.modeling_GOT import GOTModel, GOTConfig
class OCRModel:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super(OCRModel, cls).__new__(cls)
cls._instance.initialize()
return cls._instance
def initialize(self):
model_path = os.getenv('MODEL_PATH', 'RufusRubin777/GOT-OCR2_0_CPU')
# تحميل النموذج بالطريقة الصحيحة
config = GOTConfig.from_pretrained(model_path)
self.model = GOTModel.from_pretrained(
model_path,
config=config,
local_files_only=False
)
self.tokenizer = AutoTokenizer.from_pretrained(
model_path,
local_files_only=False
)
self.model.eval()
def process_image(self, image_stream):
try:
# فتح الصورة من الذاكرة
image = Image.open(image_stream)
with torch.no_grad():
result = self.model.chat(self.tokenizer, image, ocr_type='format')
return result
except Exception as e:
return f"Error processing image: {str(e)}" |