MenuVision-AI / modules /api_manager.py
Wall06's picture
Create modules/api_manager.py
c5a9fb5 verified
raw
history blame
1.79 kB
import os
import pytesseract
from PIL import Image
from deep_translator import GoogleTranslator, MyMemoryTranslator
# --- OCR MODULE ---
def perform_ocr(image):
"""
Primary: Tesseract OCR (Local)
Backup: Mock/Placeholder (Since Google Vision requires credentials)
"""
try:
# PRIMARY: Tesseract
# Convert image to RGB if necessary
if image.mode != 'RGB':
image = image.convert('RGB')
text = pytesseract.image_to_string(image)
if not text.strip():
# If Tesseract runs but finds nothing, try backup
raise ValueError("Empty result from Tesseract")
return text, "Primary (Tesseract)"
except Exception as e:
print(f"Primary OCR Failed: {e}")
# BACKUP: Fallback logic (Simulated for this demo)
return "Fallback Mode: Unable to read text clearly. (Mock Data: Burger $10, Pizza $12)", "Backup (Simulated)"
# --- TRANSLATION MODULE ---
def translate_text(text, target_lang='es'):
"""
Primary: Google Translate (via deep_translator wrapper)
Backup: MyMemory Translator
"""
if not text or text.strip() == "":
return "", "No Text"
try:
# PRIMARY
translator = GoogleTranslator(source='auto', target=target_lang)
translation = translator.translate(text)
return translation, "Primary (Google)"
except Exception as e:
print(f"Primary Translation Failed: {e}")
try:
# BACKUP
translator = MyMemoryTranslator(source='auto', target=target_lang)
translation = translator.translate(text)
return translation, "Backup (MyMemory)"
except Exception as e2:
return text, "Failed (No API available)"