def update_bert(session): assert type(session) is str # download qa database from database. try: logger.info('get the latest knowledge from wd_qa_knowledge...') db = MySQLdb.connect(host=db_host, user=db_usr, passwd=db_psw, db=db_name, charset='utf8') sql = "select question,answer from wd_qa_knowledge" cur = db.cursor() cur.execute(sql.encode('utf-8')) qa = str() for row in cur.fetchall(): qa += row[0] + "\t" + row[1] + "\n" with open("question_answer.txt", "wb") as f: f.write(qa.encode('utf-8')) db.commit() db.close() except Exception as e: logger.error(e) response = jsonify({'status': 'failure'}) socketio.emit('msg', namespace='/socket', room=session, data=response) return # generate dataset. try: logger.info('generating training set...') from subprocess import call call( ["./create_dataset", "-i", "question_answer.txt", "-o", "dataset"]) except Exception as e: logger.error(e) response = jsonify({'status': 'failure'}) socketio.emit('msg', namespace='/socket', room=session, data=response) return # finetune model logger.info('training...') from Predictor import Predictor predictor = Predictor() predictor.finetune('dataset') response = jsonify({"status": "success"}) socketio.emit('msg', namespace='/socket', room=session, data=response)