Spaces:
Sleeping
Sleeping
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,
|