Flackoooo's picture
Remove server-based TTS libraries and rely on Web Speech API in the client
c77501d
import os
import logging
from flask import Flask, render_template, request, jsonify
from models.chatbot_model import MentalHealthChatbot
app = Flask(__name__)
# Configurar el registro de errores
logging.basicConfig(
level=logging.ERROR,
format='%(asctime)s %(levelname)s %(name)s %(threadName)s : %(message)s',
handlers=[
# Cambiamos a /tmp/error.log para que sea escribible en Hugging Face Spaces
logging.FileHandler("/tmp/error.log"),
logging.StreamHandler()
]
)
logger = logging.getLogger(__name__)
# Crear una instancia del chatbot con el modelo fine-tuned
try:
chatbot = MentalHealthChatbot(model_path='models/bert_emotion_model')
except Exception as e:
logger.error(f"Error al inicializar el chatbot: {e}")
raise
@app.route('/')
def index():
try:
return render_template('index.html')
except Exception as e:
logger.error(f"Error al renderizar index.html: {e}")
return "Error al cargar la página de inicio.", 500
@app.route('/chatbot')
def chatbot_page():
try:
return render_template('chatbot.html')
except Exception as e:
logger.error(f"Error al renderizar chatbot.html: {e}")
return "Error al cargar la página del chatbot.", 500
@app.route('/get_response', methods=['POST'])
def get_bot_response():
try:
user_input = request.form.get('message', '').strip()
if not user_input:
logger.warning("Mensaje vacío recibido del usuario.")
return jsonify({'response': "Por favor, ingresa un mensaje."}), 400
response_data = chatbot.generate_response(user_input)
# Obtenemos el texto, pero ignoramos audio_path, ya que no generamos audio en el servidor
response_text = response_data.get('text', "Lo siento, no pude procesar tu mensaje.")
# Devolvemos solo el texto (y, si quieres, emoción, confianza, etc.)
return jsonify({'response': response_text})
except Exception as e:
logger.error(f"Error en /get_response: {e}")
return jsonify({'response': "Lo siento, ha ocurrido un error al procesar tu solicitud."}), 500
if __name__ == '__main__':
# Ajustamos para leer la variable de entorno PORT (o usar 7860 por defecto)
port = int(os.environ.get("PORT", 7860))
app.run(host="0.0.0.0", port=port, debug=True)