from flask import Flask, request, jsonify from transformers import AutoTokenizer, AutoModelForSeq2SeqLM app = Flask(__name__) # Load model model_name = "VietAI/vit5-base" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSeq2SeqLM.from_pretrained(model_name) @app.route("/summarize", methods=["POST"]) def summarize(): data = request.json text = data.get("text", "") if not text.strip(): return jsonify({"error": "Missing text"}), 400 inputs = tokenizer.encode(text, return_tensors="pt", max_length=512, truncation=True) summary_ids = model.generate( inputs, max_length=100, min_length=30, num_beams=4, length_penalty=2.0, early_stopping=True ) summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True) return jsonify({"summary": summary}) @app.route("/", methods=["GET"]) def root(): return "ViT5 summarization API is running." if __name__ == "__main__": app.run(host="0.0.0.0", port=7860)