DataNeuron / app.py
Bhanushray's picture
Update app.py
bf95036 verified
from flask import Flask, request, jsonify
from model_handler import MODEL_HANDLER
# INITIALIZING THE FLASK APP
FLASK_APP = Flask(__name__)
# --- API ENDPOINT DEFINITIONS ---
@FLASK_APP.route("/", methods=["GET"])
def health_Check():
# HEALTH CHECKING ENDPOINT TO CONFIRM THE API IS LIVE
return jsonify({
"status": "ok",
"message": "Semantic Similarity API is operational."
})
@FLASK_APP.route("/predict", methods=["POST"])
def predict_Handler():
"""
HANDLES THE PREDICTION REQUEST.
"""
# GETTING THE JSON PAYLOAD FROM THE REQUEST
input_Payload = request.get_json()
# VALIDATING THE INCOMING DATA
if not input_Payload:
return jsonify({"error": "BAD REQUEST: Missing JSON body."}), 400
text1_Value = input_Payload.get("text1")
text2_Value = input_Payload.get("text2")
if not text1_Value or not text2_Value:
return jsonify({"error": "BAD REQUEST: 'text1' and 'text2' are required fields."}), 400
# PROCESSING THE REQUEST AND GET THE SCORE
try:
# USING THE MODEL HANDLER TO GET THE SIMILARITY SCORE
similarityScore = MODEL_HANDLER.calculate_Similarity(text1_Value, text2_Value)
# THE RESPONSE BODY
response_Body = {
"similarity score": similarityScore
}
return jsonify(response_Body), 200
except Exception as e:
# CATCHING ANY UNEXPECTED ERRORS
print(f"INTERNAL ERROR: {e}")
return jsonify({"error": "An internal server error occurred."}), 500
if __name__ == "__main__":
# THIS PART IS ONLY FOR LOCAL TESTING. GUNICORN WILL RUN THE APP ON HUGGING FACE
FLASK_APP.run(host="0.0.0.0", port=8000, debug=True)