FNDCovid / app.py
ZodiUOA's picture
test
9731642
import os
from flask import send_from_directory
from flask import Flask, render_template, request
from transformers import TextClassificationPipeline, AutoTokenizer, AutoModelForSequenceClassification
from transformers import logging
logging.set_verbosity_error()
name = 'ZoDiUOA/C19FND'
tokenizer = AutoTokenizer.from_pretrained(name)
model = AutoModelForSequenceClassification.from_pretrained(name, max_position_embeddings=512)
model.save_pretrained("here")
AutoModelForSequenceClassification.from_pretrained("here")
pipe = TextClassificationPipeline(model=model, tokenizer=tokenizer)
application = app = Flask(__name__)
@application.route('/favicon.ico')
def favicon():
return send_from_directory(os.path.join(app.root_path, 'static'),
'favicon.ico', mimetype='image/vnd.microsoft.icon')
@application.route('/')
def home():
return render_template('home.html')
@application.route('/predict', methods=['POST'])
def predict():
if request.method == 'POST':
input_message = request.form['message']
if len(input_message) >= 511:
input_message = input_message[0:512]
if "" == input_message.strip():
input_message = "Παρακαλώ εισάγετε το κείμενο του άρθρου"
my_input = [input_message]
preds = pipe(my_input, return_all_scores=True)
output_dict = {'Αληθής (ποσοστό)': preds[0][0]['score'], 'Ψευδής (ποσοστό)': preds[0][1]['score']}
print(output_dict)
print(list(output_dict.keys()), list(output_dict.values()))
props = [(round(float(v) * 100, 2)) for v in list(output_dict.values())]
print(props)
return render_template('result.html', mess=input_message, classes=list(output_dict.keys()), props=props)
if __name__ == '__main__':
app.run(debug=True)