NeoPy commited on
Commit
e261077
Β·
verified Β·
1 Parent(s): 0b39f40

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +56 -0
app.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from gradio import Server
3
+ from transformers import T5ForConditionalGeneration, T5Tokenizer
4
+
5
+ # Load model and tokenizer
6
+ MODEL_NAME = "google-t5/t5-small"
7
+ print("Loading model...")
8
+ tokenizer = T5Tokenizer.from_pretrained(MODEL_NAME)
9
+ model = T5ForConditionalGeneration.from_pretrained(MODEL_NAME)
10
+ print("Model loaded!")
11
+
12
+
13
+ def translate(text, prompt):
14
+ """
15
+ Translate text using T5 with a task prefix.
16
+ Note: t5-small is trained mainly on English tasks and has limited
17
+ multilingual translation ability. See note at the bottom.
18
+ """
19
+ if not text.strip():
20
+ return "Please enter some text to translate."
21
+
22
+ tokenizer(prompt, return_tensors="pt", max_length=512, truncation=True)
23
+
24
+ with torch.no_grad():
25
+ outputs = model.generate(
26
+ **inputs,
27
+ max_length=512,
28
+ num_beams=4,
29
+ early_stopping=True,
30
+ )
31
+
32
+ result = tokenizer.decode(outputs[0], skip_special_tokens=True)
33
+ return result
34
+
35
+
36
+ # ─────────────────────────────────────────────
37
+ # 4. gr.Server β€” REST API + OPTIONAL SWAGGER UI
38
+ # ─────────────────────────────────────────────
39
+ app = Server(
40
+ title=free Translator API",
41
+ summary="free Translator API",
42
+ version="1.0.0",
43
+ )
44
+
45
+ # Register as Gradio API endpoints (queued, SSE-streaming capable)
46
+ app.api(translate, name="translate") # POST /gradio_api/call/translate
47
+
48
+ # Optional: plain FastAPI GET health-check route
49
+ @app.get("/health")
50
+ def health():
51
+ return {"status": "ok", "model": MODEL_ID}
52
+
53
+ # ─────────────────────────────────────────────
54
+ # 5. LAUNCH
55
+ # ─────────────────────────────────────────────
56
+ app.launch()