StructTableModel.py 1.0 KB

12345678910111213141516171819202122232425262728
  1. from loguru import logger
  2. try:
  3. from struct_eqtable.model import StructTable
  4. except ImportError:
  5. logger.error("StructEqTable is under upgrade, the current version does not support it.")
  6. from pypandoc import convert_text
  7. class StructTableModel:
  8. def __init__(self, model_path, max_new_tokens=2048, max_time=400, device = 'cpu'):
  9. # init
  10. self.model_path = model_path
  11. self.max_new_tokens = max_new_tokens # maximum output tokens length
  12. self.max_time = max_time # timeout for processing in seconds
  13. if device == 'cuda':
  14. self.model = StructTable(self.model_path, self.max_new_tokens, self.max_time).cuda()
  15. else:
  16. self.model = StructTable(self.model_path, self.max_new_tokens, self.max_time)
  17. def image2latex(self, image) -> str:
  18. table_latex = self.model.forward(image)
  19. return table_latex
  20. def image2html(self, image) -> str:
  21. table_latex = self.image2latex(image)
  22. table_html = convert_text(table_latex, 'html', format='latex')
  23. return table_html