anbu-2005's picture
Update app.py
6f69b1d verified
from fastapi import FastAPI
from pydantic import BaseModel
from fastapi.middleware.cors import CORSMiddleware
from transformers import pipeline
import os
# -------------------------------
# Initialize FastAPI app
# -------------------------------
app = FastAPI(title="Language Translator API")
# -------------------------------
# Enable CORS for your extension
# -------------------------------
# Replace with your Chrome extension ID for security, or use "*" for testing
app.add_middleware(
CORSMiddleware,
allow_origins=[
#"*", # βœ… recommended
"*" # ⚠️ uncomment for open access during testing
],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# -------------------------------
# Model Loading
# -------------------------------
MODEL_PATH = "./model"
if not os.path.exists(MODEL_PATH):
raise RuntimeError("Model folder not found! Make sure '/model' is uploaded to your Space.")
print("πŸ“ Model files found:", os.listdir(MODEL_PATH))
# Load model from local folder (pre-downloaded)
translator = pipeline("translation", model=MODEL_PATH)
# -------------------------------
# Request/Response Models
# -------------------------------
class TranslationRequest(BaseModel):
text: str
src_lang: str
tgt_lang: str
# -------------------------------
# API Route
# -------------------------------
@app.post("/translate")
def translate(req: TranslationRequest):
"""
Translate text from source language to target language.
"""
try:
result = translator(
req.text,
src_lang=req.src_lang,
tgt_lang=req.tgt_lang
)
return {"translated_text": result[0]['translation_text']}
except Exception as e:
return {"error": str(e)}
# -------------------------------
# Root route
# -------------------------------
@app.get("/")
def root():
return {"message": "βœ… Language Translator API is running successfully!"}