This commit is contained in:
Pünkösd Marcell 2020-04-14 19:42:43 +02:00
parent 87d74f3563
commit 40d20b2fa9
1 changed files with 23 additions and 6 deletions

View File

@ -13,6 +13,9 @@ from pyAudioAnalysis.audioTrainTest import load_model, load_model_knn
class ModelView(FlaskView):
aimodel_schema = AIModelSchema(many=False)
aimodels_schema = AIModelSchema(many=True,
exclude=['timestamp', 'mid_window', 'mid_step', 'short_window', 'short_step',
'compute_beat'])
default_schema = DefaultSchema(many=False)
info_schema = InfoSchema(many=False)
@ -28,6 +31,10 @@ class ModelView(FlaskView):
pass
# Everything else should be raised
def index(self):
models = AIModel.query.all()
return jsonify(self.aimodels_schema.dump(models)), 200
def post(self):
# get important data from the request
@ -88,8 +95,8 @@ class ModelView(FlaskView):
os.remove(temp_model_filename)
os.remove(temp_means_filename)
m = AIModel(mid_window=mid_window, mid_step=mid_step, short_window=short_window, short_step=short_step,
compute_beat=compute_beat, type=info['type'])
m = AIModel(id=info['id'], mid_window=mid_window, mid_step=mid_step, short_window=short_window,
short_step=short_step, compute_beat=compute_beat, type=info['type'])
db.session.add(m)
db.session.commit()
@ -100,11 +107,21 @@ class ModelView(FlaskView):
if _id == "$default":
default = Default.query.first_or_404() # TODO: Kitalálni, hogy inkább a latestestest-el térjen-e vissza
m = default.default
m = default.aimodel
else:
m = AIModel.query.fiter_by(id=_id).first_or_404()
m = AIModel.query.filter_by(id=_id).first_or_404()
return "asd"
if "means" in request.args:
bucket = current_app.config['MINIO_MEANS_BUCKET_NAME']
else:
bucket = current_app.config['MINIO_MODEL_BUCKET_NAME']
try:
data = storage.connection.get_object(bucket, str(m.id))
except NoSuchKey:
abort(500, "The ID is stored in the database but not int the Object Store")
return Response(data.stream(), mimetype=data.headers['Content-type'])
@route('<_id>/details')
def get_details(self, _id: str):
@ -123,7 +140,7 @@ class ModelView(FlaskView):
default = Default.query.first_or_404()
m = default.aimodel
else:
m = AIModel.query.fiter_by(id=_id).first_or_404()
m = AIModel.query.filter_by(id=_id).first_or_404()
storage.connection.remove_object(current_app.config['MINIO_MODEL_BUCKET_NAME'], str(m.id))
storage.connection.remove_object(current_app.config['MINIO_MEANS_BUCKET_NAME'], str(m.id))