Spaces:
Sleeping
Sleeping
| from flask import Flask, request, jsonify | |
| from model_handler import MODEL_HANDLER | |
| # INITIALIZING THE FLASK APP | |
| FLASK_APP = Flask(__name__) | |
| # --- API ENDPOINT DEFINITIONS --- | |
| def health_Check(): | |
| # HEALTH CHECKING ENDPOINT TO CONFIRM THE API IS LIVE | |
| return jsonify({ | |
| "status": "ok", | |
| "message": "Semantic Similarity API is operational." | |
| }) | |
| 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) |