def handle(self): start = time.clock() req = recv_all(socket=self.request) response = JSONRPCResponseManager( serialize_hook=json_datetime_default, deserialize_hook=json_datetime_hook).handle(req, dispatcher) send_all(socket=self.request, message=response.json) end = time.clock() if response.error is None: print('{}[{:2.4f}s]{} Method: {}{:16s}{} | Params: {}{}{}'.format( Colors.BLUE, end - start, Colors.ENDC, Colors.GREEN, response._request.method, Colors.ENDC, Colors.HEADER, response._request.params, Colors.ENDC)) else: print('{}[{:2.4f}s]{} Error: {}{}{} | Request: {}{}{}'.format( Colors.BLUE, end - start, Colors.ENDC, Colors.FAIL, response.error['message'], response.error['code'], Colors.ENDC, Colors.HEADER, req, Colors.ENDC))
def application(request): handler = JSONRPCResponseManager() response = handler.handle(request_string=request.data, dispatcher=dispatcher) return Response(response.json, mimetype='application/json')
# coding:utf-8 from werkzeug.wrappers import Request, Response from werkzeug.serving import run_simple from jsonrpc import JSONRPCResponseManager, dispatcher from tf_inference import load_model, getPrediction, infer IP = '166.111.80.171' # 填写服务器的IP地址,crx的后端(background.js)需要进行相应修改 PORT = 4378 manager = JSONRPCResponseManager() estimator, tokenizer = load_model() def infer_sentence(sentence="123"): print(sentence) return infer([sentence], estimator, tokenizer) dispatcher.add_method(infer_sentence, name='infer') @Request.application def application(request): response = manager.handle(request.get_data(cache=False, as_text=True), dispatcher) res = Response(response.json, mimetype='application/x-www-form-urlencoded') res.headers['Access-Control-Allow-Origin'] = '*' return res