VietCat commited on
Commit
20688a8
·
1 Parent(s): 2c211ac

init project

Browse files
Files changed (4) hide show
  1. .gitignore +2 -0
  2. Dockerfile +19 -0
  3. app.py +35 -0
  4. requirements.txt +4 -0
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ # files
2
+ *.DS_Store
Dockerfile ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.10-slim
2
+
3
+ # Cài thư viện hệ thống cần thiết
4
+ RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
5
+
6
+ # Tạo thư mục làm việc
7
+ WORKDIR /app
8
+
9
+ # Copy code
10
+ COPY requirements.txt .
11
+ RUN pip install --no-cache-dir -r requirements.txt
12
+
13
+ COPY app.py .
14
+
15
+ # Expose port mặc định HFS (7860)
16
+ EXPOSE 7860
17
+
18
+ # Run Flask
19
+ CMD ["python", "app.py"]
app.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, request, jsonify
2
+ from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
3
+
4
+ app = Flask(__name__)
5
+
6
+ # Load model
7
+ model_name = "VietAI/vit5-base"
8
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
9
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
10
+
11
+ @app.route("/summarize", methods=["POST"])
12
+ def summarize():
13
+ data = request.json
14
+ text = data.get("text", "")
15
+ if not text.strip():
16
+ return jsonify({"error": "Missing text"}), 400
17
+
18
+ inputs = tokenizer.encode(text, return_tensors="pt", max_length=512, truncation=True)
19
+ summary_ids = model.generate(
20
+ inputs,
21
+ max_length=100,
22
+ min_length=30,
23
+ num_beams=4,
24
+ length_penalty=2.0,
25
+ early_stopping=True
26
+ )
27
+ summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
28
+ return jsonify({"summary": summary})
29
+
30
+ @app.route("/", methods=["GET"])
31
+ def root():
32
+ return "ViT5 summarization API is running."
33
+
34
+ if __name__ == "__main__":
35
+ app.run(host="0.0.0.0", port=7860)
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ flask
2
+ transformers
3
+ torch
4
+ sentencepiece