目标是通过Flask API接收UI的多个参数并传递给模型(127.0.0.1:5002),然后模型的评分结果返回给UI(127.0.0.1:5001)。
当模型从UI接收值时,我遇到了错误(错误信息在文末)。所以我将值发送到127.0.0.1:5002,模型将其作为一个JSON对象接收,但出现了错误。
所以我从以下代码发送一个JSON对象(如果代码有问题请告诉我 – 我是一个新手)
<script> $(function() {$('#analysis').bind('click', function() { $.post('http://127.0.0.1:5002/',{ 'CK': $('CK').val(), 'OCE': $('OCE').val(), 'range_04': $('range_04').val(), }, function(data) { var parsed = JSON.parse(data); $("#xyz").text(parsed['abc']); }); return false; }); });</script>
现在这段代码生成了JSON对象(该JSON对象供模型使用)
app = Flask(__name__)api = Api(app)parser = reqparse.RequestParser()parser.add_argument('args.xyz')class getPredProb(Resource): def post(self): args = parser.parse_args() clf = joblib.load('AO.pkl') frameToScore = pandas.read_json('args.xyz') prediction = clf.predict(frameToScore) probability = clf.predict_proba(frameToScore) return json.dumps({'Prediction': prediction},{'Probability':probability}), 201, {'Access-Control-Allow-Origin': 'http://127.0.0.1:5001'}api.add_resource(getPredProb, '/')if __name__ == '__main__': #http_server = WSGIServer(('', 5002), app) #http_server.serve_forever() app.run(debug=True,port=5002)
回答:
你只传递了一个字符串'args.xyz'
给read_json
,你应该使用args['xyz']
(假设这是JSON数据,因为我没有看到任何带有xyz
键的数据传递到后端)。