caissaa23 commited on
Commit
f787aea
·
verified ·
1 Parent(s): 6c068b1

Update chatbot_nuti.py

Browse files
Files changed (1) hide show
  1. chatbot_nuti.py +48 -49
chatbot_nuti.py CHANGED
@@ -15,87 +15,86 @@ def guardar_memoria(memoria):
15
  with open(MEMORIA_FILE, "w", encoding="utf-8") as f:
16
  json.dump(memoria, f, ensure_ascii=False, indent=2)
17
 
18
- # -------------------- RESPUESTAS BASE --------------------
19
  TEMAS = {
20
  "agua": [
21
- "El agua es clave para todo tu cuerpo 💧, regula la digestión, la energía y hasta el ánimo.",
22
- "Si te cuesta beber agua, puedes agregarle pepino, limón o menta para darle sabor. 🍋",
23
- "Una buena meta: un vaso de agua antes de cada comida."
24
  ],
25
  "desayuno": [
26
- "El desayuno es el motor del día 🌞. Asegúrate de incluir proteína, fibra y fruta.",
27
- "La avena con leche vegetal y frutas es una gran opción equilibrada.",
28
- "Evita solo tomar café: tu cuerpo necesita energía real, no solo cafeína."
29
  ],
30
- "almuerzo": [
31
- "A la hora de comer, piensa en colores: verde, naranja, rojo y blanco. 🌈",
32
- "Agrega proteína magra y vegetales, y evita bebidas azucaradas.",
33
- "Comer sin pantallas ayuda a digerir mejor y disfrutar los sabores."
34
- ],
35
- "cena": [
36
- "La cena debe ser ligera para descansar bien 🌙. Sopas, ensaladas o huevo son ideales.",
37
- "Evita comer justo antes de dormir, deja pasar al menos 2 horas.",
38
- "Si tienes hambre de noche, elige algo liviano como yogurt natural o fruta."
39
- ],
40
- "ejercicio": [
41
- "Después de entrenar, come proteína y algo de carbohidrato para recuperarte. 💪",
42
- "Recuerda hidratarte antes, durante y después del ejercicio.",
43
- "Un pequeño paseo después de comer mejora la digestión y el ánimo."
44
  ],
45
  "peso": [
46
- "El peso no define tu salud. Lo importante son tus hábitos y cómo te sientes. ❤️",
47
- "Subir o bajar de peso lleva tiempo. constante y paciente.",
48
- "Evita compararte; cada cuerpo tiene su ritmo y belleza natural."
49
  ],
50
- "emociones": [
51
- "Tus emociones influyen mucho en tu forma de comer. 🌿",
52
- "Si comes por ansiedad, respira o da un paseo antes de decidir.",
53
- "Comer con calma también alimenta tu mente."
54
  ]
55
  }
56
 
57
- MENSAJES_GENERICOS = [
58
- "Tu cuerpo te habla todos los días: escúchalo sin juzgarlo. 💚",
59
- "Pequeños cambios diarios crean grandes resultados.",
60
- "Recuerda moverte, hidratarte y descansar. Son pilares del bienestar.",
61
- "No busques perfección, busca equilibrio."
62
  ]
63
 
64
- # -------------------- FUNCIÓN PRINCIPAL --------------------
65
- def buscar_respuesta(usuario, pregunta):
66
  pregunta = pregunta.lower().strip()
67
  memoria = cargar_memoria()
 
 
68
  if usuario not in memoria:
69
- memoria[usuario] = {"historial": [], "temas": []}
70
 
71
- historial = memoria[usuario]["historial"]
72
- temas_previos = memoria[usuario]["temas"]
73
 
74
- # Detectar tema nuevo
75
  tema_detectado = None
76
  for tema in TEMAS:
77
  if tema in pregunta:
78
  tema_detectado = tema
79
  break
80
 
81
- # Si se detecta tema, dar respuesta personalizada
82
  if tema_detectado:
83
- respuesta = random.choice(TEMAS[tema_detectado])
84
- memoria[usuario]["temas"].append(tema_detectado)
 
85
  else:
86
- # Si no hay tema nuevo, responder en base al historial
87
- if historial:
88
- ultima = historial[-1]["pregunta"]
89
- tema_ref = temas_previos[-1] if temas_previos else "nutrición"
90
- respuesta = f"Como mencionaste antes sobre {tema_ref}, te recomiendo también que {random.choice(TEMAS.get(tema_ref, MENSAJES_GENERICOS))}"
 
 
91
  else:
92
- respuesta = random.choice(MENSAJES_GENERICOS)
93
 
94
- historial.append({
 
95
  "fecha": str(datetime.now()),
96
  "pregunta": pregunta,
97
  "respuesta": respuesta
98
  })
99
 
 
 
