|
from flask import Flask, request, jsonify |
|
from transformers import pipeline |
|
|
|
|
|
app = Flask(__name__) |
|
|
|
|
|
lang_classifier = pipeline("text-classification", model="papluca/xlm-roberta-base-language-detection") |
|
|
|
|
|
hate_classifier = pipeline("text-classification", model="Hate-speech-CNERG/dehatebert-mono-english") |
|
|
|
|
|
@app.route("/", methods=["GET"]) |
|
def home(): |
|
return jsonify({"message": "Language & Hate Speech API is running!"}) |
|
|
|
|
|
@app.route("/detect-language", methods=["POST"]) |
|
def detect_language(): |
|
data = request.json |
|
text = data.get("text", "").strip() |
|
|
|
if not text: |
|
return jsonify({"error": "No text provided"}), 400 |
|
|
|
result = lang_classifier(text) |
|
return jsonify({"language": result[0]['label'], "confidence": result[0]['score']}) |
|
|
|
|
|
@app.route("/detect-hate-speech", methods=["POST"]) |
|
def detect_hate_speech(): |
|
data = request.json |
|
text = data.get("text", "").strip() |
|
|
|
if not text: |
|
return jsonify({"error": "No text provided"}), 400 |
|
|
|
result = hate_classifier(text) |
|
return jsonify({"label": result[0]['label'], "score": result[0]['score']}) |
|
|
|
|
|
if __name__ == "__main__": |
|
app.run(host="0.0.0.0", port=7860) |
|
|