StructTableModel.py 918 B

123456789101112131415161718192021
  1. from struct_eqtable.model import StructTable
  2. from pypandoc import convert_text
  3. class StructTableModel:
  4. def __init__(self, model_path, max_new_tokens=2048, max_time=400, device = 'cpu'):
  5. # init
  6. self.model_path = model_path
  7. self.max_new_tokens = max_new_tokens # maximum output tokens length
  8. self.max_time = max_time # timeout for processing in seconds
  9. if device == 'cuda':
  10. self.model = StructTable(self.model_path, self.max_new_tokens, self.max_time).cuda()
  11. else:
  12. self.model = StructTable(self.model_path, self.max_new_tokens, self.max_time)
  13. def image2latex(self, image) -> str:
  14. table_latex = self.model.forward(image)
  15. return table_latex
  16. def image2html(self, image) -> str:
  17. table_latex = self.image2latex(image)
  18. table_html = convert_text(table_latex, 'html', format='latex')
  19. return table_html