83 lines
2.7 KiB
Python
83 lines
2.7 KiB
Python
import connexion
|
|
import six
|
|
|
|
from swagger_server.models.oznaci_besedilo_async_body import OznaciBesediloAsyncBody # noqa: E501
|
|
from swagger_server import util
|
|
from swagger_server.classla import cl_utils
|
|
from swagger_server.requets_db.models.vrsta import (Job, JobManager)
|
|
import swagger_server.controllers.doc2text_controller as d2t
|
|
|
|
|
|
def get_text(body): # noqa: E501
|
|
"""Označi besedilo s classlo/stanzo z uporabo slovenskih modelov ter vrne conll-u format
|
|
|
|
# noqa: E501
|
|
|
|
:param body:
|
|
:type body: dict | bytes
|
|
|
|
:rtype: str
|
|
"""
|
|
if connexion.request.is_json:
|
|
body = OznaciBesediloAsyncBody.from_dict(connexion.request.get_json()) # noqa: E501
|
|
# conllu = cl_utils.raw_text_to_conllu(body.besedilo)
|
|
# return conllu
|
|
job, is_old_job = JobManager.create_job(1, body.besedilo)
|
|
if job is None:
|
|
return "Something went wrong", 500
|
|
ret = {'check_job_url': f'{connexion.request.url_root}/job/{job.id}'}
|
|
|
|
return ret, 200 # Todo: Update swagger to the newest response template later
|
|
|
|
|
|
def get_text_from_file(file=None): # noqa: E501
|
|
"""Pretvori datoteko v besedilo in označi s classlo/stanzo z uporabo slovenskih modelov ter vrne conll-u format
|
|
|
|
# noqa: E501
|
|
|
|
:param file:
|
|
:type file: strstr
|
|
|
|
:rtype: str
|
|
"""
|
|
if file is None:
|
|
return "No file provided", 400
|
|
txt, status = d2t.extract_text_prepResp(file)
|
|
# Todo: instead of parsing text here, instead save the file into the tb or locally, and then parsing
|
|
# Todo: when the job actually executes (this version of the implementation is temporary)
|
|
|
|
if status == 200:
|
|
job, is_old_job = JobManager.create_job(1, txt)
|
|
if job is None:
|
|
return "Something went wrong", 500
|
|
ret = {'check_job_url': f'{connexion.request.url_root}/job/{job.id}'}
|
|
return ret, 200
|
|
else:
|
|
return "Something went wrong", 500
|
|
|
|
|
|
def get_text_from_file_ocr(file=None): # noqa: E501
|
|
"""Pretvori datoteko v besedilo s pomočjo ocr razpoznavanja in označi s classlo/stanzo z uporabo slovenskih modelov ter vrne conll-u format
|
|
|
|
# noqa: E501
|
|
|
|
:param file:
|
|
:type file: strstr
|
|
|
|
:rtype: str
|
|
"""
|
|
if file is None:
|
|
return "No file provided", 400
|
|
txt, status = d2t.ocr_text_prepResp(file)
|
|
# Todo: instead of ocr-ing text here, instead save the file into the tb or locally, and then ocr
|
|
# Todo: when the job actually executes (this version of the implementation is temporary)
|
|
|
|
if status == 200:
|
|
job, is_old_job = JobManager.create_job(1, txt)
|
|
if job is None:
|
|
return "Something went wrong", 500
|
|
ret = {'check_job_url': f'{connexion.request.url_root}/job/{job.id}'}
|
|
return ret, 200
|
|
else:
|
|
return "Something went wrong", 500
|