Spaces:
Runtime error
Runtime error
| from flask import Flask, render_template, request, jsonify | |
| from transformers import MarianMTModel, MarianTokenizer | |
| from langdetect import detect | |
| from sacremoses import MosesTokenizer, MosesDetokenizer | |
| app = Flask(__name__) | |
| # Supported languages for translation | |
| SUPPORTED_LANGUAGES = { | |
| "en": "English", | |
| "fr": "French", | |
| "es": "Spanish", | |
| "de": "German", | |
| "it": "Italian" | |
| } | |
| def index(): | |
| return render_template("index.html") | |
| def translate_text(): | |
| data = request.get_json() | |
| text = data["text"] | |
| target_lang = data["target_language"] | |
| translated_text = translate_text_function(text, target_lang) | |
| return jsonify({"translated_text": translated_text}) | |
| def translate_text_function(text, target_lang="fr"): | |
| # Detect input text language | |
| input_lang = detect(text) | |
| # Load pre-trained translation model | |
| model_name = f'Helsinki-NLP/opus-mt-{input_lang}-{target_lang}' | |
| model = MarianMTModel.from_pretrained(model_name) | |
| tokenizer = MarianTokenizer.from_pretrained(model_name) | |
| # Tokenize input text | |
| inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True) | |
| # Translate input text | |
| translated = model.generate(**inputs) | |
| # Decode translated text | |
| translated_text = tokenizer.decode(translated[0], skip_special_tokens=True) | |
| return translated_text | |
| if __name__ == "__main__": | |
| app.run(debug=True) | |