Spaces:
Runtime error
Runtime error
| 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 | |
| # ------------------------------- | |
| 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 | |
| # ------------------------------- | |
| def root(): | |
| return {"message": "β Language Translator API is running successfully!"} | |