wgz_forecast/run.py

35 lines
970 B
Python

from flask import request, Flask, jsonify
from pv.pv_inference import load_model, pv_forecast
from logzero import logger
app = Flask(__name__)
gbm_pv = load_model('./pv/models/pv_pred.joblib')
# todo: 写一个flask接口
@app.route('/pv', methods=['POST'])
def run_pv_forecast():
"""todo: 需要测试
Returns:
_type_: _description_
"""
data = request.data
if not data or 'inputs' not in data:
return jsonify({"error": "Invalid data"}), 400
else:
# todo: 这里需要写个判断inputs是否合规的逻辑
inputs = data.get('inputs').reshape(1, 24)
logger.info(f"pv history inputs: {inputs}")
out = pv_forecast(inputs, gbm_pv)
results = {"result": out}
return jsonify(results), 200
@app.route('/carbon', methods=['POST'])
def run_carbon_forecast():
"""
todo: 封装其他的预测
"""
pass
if __name__=='__main__':
app.run(host='0.0.0.0', port='2467')