MarvinRoque commited on
Commit
b3fc5c9
·
1 Parent(s): e68ca45

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -9
app.py CHANGED
@@ -450,10 +450,7 @@ def detectar_conceitos(prompt: str):
450
 
451
 
452
 
453
- # ---------- NUTRIÇÃO ----------
454
-
455
- # ---------- NUTRIÇÃO ----------
456
-
457
  # Caso específico: "sugestões de treino e alimentação" ou "sugira treino e dieta"
458
  if re.search(
459
  r"\b(sugest[õo]es|sugest[ãa]o|sugira)\s+(de\s+)?treino\s+e\s+(alimenta[cç][aã]o|dieta)\b",
@@ -960,11 +957,11 @@ def gerar_plano(idade, sexo, peso, altura, atividade, objetivo, intensidade, n_r
960
  plano_diario = gerar_plano_diario(plano, n_refeicoes=n_refeicoes, alergias=alergias)
961
 
962
  resumo = (
963
- f"📊 **Plano Nutricional**\n\n"
964
  f"- Calorias alvo: {plano.calorias_alvo} kcal\n"
965
  f"- Proteína: {plano.proteina_g} g\n"
966
  f"- Carboidratos: {plano.carboidratos_g} g\n"
967
- f"- Gorduras: {plano.gorduras_g} g\n\n"
968
  f"ℹ️ {plano.nota}\n"
969
  )
970
 
@@ -1197,6 +1194,7 @@ def extrair_dados_usuario(prompt_norm: str):
1197
  dados["alergias"] = list(set(alergias_encontradas))
1198
 
1199
  dados["lesoes"]=detectar_lesoes(prompt_norm)
 
1200
 
1201
  return dados
1202
 
@@ -1231,7 +1229,7 @@ def formatar_resposta_humana(resposta_final: dict) -> str:
1231
  system_prompt = (
1232
  "Você é um personal trainer e nutricionista virtual. "
1233
  "Explique o resultado abaixo em português, de forma simples, motivadora "
1234
- "e prática, como se estivesse conversando com o aluno.\n\n"
1235
  )
1236
  dados_json = json.dumps(resposta_final, ensure_ascii=False, indent=2)
1237
  entrada = system_prompt + dados_json
@@ -1285,11 +1283,11 @@ def responder(prompt: str):
1285
  subtipo = treino_conceitos[0].get("subtipo", "generico")
1286
 
1287
  musculos_alvo = detectar_musculos(prompt_norm)
1288
- objetivos = detectar_objetivos(prompt_norm)
1289
 
1290
  # 🔸 Caso 1: Pergunta conceitual (ex: “o que é hipertrofia?”)
1291
  if subtipo == "pergunta":
1292
- prompt_llm = f"Você é um treinador experiente. Responda de forma breve e direta:\n\n\"{prompt_norm}\""
1293
  inputs = tokenizer(prompt_llm, return_tensors="pt")
1294
  output = model.generate(**inputs, max_new_tokens=256, do_sample=False)
1295
  resposta = tokenizer.decode(output[0], skip_special_tokens=True)
 
450
 
451
 
452
 
453
+ # ---------- NUTRIÇÃO ---------
 
 
 
454
  # Caso específico: "sugestões de treino e alimentação" ou "sugira treino e dieta"
455
  if re.search(
456
  r"\b(sugest[õo]es|sugest[ãa]o|sugira)\s+(de\s+)?treino\s+e\s+(alimenta[cç][aã]o|dieta)\b",
 
957
  plano_diario = gerar_plano_diario(plano, n_refeicoes=n_refeicoes, alergias=alergias)
958
 
959
  resumo = (
960
+ f"📊 **Plano Nutricional**\n"
961
  f"- Calorias alvo: {plano.calorias_alvo} kcal\n"
962
  f"- Proteína: {plano.proteina_g} g\n"
963
  f"- Carboidratos: {plano.carboidratos_g} g\n"
964
+ f"- Gorduras: {plano.gorduras_g} g\n"
965
  f"ℹ️ {plano.nota}\n"
966
  )
967
 
 
1194
  dados["alergias"] = list(set(alergias_encontradas))
1195
 
1196
  dados["lesoes"]=detectar_lesoes(prompt_norm)
1197
+ dados["intencao_treino"]=detectar_objetivos(prompt_norm, [])
1198
 
1199
  return dados
1200
 
 
1229
  system_prompt = (
1230
  "Você é um personal trainer e nutricionista virtual. "
1231
  "Explique o resultado abaixo em português, de forma simples, motivadora "
1232
+ "e prática, como se estivesse conversando com o aluno.\n"
1233
  )
1234
  dados_json = json.dumps(resposta_final, ensure_ascii=False, indent=2)
1235
  entrada = system_prompt + dados_json
 
1283
  subtipo = treino_conceitos[0].get("subtipo", "generico")
1284
 
1285
  musculos_alvo = detectar_musculos(prompt_norm)
1286
+ objetivos = dados_usuario.get('intencao_treino')
1287
 
1288
  # 🔸 Caso 1: Pergunta conceitual (ex: “o que é hipertrofia?”)
1289
  if subtipo == "pergunta":
1290
+ prompt_llm = f"Você é um treinador experiente. Responda de forma breve e direta:\n\"{prompt_norm}\""
1291
  inputs = tokenizer(prompt_llm, return_tensors="pt")
1292
  output = model.generate(**inputs, max_new_tokens=256, do_sample=False)
1293
  resposta = tokenizer.decode(output[0], skip_special_tokens=True)