100
  guardar_memoria(memoria)
 
101
  return respuesta
 
15
  with open(MEMORIA_FILE, "w", encoding="utf-8") as f:
16
  json.dump(memoria, f, ensure_ascii=False, indent=2)
17
 
18
+ # --- TEMAS CLAVE --- #
19
  TEMAS = {
20
  "agua": [
21
+ "El agua regula todo tu cuerpo 💧: digestión, energía y concentración. Trata de tomar un vaso cada hora.",
22
+ "Si te cuesta beber agua sola, puedes agregarle pepino, menta o rodajas de limón. 🍋",
23
+ "Mantenerte hidratado también mejora el ánimo y la piel."
24
  ],
25
  "desayuno": [
26
+ "El desayuno activa tu metabolismo 🌞. Prueba algo con proteína, como yogurt o huevo, más fruta y avena.",
27
+ "Saltarte el desayuno puede afectar tu energía y concentración, especialmente si estás en crecimiento.",
28
+ "Empieza el día con alimentos reales, no procesados: te sentirás con más claridad mental."
29
  ],
30
+ "ansiedad": [
31
+ "Si comes por ansiedad, prueba algo que te relaje sin comer: respiraciones lentas, música suave o caminar 5 minutos. 🌿",
32
+ "A veces el hambre emocional busca consuelo, no comida. Haz una pausa antes de decidir.",
33
+ "Tener un snack saludable preparado (como nueces o plátano) puede ayudarte a no comer impulsivamente."
 
 
 
 
 
 
 
 
 
 
34
  ],
35
  "peso": [
36
+ "No te enfoques solo en el número de la báscula. Lo que importa es cómo te sientes y tu energía. ❤️",
37
+ "Bajar o subir de peso de forma saludable requiere constancia, no perfección. Paso a paso.",
38
+ "Tu cuerpo cambia contigo: aprende a escucharlo, no a pelear con él."
39
  ],
40
+ "ejercicio": [
41
+ "Moverte aunque sea 10 minutos al día ya mejora tu circulación y tu humor. 💪",
42
+ "Combinar movimiento y buena comida potencia los resultados, no te castigues si un día descansas.",
43
+ "Después de entrenar, hidrátate y come algo con proteína, te ayudará a recuperarte."
44
  ]
45
  }
46
 
47
+ MENSAJES_BASE = [
48
+ "Tu cuerpo te acompaña siempre, cuídalo con cariño y paciencia. 💚",
49
+ "Cada día que eliges comer mejor, te estás eligiendo a ti. 🌱",
50
+ "No busques comer perfecto, busca sentirte bien contigo y con tu cuerpo.",
51
+ "Pequeños hábitos constantes crean grandes resultados. 🌟"
52
  ]
53
 
54
+ # --- FUNCIÓN PRINCIPAL (más inteligente y contextual) --- #
55
+ def buscar_respuesta(pregunta, historial):
56
  pregunta = pregunta.lower().strip()
57
  memoria = cargar_memoria()
58
+
59
+ usuario = "default_user"
60
  if usuario not in memoria:
61
+ memoria[usuario] = {"historial": [], "temas_previos": []}
62
 
63
+ historial_usuario = memoria[usuario]["historial"]
64
+ temas_previos = memoria[usuario]["temas_previos"]
65
 
66
+ # Detectar el tema principal de la pregunta
67
  tema_detectado = None
68
  for tema in TEMAS:
69
  if tema in pregunta:
70
  tema_detectado = tema
71
  break
72
 
73
+ # Crear respuesta dinámica
74
  if tema_detectado:
75
+ respuesta_base = random.choice(TEMAS[tema_detectado])
76
+ respuesta = f"{respuesta_base} Además, recuerda que cada pequeño paso que das cuenta. 💪"
77
+ temas_previos.append(tema_detectado)
78
  else:
79
+ # Si no hay tema nuevo, crear respuesta contextual según historial
80
+ if historial_usuario:
81
+ ultimo_tema = temas_previos[-1] if temas_previos else "alimentación"
82
+ respuesta = (
83
+ f"Sobre lo que mencionaste antes acerca de {ultimo_tema}, "
84
+ f"creo que podrías intentar algo nuevo: {random.choice(TEMAS.get(ultimo_tema, MENSAJES_BASE))}"
85
+ )
86
  else:
87
+ respuesta = random.choice(MENSAJES_BASE)
88
 
89
+ # Guardar historial
90
+ historial_usuario.append({
91
  "fecha": str(datetime.now()),
92
  "pregunta": pregunta,
93
  "respuesta": respuesta
94
  })
95
 
96
+ memoria[usuario]["historial"] = historial_usuario
97
+ memoria[usuario]["temas_previos"] = temas_previos
98
  guardar_memoria(memoria)
99
+
100
  return respuesta