flask例子

1.例子:

    https://blog.csdn.net/z564359805/article/details/83474387

def get_embedding(bc,query_list,batch_size = 128,seq_length = 25,embedding_size = 768):
query_embedding = np.zeros((len(query_list), seq_length, embedding_size))
num_data = len(query_list)
num_batches_per_epoch = int((len(query_list) - 1) / batch_size) + 1
for batch_num in range(num_batches_per_epoch):
start_index = batch_num * batch_size
end_index = min((batch_num + 1) * batch_size, num_data)
query_embedding[start_index:end_index] = bc.encode(query_list[start_index:end_index])
return query_embedding


def create_app(self): app = Flask(__name__) @app.route('/query/', methods=['POST', 'GET']) def inference(): try: #用get方式传入,url带?的传参方式,如果传入多个参数,用逗号分割 if request.method == "GET": query = request.args.to_dict() query_list = [] for v in query.values(): query_list.extend(v.split(',')) #用post方式传入,用curl命令传参. else: query = request.get_data() json_query = json.loads(query.decode("utf-8")) query_list = json_query['query'] #传入的文本通过get_embedding 方式获取batch_size个bert embedding batch_size = 128 query_embedding = get_embedding(self.bert_client, query_list, batch_size) #训练的模型预测方法scorer.predict,inference获取query的分数. scores = scorer.predict(query_embedding) #用json方式打印分数 res = json.dumps(zip(query_list, map(lambda x: str(x[0]), scores))).decode('unicode_escape') return str(res) except Exception as ex: print(ex) return "please use post or get request to retry" return app def run(self): app = self.create_app() app.run(port=self.port, host=self.host, threaded=True)

测试时:

get方式:

比如port = 127.0.0.1,host = 5000

输入网址: http://127.0.0.1:5000/queryr/?query=汶川大地震,gpu,为什么

输出:[["汶川大地震", "0.21342309"], ["gpu", "0.37715292"], ["为什么", "0.11760186"]]

post方式:

  在命令行中输入:

curl -X POST -H "Content-Type: application/json"
 -d '{"query":["2019年黑龙江公务员培训辅导课程",
 "明星祛斑方法:15天快速祛斑,不手术不花冤枉钱,超管用!",
 "祛斑只需用这1个方法,每天5分钟,快速祛斑,超管用",
 "{地域}48岁大叔讲述追涨停技巧,方法仅如此简单,股市堪比印钞机。"]}'
http://127.0.0.1:5000/query/

  在命令行会打印出:[query:分数]

原文地址:https://www.cnblogs.com/Lee-yl/p/11326147.html