# coding=utf-8
import json
import time
from utils.concurrent_utils import extract_many, model_many
from utils.base_util import uncompress_ocr_result, get_text_lines
from utils.dynamic_anchor_log import ta_log
from utils.process_util import process_text_lines
from flask import Flask, request, jsonify
import paddle.fluid as fluid
app = Flask(__name__)
import sys
reload(sys)
sys.setdefaultencoding('UTF-8')
@app.route('/dyanmic/anchor/model',methods=['POST'])
def dyanmic_anchor_model():
time1 = time.time()
try:
data = request.get_json('data')
ta_log.info(data)
configs = json.loads(data['model_label'])
picture_bbox = data['picture_bbox']
ocr_result = data['ocr_result']
all_json = data['all_json_url']
except Exception as e:
ta_log.error(e)
return jsonify({
'data': [],
'message': 'not json type',
'code': 404,
}),'404 not json'
if ocr_result:
ocr_result = uncompress_ocr_result(ocr_result)
if not ocr_result:
return jsonify({
'data': [],
'message': 'not base64',
'code': 404,
}),'404 not base64'
result = process_text_lines(ocr_result)
texts = get_text_lines(result, picture_bbox)
elif all_json:
texts = all_json
else:
return jsonify({
'data':[],
'message': 'empty parsing',
'code':404,
}),'404 empty parsing'
data_list = model_many(configs,texts)
if data_list == -1:
return jsonify({
'data': [],
'message': 'The json url has failed',
'code': 404,
}),'404 The json url has failed'
response_data = {
'data':data_list,
'message':'ok',
'code': 200,
}
time2 = time.time()
all_time = time2 - time1
print all_time
ta_log.info(response_data)
print(response_data)
return jsonify(response_data)
# return json.dumps(response_data)
@app.route('/dyanmic/anchor/extract',methods=['POST'])
def dyanmic_anchor_extract():
time1 = time.time()
try:
data = request.get_json('data')
# print data
ta_log.info(data)
# data['model_message'] = re.sub(r"\\s",r"\\\s",data['model_message'])
msg_dict_list = json.loads(data['model_message'])
picture_bbox = data['picture_bbox']
ocr_result = data['ocr_result']
all_json = data['all_json_url']
except Exception as e:
ta_log.error(e)
return jsonify({
'data': [],
'message': 'not json type',
'code': 404,
}), '404 not json'
if ocr_result:
ocr_result = uncompress_ocr_result(ocr_result)
result = process_text_lines(ocr_result)
texts = get_text_lines(result, picture_bbox)
elif all_json:
texts = all_json
else:
return jsonify({
'data': [],
'message': 'empty parsing',
'code': 404,
}),'404 empty parsing'
data_list = extract_many(msg_dict_list,texts)
if data_list == -1:
return jsonify({
'data': [],
'message': 'The json url has failed',
'code': 404,
}),'404 The json url has failed'
response_data = {
'data': data_list,
'message': 'ok',
'code': 200,
}
time2 = time.time()
all_time = time2 - time1
print all_time
ta_log.info(response_data)
return jsonify(response_data)
@app.route('/',methods=['GET','POST'])
def index():
return jsonify({
'data': [],
'message': 'The json url has failed'
}),'404 The json url has failed'
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True,port=5636)