from loguru import logger try: from struct_eqtable.model import StructTable except ImportError: logger.error("StructEqTable is under upgrade, the current version does not support it.") from pypandoc import convert_text class StructTableModel: def __init__(self, model_path, max_new_tokens=2048, max_time=400, device = 'cpu'): # init self.model_path = model_path self.max_new_tokens = max_new_tokens # maximum output tokens length self.max_time = max_time # timeout for processing in seconds if device == 'cuda': self.model = StructTable(self.model_path, self.max_new_tokens, self.max_time).cuda() else: self.model = StructTable(self.model_path, self.max_new_tokens, self.max_time) def image2latex(self, image) -> str: table_latex = self.model.forward(image) return table_latex def image2html(self, image) -> str: table_latex = self.image2latex(image) table_html = convert_text(table_latex, 'html', format='latex') return table_html