Spaces:
Sleeping
Sleeping
Commit
·
b3fc5c9
1
Parent(s):
e68ca45
Update app.py
Browse files
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
|
| 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
|
| 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
|
| 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 =
|
| 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\
|
| 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)
|