from flask import Flask, request, jsonify from flask_cors import CORS from transformers import pipeline import os # Inicializa la app Flask app = Flask(__name__) CORS(app) # Habilitar CORS para toda la aplicación # Establecer el directorio HOME para evitar problemas con módulos os.environ['HOME'] = os.environ.get('USERPROFILE', '') # Obtener la clave secreta desde las variables de entorno SECRET_KEY = os.getenv('token_seguridad', 'default_secret_key') # Cargar el modelo de traducción pipe = pipeline("translation", model="Helsinki-NLP/opus-mt-es-en") # Ruta de prueba para verificar que la API está funcionando @app.route('/ping', methods=['GET']) def ping(): return "pong" # Función para validar el token secreto def validar_token(): provided_secret = request.headers.get('X-Secret-Key') if provided_secret != SECRET_KEY: return False return True # Ruta para procesar la traducción @app.route('/translate', methods=['POST']) def translate_text(): # Verificar el token de seguridad antes de procesar la solicitud if not validar_token(): return jsonify({"error": "Acceso no autorizado"}), 403 # Verificar si el texto está en el cuerpo de la solicitud if not request.json or 'text' not in request.json: return jsonify({"error": "Falta el texto para traducir"}), 400 try: # Obtener el texto desde la solicitud text = request.json['text'] # Realizar la traducción usando el pipeline translated_text = pipe(text)[0]["translation_text"] # Devolver el texto traducido return jsonify({"translated_text": translated_text}) except Exception as e: return jsonify({"error": str(e)}), 500 if __name__ == '__main__': app.run(host='0.0.0.0', port=7860)