Spaces:
Running
Running
File size: 1,662 Bytes
428a607 6954bf4 428a607 6954bf4 428a607 3d7d3a1 428a607 3d7d3a1 428a607 3d7d3a1 428a607 6954bf4 428a607 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
from flask import request, Blueprint, jsonify, current_app
from middleware import role_required
from models.lecturer import Lecturer
from models.history import History
from datetime import datetime
from flask_login import current_user
from pytz import timezone
classifier = Blueprint('classifier', __name__, template_folder='templates', url_prefix='/dashboard/classifier')
tz = timezone('Asia/Jakarta')
@classifier.route('/inference', methods=['POST'])
@role_required('pengguna')
def inference():
abstrak = request.get_json().get('abstrak')
kata_kunci = request.get_json().get('kata_kunci')
klasifikasi = request.get_json().get('klasifikasi')
rekomendasi = request.get_json().get('rekomendasi')
try:
text = current_app.inference.text_processing(abstrak, kata_kunci)
if klasifikasi:
probs, kbk = current_app.inference.classification(text)
lecturers = Lecturer.fetch(kelompok_bidang_keahlian=kbk)
else:
probs = {}
kbk = ""
lecturers = []
if rekomendasi:
recommended = current_app.inference.content_based_filtering(text)
else:
recommended = []
history = History(abstrak=abstrak, kata_kunci=kata_kunci, probabilitas=probs, kelompok_bidang_keahlian=kbk, tanggal_inferensi=datetime.now(tz), top_similarity=recommended)
history.save(current_user.id)
return jsonify(message={'probs': probs, 'lecturers': lecturers, 'kbk': kbk, 'top_similarity': recommended}, status="success"), 200
except Exception as e:
return jsonify(message={'error': 'Server error'}, status="error"), 500 |