コード例 #1
0
def api():
    r = request
    data = r.data
    z = np.fromstring(data, dtype=np.float64).reshape((1, 100))

    output_data = get_model_api(z)
    data_path = hashlib.sha256(output_data.tostring()).hexdigest() + '.png'
    scipy.misc.imsave('img/{}'.format(data_path), output_data[0, :, :, :])
    return send_file(os.path.join('img', data_path), mimetype='image/png')
コード例 #2
0
def upload():

    if "file" not in request.files:
        return "No file found!"

    file = request.files["file"]
    print(file)
    file.save(file.filename)
    global algorithm
    global simExperiment
    simExperiment, algorithm = get_model_api(file)

    return "File Uploaded successfully!"
コード例 #3
0
def predict_api():
    """API function that recevies forms input and sends predictions to frontend
    """
    if request.method == 'GET':
        # Show the upload form.
        return render_template('simple_client.html')

    pdf_file = request.files['pdf_file']
    modelPath = request.form['dname']

    if pdf_file.filename == '':
        return '''No file selected.<a href="/predict">Click here to go back.</a>'''
    elif modelPath == '':
        return '''No model selected.<a href="/predict">Click here to go back.</a>'''
    try:
        model = request.form['model']
    except:
        return '''No model selected.<a href="/predict">Click here to go back.</a>'''

    model_dir = modelPath + model
    filename = secure_filename(pdf_file.filename)

    abs_fpath = filename
    session['currentFile'] = filename
    session['modelDirectory'] = model_dir

    pdf_file.save(abs_fpath)

    app.logger.info("api_input: " + str(model_dir))
    model_api = serve.get_model_api(model_dir, abs_fpath)
    os.remove(abs_fpath)

    if (len(model_api) == 0):
        return '''Not Supported.<a href="/predict">Click here to go back.</a>'''
    else:
        return model_api[0].to_json(orient='records', lines=True) + '''
コード例 #4
0
ファイル: app.py プロジェクト: strayMat/tag_serve
parser = optparse.OptionParser()
parser.add_option('-m', '--model', default=os.path.join('pretrained', 'baseline'), help='path/name of the pretrained model to use (default: pretrained/baseline), the conll2003 pretrained model')
parser.add_option('-l', '--language', default='fr', help='Spacy language model for tokenizer (default: en)')
option, args = parser.parse_args()
modelpath = option.model
LANGUAGE = option.language

path2xpt = modelpath+'.xpt'
path2model = modelpath+'.model'

# define the app
app = Flask(__name__)
CORS(app) # cross-domain requests, allow everything by default 

# loading model once and for all the api
model_api = get_model_api(path2xpt, path2model)

# loading tokenizer once and for all for the api
print('Loading spacy tokenizer in '+ LANGUAGE+'....')
tokenizer = myTokenizer(LANGUAGE)

#STATUS = 'live' # live/file

# API live demo route
@app.route('/api', methods=['POST'])
def api():
    input_data = request.json
    app.logger.info('api_input: ' + str(input_data))
    input_client, output_client = model_api(input_data, tokenizer = tokenizer)
    app.logger.info('api_output: ' + str(output_client))
    response = jsonify(input= input_client, output = output_client)
コード例 #5
0
#coding:utf-8
from flask import Flask, request, jsonify
from flask_restful import Api, Resource, reqparse
from serve import get_model_api

# define the app
app = Flask(__name__)

# 先绑定一个api,进行初始化操作
api = Api(app)
model_api = get_model_api()


class NerView(Resource):
    def post(self):
        parser = reqparse.RequestParser()
        # reqparse 是一个类似于WTforms验证的一个模板,用这个模板的时候,需要先进行引用,然后和WTForms的功能就差不了,就是一个验证用户输入的功能。
        parser.add_argument(
            'input_conll',
            type=str,
            help='please input the conll string for entity recognition!',
            required=True)
        # 定义一个username,说明用户需要传入关于username的一个值()后面的都是参数.括号里面的参数可以先不考虑
        args = parser.parse_args()
        # 对用户传入的参数进行解析,不解析的话,是会报错的
        input_conll = args['input_conll']

        output_conll = model_api(input_conll)
        return {"output_conll": output_conll}

コード例 #6
0
import os
import sys
import logging

from flask import Flask, request, jsonify
from flask_cors import CORS

from serve import get_model_api

app = Flask(__name__)
CORS(app)

# Initialise model object
model_api = get_model_api(sys.argv[1])


@app.route('/api', methods=['POST'])
def api():
    # Data from the API POST request will be request.json
    input_data = request.json
    app.logger.info('api_input: ' + str(input_data))
    # Feeding input data to output
    output_data = model_api(input_data)
    app.logger.info('api_output: ' + str(output_data))
    response = jsonify(output_data)
    return response


@app.route('/')
def index():
    return 'It Works!'