forked from EEBD_AI/wgz_forecast
35 lines
970 B
Python
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') |