moslem commited on
Commit
4f26bd6
·
verified ·
1 Parent(s): 57b7760

Upload 3 files

Browse files
Files changed (3) hide show
  1. Dockerfile +18 -0
  2. app.py +40 -0
  3. requirements.txt +5 -0
Dockerfile ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.9
2
+
3
+ WORKDIR /code
4
+
5
+ COPY ./requirements.txt /code/requirements.txt
6
+ RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
7
+
8
+ RUN useradd user
9
+ USER user
10
+
11
+ ENV HOME=/home/user \
12
+ PATH=/home/user/.local/bin:$PATH \
13
+ PORT=7860
14
+
15
+ WORKDIR $HOME/app
16
+ COPY --chown=user . $HOME/app
17
+
18
+ CMD uvicorn app:app --host 0.0.0.0 --port 7860
app.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from transformers import pipeline
3
+
4
+ # ساخت اپ FastAPI
5
+ app = FastAPI(
6
+ title="English–Persian Translator API",
7
+ description="A lightweight translation API using Helsinki-NLP models.",
8
+ version="1.0.0"
9
+ )
10
+
11
+ # لود مدل ترجمه سبک
12
+ # مدل‌های Helsinki-NLP بسیار سبک و سازگار با اسپیس‌های رایگان هستند
13
+ translator_en_fa = pipeline("translation", model="Helsinki-NLP/opus-mt-en-fa")
14
+ translator_fa_en = pipeline("translation", model="Helsinki-NLP/opus-mt-fa-en")
15
+
16
+ @app.get("/")
17
+ def home():
18
+ return {
19
+ "message": "Welcome to the English–Persian Translator API!",
20
+ "usage": {
21
+ "English → Persian": "/translate/en2fa?text=Hello world",
22
+ "Persian → English": "/translate/fa2en?text=سلام دنیا"
23
+ }
24
+ }
25
+
26
+ @app.get("/translate/en2fa")
27
+ def translate_en_to_fa(text: str):
28
+ """
29
+ ترجمه از انگلیسی به فارسی
30
+ """
31
+ output = translator_en_fa(text)
32
+ return {"input": text, "translation": output[0]["translation_text"]}
33
+
34
+ @app.get("/translate/fa2en")
35
+ def translate_fa_to_en(text: str):
36
+ """
37
+ ترجمه از فارسی به انگلیسی
38
+ """
39
+ output = translator_fa_en(text)
40
+ return {"input": text, "translation": output[0]["translation_text"]}
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ fastapi
2
+ uvicorn[standard]
3
+ transformers
4
+ torch
5
+ sentencepiece