from flask import Flask, render_template, request, send_from_directory #import numpy as np import tensorflow as tf from keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences from keras.models import Sequential from keras.layers import Dense, Embedding, GRU import pickle import re #import logging #logging.basicConfig(filename='inputs.log', level=logging.INFO) def read_pickle(path_in, file_name): tmp=pickle.load(open(path_in + file_name + ".pk", "rb")) return tmp filepath="/root/chatgpt_lstm/" model=tf.keras.models.load_model(filepath+"allmodel") tokenizer=read_pickle(filepath,"alltokenizer") app = Flask(__name__) #app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' #db = SQLAlchemy(app) #class Sentence(db.Model): # id = db.Column(db.Integer, primary_key=True) # text = db.Column(db.String(200), nullable=False) # prediction = db.Column(db.Float, nullable=False) def language(st): chn=re.findall(r'[\u4e00-\u9fff]+',st) chn="".join(chn) eng=re.findall(r'[A-Za-z]+',st) if(len(chn)>len(eng)): return True else: return False def split_chinese(st): try: a=" ".join([*st]) return a except: return "" @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': sentence = str(request.form['sentence']) sentence=sentence.replace("\n","").replace("\r","") #logging.info(f'Input: {sentence}') if language(sentence): sentence=split_chinese(sentence) new_sequences=tokenizer.texts_to_sequences([sentence]) print(sentence) new_data=pad_sequences(new_sequences,maxlen=400) prediction=model.predict(new_data)[0][0] print(prediction) return render_template('index.html', prediction=prediction,sentence=sentence) else: return render_template('index.html') @app.route('/amc', methods=['GET']) def amc(): directory = "/root/chatgpt_lstm/" filename = "amc.pdf" print("in") return send_from_directory(directory, filename, as_attachment=False) #db.create_all() if __name__ == '__main__': context = ('cert.crt', 'private.key') app.run(host='0.0.0.0', port=443,ssl_context=context) #app.run(host='0.0.0.0',port=80)