Сервинг во Flask
Есть некоторая модель ML. Где-то есть Flask. Также Flask есть в папке виртуальной среды virtualenv.
Есть еще код из книжки:
from flask import Flask, request, redirect, url_for, flash, jsonify
import numpy as np
import pickle as p
import requests
import json
app = Flask(__name__)
@app.route('/api/', methods=['POST'])
def makecalc():
data = request.get_json()
prediction = np.array2string(model.predict(data))
return jsonify(prediction)
if __name__ == '__main__':
modelfile = 'model.pickle'
model = p.load(open(modelfile, 'rb'))
app.run(debug=True, host='0.0.0.0')
url = 'http://0.0.0.0:5000/api/'
data = []
j_data = json.dumps(data)
headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}
r = requests.post(url, data=j_data, headers=headers)
print(r, r.text)
Вопрос: Как внедрить модель в продукцию на flask?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Почитайте Руководство по развертыванию моделей машинного обучения в рабочей среде в качестве API с помощью Flask. Вам нужно:
- получить в вашем сервере
Flaskданные черезHTTPзапрос - данные эти нужно предобработать
- подгрузить натренированную заранее ML модель
- "скормить" модели эти данные и получить от неё предсказание
- вернуть предсказание в понятном для передачи по протоколу
HTTPвиде
Если вы делаете API, то получаете данные и возвращаете результат в виде JSON.
Но вы можете сделать и веб-страничку для запросов, тогда ваш Flask сервер должен сначала отрисовывать страничку, на которой можно заполнить форму и сделать к нему запрос уже с параметрами-данными, и тогда вы в ответе уже отрисовываете опять же полноценную веб-страничку с результатами.