Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -137,13 +137,30 @@ class SimpleTemperamentAnalyzer:
|
|
| 137 |
def criar_interface():
|
| 138 |
analisador = SimpleTemperamentAnalyzer()
|
| 139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 140 |
def processar_selecao(selecoes):
|
| 141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 142 |
temperamento_dominante = max(pontuacoes.items(), key=lambda x: x[1])[0]
|
| 143 |
analise = analisador.gerar_analise(temperamento_dominante, pontuacoes)
|
| 144 |
|
| 145 |
resultado = "### Resultados da Análise de Temperamento\n\n"
|
| 146 |
-
resultado += "**
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
for temp, pont in pontuacoes.items():
|
| 148 |
resultado += f"- {temp}: {pont:.1f}%\n"
|
| 149 |
|
|
@@ -166,6 +183,7 @@ def criar_interface():
|
|
| 166 |
|
| 167 |
with gr.Blocks(theme=gr.themes.Soft()) as interface:
|
| 168 |
gr.Markdown("## Análise de Temperamento Simplificada")
|
|
|
|
| 169 |
|
| 170 |
todas_caracteristicas = []
|
| 171 |
for temp, caract in analisador.temperamentos.items():
|
|
@@ -173,12 +191,21 @@ def criar_interface():
|
|
| 173 |
|
| 174 |
selecoes = gr.CheckboxGroup(
|
| 175 |
choices=todas_caracteristicas,
|
| 176 |
-
label="
|
|
|
|
| 177 |
)
|
| 178 |
|
| 179 |
btn = gr.Button("Analisar")
|
| 180 |
saida = gr.Markdown()
|
| 181 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 182 |
btn.click(
|
| 183 |
fn=processar_selecao,
|
| 184 |
inputs=selecoes,
|
|
|
|
| 137 |
def criar_interface():
|
| 138 |
analisador = SimpleTemperamentAnalyzer()
|
| 139 |
|
| 140 |
+
def validar_selecao(selecoes):
|
| 141 |
+
if len(selecoes) > 5:
|
| 142 |
+
# Retorna apenas as primeiras 5 seleções
|
| 143 |
+
return selecoes[:5], "Por favor, selecione apenas 5 características."
|
| 144 |
+
return selecoes, "" if selecoes else "Selecione até 5 características que mais combinam com você."
|
| 145 |
+
|
| 146 |
def processar_selecao(selecoes):
|
| 147 |
+
selecoes_validadas, mensagem = validar_selecao(selecoes)
|
| 148 |
+
if mensagem and "apenas" in mensagem: # Se excedeu o limite
|
| 149 |
+
return f"⚠️ {mensagem}\n\nPor favor, desmarque algumas opções para continuar."
|
| 150 |
+
|
| 151 |
+
if not selecoes_validadas:
|
| 152 |
+
return "Selecione algumas características para realizar a análise."
|
| 153 |
+
|
| 154 |
+
pontuacoes = analisador.analisar_respostas(selecoes_validadas)
|
| 155 |
temperamento_dominante = max(pontuacoes.items(), key=lambda x: x[1])[0]
|
| 156 |
analise = analisador.gerar_analise(temperamento_dominante, pontuacoes)
|
| 157 |
|
| 158 |
resultado = "### Resultados da Análise de Temperamento\n\n"
|
| 159 |
+
resultado += "**Características Selecionadas:**\n"
|
| 160 |
+
for caract in selecoes_validadas:
|
| 161 |
+
resultado += f"- {caract}\n"
|
| 162 |
+
|
| 163 |
+
resultado += "\n**Pontuações:**\n"
|
| 164 |
for temp, pont in pontuacoes.items():
|
| 165 |
resultado += f"- {temp}: {pont:.1f}%\n"
|
| 166 |
|
|
|
|
| 183 |
|
| 184 |
with gr.Blocks(theme=gr.themes.Soft()) as interface:
|
| 185 |
gr.Markdown("## Análise de Temperamento Simplificada")
|
| 186 |
+
gr.Markdown("### Selecione exatamente 5 características que mais combinam com você")
|
| 187 |
|
| 188 |
todas_caracteristicas = []
|
| 189 |
for temp, caract in analisador.temperamentos.items():
|
|
|
|
| 191 |
|
| 192 |
selecoes = gr.CheckboxGroup(
|
| 193 |
choices=todas_caracteristicas,
|
| 194 |
+
label="Escolha 5 características:",
|
| 195 |
+
info="Limite: 5 características"
|
| 196 |
)
|
| 197 |
|
| 198 |
btn = gr.Button("Analisar")
|
| 199 |
saida = gr.Markdown()
|
| 200 |
|
| 201 |
+
# Atualiza em tempo real para validar seleções
|
| 202 |
+
selecoes.change(
|
| 203 |
+
fn=validar_selecao,
|
| 204 |
+
inputs=selecoes,
|
| 205 |
+
outputs=[selecoes, saida]
|
| 206 |
+
)
|
| 207 |
+
|
| 208 |
+
# Processa a análise quando o botão é clicado
|
| 209 |
btn.click(
|
| 210 |
fn=processar_selecao,
|
| 211 |
inputs=selecoes,
|