Spaces:
Sleeping
Sleeping
| from flask import Flask, request, jsonify | |
| from flask_cors import CORS | |
| from PyPDF2 import PdfReader | |
| from ensemble import compute_scores, classify | |
| app = Flask(__name__) | |
| CORS(app) | |
| def extract_text_from_pdf(file): | |
| reader = PdfReader(file) | |
| text = "" | |
| for page in reader.pages: | |
| extracted = page.extract_text() | |
| if extracted: | |
| text += extracted | |
| return text | |
| def home(): | |
| return jsonify({"message": "Plagiarism Detection API Running ๐"}) | |
| def predict(): | |
| try: | |
| data = request.get_json() | |
| text1 = data.get("text1", "") | |
| text2 = data.get("text2", "") | |
| if not text1 or not text2: | |
| return jsonify({"error": "Both text1 and text2 are required"}), 400 | |
| scores = compute_scores(text1, text2) | |
| result = classify(scores["final_score"]) | |
| return jsonify({ | |
| "semantic_similarity": scores["semantic_score"], | |
| "lexical_similarity": scores["lexical_score"], | |
| "final_similarity": scores["final_score"], | |
| "classification": result | |
| }) | |
| except Exception as e: | |
| return jsonify({"error": str(e)}), 500 | |
| def predict_file(): | |
| try: | |
| file1 = request.files.get("file1") | |
| file2 = request.files.get("file2") | |
| if not file1 or not file2: | |
| return jsonify({"error": "Both files are required"}), 400 | |
| text1 = extract_text_from_pdf(file1) | |
| text2 = extract_text_from_pdf(file2) | |
| if not text1.strip() or not text2.strip(): | |
| return jsonify({"error": "Could not extract text from PDF"}), 400 | |
| scores = compute_scores(text1, text2) | |
| result = classify(scores["final_score"]) | |
| return jsonify({ | |
| "semantic_similarity": scores["semantic_score"], | |
| "lexical_similarity": scores["lexical_score"], | |
| "final_similarity": scores["final_score"], | |
| "classification": result | |
| }) | |
| except Exception as e: | |
| return jsonify({"error": str(e)}), 500 | |
| import os | |
| if __name__ == "__main__": | |
| port = int(os.environ.get("PORT", 7860)) | |
| app.run(host="0.0.0.0", port=port) |