Dodana endpointa za sync pridobivanje connlu-jev, ali preprosto file -> text, ali file -> ocr -> text.

This commit is contained in:
Kikimanox
2022-08-31 15:37:04 +02:00
parent c30b014a68
commit f16c78bbdc
6 changed files with 323 additions and 26 deletions
@@ -2,7 +2,6 @@ from tempfile import TemporaryFile
import connexion
import six
# import tika
import requests
import json
from swagger_server import util
@@ -11,19 +10,20 @@ import docx
import codecs
import xml.etree.ElementTree as ET
from PyPDF2 import PdfReader
from swagger_server.classla import cl_utils
tika_server = "http://tika:9998/tika"
tika_server = "http://rsdo.lhrs.feri.um.si:9998/tika"
# endpoint below to be used only for development purposes (don't need to run docker)
# tika_server = "http://rsdo.lhrs.feri.um.si:9998/tika"
def datoteka_v_besedilo_post(file=None): # noqa: E501
"""Pretvori datoteko formata pdf, doc, docx, ppt, xls,... v besedilo
"""Pretvori datoteko formata pdf, doc, docx, ppt, xls,... vraca besedilo
# noqa: E501
:param file:
:param file:
:type file: strstr
:rtype: str
@@ -37,10 +37,9 @@ def datoteka_v_besedilo_post(file=None): # noqa: E501
return str(e), 500
def get_text_ocr(file=None):
def get_text_ocr(file=None): # noqa: E501
"""Pretvori datoteko formata pdf, doc, docx, ppt, xls,... v besedilo s pomočjo ocr razpoznavanja
# noqa: E501
:param file:
@@ -48,13 +47,54 @@ def get_text_ocr(file=None):
:rtype: str
"""
if file is None:
return "No file provided", 400
try:
response = requests.put(tika_server, data=file,
headers={"X-Tika-PDFOcrStrategy": "ocr_only", "X-Tika-OCRLanguage": "slv+eng"})
headers={"X-Tika-PDFOcrStrategy": "ocr_only", "X-Tika-OCRLanguage": "slv+eng"})
return response.text, 200
except Exception as e:
return str(e), 500
def datoteka_v_besedilo_in_classla(file=None): # noqa: E501
"""Pretvori datoteko formata pdf, doc, docx, ppt, xls,... vraca conllu
# noqa: E501
:param file:
:type file: strstr
:rtype: str
"""
if not cl_utils.nlp_loaded:
return "NLP Models still loading up since server restart, please retry later.", 500
if file is None:
return "No file provided", 400
try:
response = requests.put(tika_server, data=file)
return cl_utils.raw_text_to_conllu(response.text)
except Exception as e:
return str(e), 500
def get_conllu_ocr(file=None): # noqa: E501
"""Pretvori datoteko formata pdf, doc, docx, ppt, xls,... v conllu s pomočjo ocr razpoznavanja
# noqa: E501
:param file:
:type file: strstr
:rtype: str
"""
if not cl_utils.nlp_loaded:
return "NLP Models still loading up since server restart, please retry later.", 500
if file is None:
return "No file provided", 400
try:
response = requests.put(tika_server, data=file,
headers={"X-Tika-PDFOcrStrategy": "ocr_only", "X-Tika-OCRLanguage": "slv+eng"})
return cl_utils.raw_text_to_conllu(response.text)
except Exception as e:
return str(e), 500