Spaces:
Runtime error
Runtime error
import os | |
import shutil | |
from web_app import WebChatbotApp | |
import traceback | |
import sys | |
import logging | |
import signal | |
# Configuración del registro | |
logging.basicConfig( | |
filename='app.log', # Nombre del archivo de registro | |
level=logging.DEBUG, # Nivel de registro | |
format='%(asctime)s - %(levelname)s - %(message)s', | |
encoding='utf-8' | |
) | |
def clean_pycache(): | |
"""Eliminar el directorio __pycache__ si existe.""" | |
pycache_dir = "__pycache__" | |
if os.path.exists(pycache_dir): | |
shutil.rmtree(pycache_dir) | |
logging.info(f"Limpieza de {pycache_dir} completada") | |
def setup_directories(): | |
"""Crear directorios necesarios si no existen.""" | |
directories = ['temp', 'sessions', 'logs', 'flask_session'] | |
for directory in directories: | |
os.makedirs(directory, exist_ok=True) | |
logging.info(f"Directorio {directory} verificado") | |
def signal_handler(signum, frame): | |
logging.info("Señal de terminación recibida. Cerrando servidor...") | |
sys.exit(0) | |
if __name__ == "__main__": | |
try: | |
signal.signal(signal.SIGINT, signal_handler) | |
signal.signal(signal.SIGTERM, signal_handler) | |
# Limpiar caché y crear directorios | |
clean_pycache() | |
setup_directories() | |
# Iniciar aplicación | |
logging.info("Iniciando aplicación...") | |
app = WebChatbotApp() | |
port = int(os.environ.get('PORT', 5000)) | |
host = os.environ.get('HOST', '127.0.0.1') | |
# Iniciar servidor | |
logging.info(f"Iniciando servidor en {host}:{port}...") | |
app.run(host=host, port=port, debug=False, use_tunnel=True) | |
except Exception as e: | |
logging.error(f"Error crítico al iniciar la aplicación: {str(e)}") | |
logging.error(f"Detalles del error: {traceback.format_exc()}") | |
print(f"\n❌ Error crítico: {str(e)}") | |
sys.exit(1) | |