Integrate TranskribusHTRModels

This commit is contained in:
Patrick Jentsch
2022-04-22 15:27:52 +02:00
parent 9d4001f469
commit ccdd0d3faa
13 changed files with 409 additions and 25 deletions

View File

@ -3,11 +3,10 @@ import os
import yaml
services_file = os.path.join(
os.path.dirname(os.path.abspath(__file__)), 'services.yml')
services_file = \
os.path.join(os.path.dirname(os.path.abspath(__file__)), 'services.yml')
with open(services_file, 'r') as f:
SERVICES = yaml.safe_load(f)
bp = Blueprint('services', __name__)
from . import routes # noqa

View File

@ -1,4 +1,4 @@
from app.models import TesseractOCRModel
from app.models import TesseractOCRModel, TranskribusHTRModel
from flask_login import current_user
from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileRequired
@ -115,11 +115,10 @@ class AddTranskribusHTRPipelineJobForm(AddJobForm):
if 'binarization' in service_info['methods']:
if 'disabled' in self.binarization.render_kw:
del self.binarization.render_kw['disabled']
models = TranskribusHTRModel.query.filter_by(shared=True).all()
models += TranskribusHTRModel.query.filter_by(shared=False, user=current_user).all()
self.model.choices = [('', 'Choose your option')]
self.model.choices += [
('37569', 'Tim Model'),
('29539', 'UCLUniversity of Toronto #7')
]
self.model.choices += [(x.hashid, x.transkribus_name) for x in models]
self.model.default = ''
self.version.choices = [(x, x) for x in service_manifest['versions']]
self.version.data = version

View File

@ -1,5 +1,12 @@
from app import db, hashids
from app.models import Job, JobInput, JobStatus
from app.models import (
Job,
JobInput,
JobStatus,
TesseractOCRModel,
TRANSKRIBUS_HTR_MODELS,
TranskribusHTRModel
)
from flask import (
abort,
current_app,
@ -74,7 +81,7 @@ def file_setup_pipeline():
flash(f'Job "{job.title}" added', 'job')
return make_response({'redirect_url': url_for('jobs.job', job_id=job.id)}, 201) # noqa
return render_template(
f'services/{service.replace("-", "_")}.html.j2',
'services/file_setup_pipeline.html.j2',
form=form,
title=service_manifest['name']
)
@ -133,9 +140,11 @@ def tesseract_ocr_pipeline():
db.session.commit()
flash(f'Job "{job.title}" added', 'job')
return make_response({'redirect_url': url_for('jobs.job', job_id=job.id)}, 201) # noqa
tesseract_ocr_models = TesseractOCRModel.query.all()
return render_template(
f'services/{service.replace("-", "_")}.html.j2',
'services/tesseract_ocr_pipeline.html.j2',
form=form,
tesseract_ocr_models=tesseract_ocr_models,
title=service_manifest['name']
)
@ -155,7 +164,7 @@ def transkribus_htr_pipeline():
if not form.validate():
return make_response(form.errors, 400)
service_args = {}
service_args['model'] = form.model.data
service_args['model'] = hashids.decode(form.model.data)
if form.binarization.data:
service_args['binarization'] = True
job = Job(
@ -195,10 +204,14 @@ def transkribus_htr_pipeline():
db.session.commit()
flash(f'Job "{job.title}" added', 'job')
return make_response({'redirect_url': url_for('jobs.job', job_id=job.id)}, 201) # noqa
transkribus_htr_models = TranskribusHTRModel.query.filter_by(shared=True).all()
transkribus_htr_models += TranskribusHTRModel.query.filter_by(shared=False, user=current_user).all()
return render_template(
f'services/{service.replace("-", "_")}.html.j2',
f'services/transkribus_htr_pipeline.html.j2',
form=form,
title=service_manifest['name']
title=service_manifest['name'],
TRANSKRIBUS_HTR_MODELS=TRANSKRIBUS_HTR_MODELS,
transkribus_htr_models=transkribus_htr_models
)
@ -256,7 +269,7 @@ def spacy_nlp_pipeline():
flash(f'Job "{job.title}" added', 'job')
return make_response({'redirect_url': url_for('jobs.job', job_id=job.id)}, 201) # noqa
return render_template(
f'services/{service.replace("-", "_")}.html.j2',
'services/spacy_nlp_pipeline.html.j2',
form=form,
title=service_manifest['name']
)