DHEIVER commited on
Commit
4085804
·
verified ·
1 Parent(s): 2701bca

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -3
app.py CHANGED
@@ -137,13 +137,30 @@ class SimpleTemperamentAnalyzer:
137
  def criar_interface():
138
  analisador = SimpleTemperamentAnalyzer()
139
 
 
 
 
 
 
 
140
  def processar_selecao(selecoes):
141
- pontuacoes = analisador.analisar_respostas(selecoes)
 
 
 
 
 
 
 
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 += "**Pontuações:**\n"
 
 
 
 
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="Selecione as características que mais combinam com você:"
 
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,