Update app.py
Browse files
app.py
CHANGED
@@ -3,86 +3,252 @@ import plotly.graph_objects as go
|
|
3 |
from sentence_transformers import SentenceTransformer
|
4 |
import numpy as np
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
"""
|
7 |
-
|
8 |
-
Este aplicativo visa ajudar profissionais e gestores a:
|
9 |
-
1. Identificar perfis comportamentais usando a metodologia DISC
|
10 |
-
2. Compreender tendências naturais de comportamento em ambiente profissional
|
11 |
-
3. Facilitar o autoconhecimento e desenvolvimento pessoal
|
12 |
-
4. Apoiar decisões de gestão de pessoas e formação de equipes
|
13 |
-
5. Melhorar a comunicação e relacionamento interpessoal no trabalho
|
14 |
-
"""
|
15 |
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
("C", "Analisa os impactos antes de aceitar")]},
|
39 |
-
{"pergunta": "Sob pressão no trabalho, você tende a:",
|
40 |
-
"opcoes": [("D", "Tornar-se mais direto e focado em resultados"),
|
41 |
-
("I", "Buscar apoio e interação com a equipe"),
|
42 |
-
("S", "Manter a calma e seguir metodicamente"),
|
43 |
-
("C", "Concentrar-se em detalhes e procedimentos")]}
|
44 |
-
]
|
45 |
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
'I': {'alto': ["Seu entusiasmo e otimismo são características marcantes - ideal para vendas e networking",
|
54 |
-
"Você tem grande habilidade para inspirar e motivar pessoas - excelente para liderança de equipes",
|
55 |
-
"Sua comunicação expressiva é um diferencial importante - ótimo para apresentações e treinamentos"],
|
56 |
-
'baixo': ["Você prefere uma comunicação mais objetiva e focada - valioso em análises técnicas",
|
57 |
-
"Sua abordagem analítica favorece resultados concretos - importante em projetos estruturados",
|
58 |
-
"Você valoriza dados e fatos em suas interações - útil em processos decisórios"]},
|
59 |
-
'S': {'alto': ["Sua consistência e confiabilidade são pontos fortes - ideal para gestão de processos",
|
60 |
-
"Você demonstra grande habilidade para trabalho em equipe - excelente para projetos colaborativos",
|
61 |
-
"Sua paciência e capacidade de escuta são diferenciais - ótimo para atendimento ao cliente"],
|
62 |
-
'baixo': ["Você se adapta facilmente a mudanças e novos cenários - valioso em ambientes dinâmicos",
|
63 |
-
"Sua flexibilidade é um ponto forte em ambientes dinâmicos - importante para inovação",
|
64 |
-
"Você lida bem com múltiplas tarefas simultâneas - útil em gestão de projetos"]},
|
65 |
-
'C': {'alto': ["Sua precisão e atenção aos detalhes são notáveis - ideal para análise de dados",
|
66 |
-
"Você tem forte capacidade analítica e organizacional - excelente para planejamento estratégico",
|
67 |
-
"Sua busca por qualidade é uma característica marcante - ótimo para controle de qualidade"],
|
68 |
-
'baixo': ["Você demonstra flexibilidade com regras e processos - valioso em ambientes criativos",
|
69 |
-
"Sua praticidade favorece resultados rápidos - importante para entregas ágeis",
|
70 |
-
"Você se adapta bem a ambientes menos estruturados - útil em startups"]}
|
71 |
-
}
|
72 |
|
73 |
-
|
74 |
-
|
75 |
-
elif percentual >= 60: return "alto"
|
76 |
-
elif percentual >= 40: return "moderado"
|
77 |
-
elif percentual >= 25: return "baixo"
|
78 |
-
return "muito baixo"
|
79 |
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
|
|
86 |
|
87 |
def calcular_perfil(respostas):
|
88 |
contagem = {k: sum(1 for r in respostas if r and r.startswith(k)) for k in 'DISC'}
|
@@ -118,105 +284,33 @@ def create_disc_plot(percentuais):
|
|
118 |
|
119 |
return fig
|
120 |
|
121 |
-
|
122 |
-
"""
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
• Relações Públicas
|
149 |
-
• Treinamento e Desenvolvimento
|
150 |
-
""",
|
151 |
-
'S': """
|
152 |
-
Recomendações de Desenvolvimento:
|
153 |
-
• Desenvolva mais assertividade em situações de conflito
|
154 |
-
• Pratique adaptação a mudanças rápidas
|
155 |
-
• Expresse mais suas opiniões em grupo
|
156 |
-
|
157 |
-
Áreas Profissionais Favoráveis:
|
158 |
-
• Recursos Humanos
|
159 |
-
• Atendimento ao Cliente
|
160 |
-
• Gestão de Processos
|
161 |
-
""",
|
162 |
-
'C': """
|
163 |
-
Recomendações de Desenvolvimento:
|
164 |
-
• Desenvolva mais flexibilidade em situações ambíguas
|
165 |
-
• Pratique tomada de decisão mais rápida
|
166 |
-
• Equilibre análise com ação
|
167 |
-
|
168 |
-
Áreas Profissionais Favoráveis:
|
169 |
-
• Análise de Dados
|
170 |
-
• Controle de Qualidade
|
171 |
-
• Planejamento Estratégico
|
172 |
-
"""
|
173 |
-
}
|
174 |
-
|
175 |
-
return implications.get(principal, "")
|
176 |
-
|
177 |
-
def get_career_recommendations(profile):
|
178 |
-
recommendations = {
|
179 |
-
'D': "papéis de liderança e gestão de projetos desafiadores",
|
180 |
-
'I': "funções que envolvem comunicação, vendas e trabalho com pessoas",
|
181 |
-
'S': "posições que requerem consistência, suporte e trabalho em equipe",
|
182 |
-
'C': "atividades que demandam precisão, análise e atenção aos detalhes"
|
183 |
-
}
|
184 |
-
return recommendations.get(profile, "diversos papéis profissionais")
|
185 |
-
|
186 |
-
def gerar_relatorio(percentuais):
|
187 |
-
perfis = dict(sorted(percentuais.items(), key=lambda x: x[1], reverse=True))
|
188 |
-
principal, secundario = list(perfis.keys())[:2]
|
189 |
-
insights_p = "\n".join([f"• {i}" for i in generate_semantic_insights(principal, perfis[principal])])
|
190 |
-
insights_s = "\n".join([f"• {i}" for i in generate_semantic_insights(secundario, perfis[secundario])])
|
191 |
-
implications = analyze_profile_implications(percentuais)
|
192 |
-
|
193 |
-
return f"""# Análise de Perfil DISC
|
194 |
-
|
195 |
-
## Visão Geral
|
196 |
-
Perfil principal: {principal} ({perfis[principal]:.1f}% - {get_intensity_level(perfis[principal])})
|
197 |
-
Perfil secundário: {secundario} ({perfis[secundario]:.1f}% - {get_intensity_level(perfis[secundario])})
|
198 |
-
|
199 |
-
## Insights Principais
|
200 |
-
{insights_p}
|
201 |
-
|
202 |
-
## Influências Secundárias
|
203 |
-
{insights_s}
|
204 |
-
|
205 |
-
## Implicações Práticas
|
206 |
-
{implications}
|
207 |
-
|
208 |
-
## Distribuição DISC
|
209 |
-
{', '.join([f'{k}: {v:.1f}%' for k, v in perfis.items()])}
|
210 |
-
|
211 |
-
## Comentário do Sistema
|
212 |
-
Com base no seu perfil, observamos que suas características comportamentais são mais adequadas para {get_career_recommendations(principal)}.
|
213 |
-
Este resultado representa suas tendências naturais e pode ser usado para desenvolvimento pessoal e profissional.
|
214 |
-
|
215 |
-
## Observações Finais
|
216 |
-
• Este perfil reflete seu comportamento natural em ambiente profissional
|
217 |
-
• As recomendações são sugestões para desenvolvimento contínuo
|
218 |
-
• O perfil DISC não é uma medida de competência ou capacidade
|
219 |
-
• Use estas informações como base para seu desenvolvimento profissional"""
|
220 |
|
221 |
def process_results(*answers):
|
222 |
if any(a is None for a in answers):
|
@@ -241,7 +335,7 @@ def create_interface():
|
|
241 |
# 🎯 Análise de Perfil DISC
|
242 |
### Descubra suas características comportamentais dominantes
|
243 |
|
244 |
-
|
245 |
- **D (Dominância)**: Foco em resultados e assertividade
|
246 |
- **I (Influência)**: Foco em relacionamentos e comunicação
|
247 |
- **S (Estabilidade)**: Foco em cooperação e consistência
|
@@ -260,7 +354,7 @@ def create_interface():
|
|
260 |
container=True,
|
261 |
scale=2
|
262 |
)
|
263 |
-
gr.Markdown("---")
|
264 |
radios.append(radio)
|
265 |
|
266 |
with gr.Row():
|
@@ -272,7 +366,7 @@ def create_interface():
|
|
272 |
|
273 |
with gr.Row():
|
274 |
output = gr.Markdown()
|
275 |
-
|
276 |
analyze_btn.click(
|
277 |
fn=process_results,
|
278 |
inputs=radios,
|
@@ -285,31 +379,16 @@ def create_interface():
|
|
285 |
outputs=radios+[plot, output],
|
286 |
api_name="reset"
|
287 |
)
|
288 |
-
|
289 |
-
gr.Examples(
|
290 |
-
examples=[
|
291 |
-
["D - Assume a liderança e toma decisões rápidas",
|
292 |
-
"I - Discute com outros e busca diferentes perspectivas",
|
293 |
-
"S - Ouvir atentamente e contribuir quando solicitado",
|
294 |
-
"C - Analisa os impactos antes de aceitar",
|
295 |
-
"D - Tornar-se mais direto e focado em resultados"]],
|
296 |
-
inputs=radios,
|
297 |
-
outputs=[plot, output],
|
298 |
-
fn=process_results,
|
299 |
-
label="Exemplo de Respostas"
|
300 |
-
)
|
301 |
|
302 |
-
# Add footer with information
|
303 |
gr.Markdown("""
|
304 |
---
|
305 |
### 📝 Informações Importantes
|
306 |
|
307 |
• O teste DISC é uma ferramenta de autoconhecimento e desenvolvimento profissional
|
308 |
-
• Os resultados refletem tendências comportamentais
|
309 |
• Use as informações para desenvolvimento pessoal e melhor comunicação em equipe
|
310 |
-
• Resultados podem variar dependendo do contexto e momento profissional
|
311 |
|
312 |
-
© 2024 DISC Analysis Tool
|
313 |
""")
|
314 |
|
315 |
return iface
|
|
|
3 |
from sentence_transformers import SentenceTransformer
|
4 |
import numpy as np
|
5 |
|
6 |
+
model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
|
7 |
+
|
8 |
+
def generate_profile_analysis(perfil_data):
|
9 |
+
"""
|
10 |
+
Gera análise detalhada baseada nos percentuais DISC usando embeddings
|
11 |
+
"""
|
12 |
+
# Base de conhecimento para análise DISC
|
13 |
+
disc_knowledge = {
|
14 |
+
'D': {
|
15 |
+
'alto': {
|
16 |
+
'caracteristicas': [
|
17 |
+
"Forte capacidade de liderança e decisão",
|
18 |
+
"Orientação para resultados e ação rápida",
|
19 |
+
"Assertividade e competitividade elevadas"
|
20 |
+
],
|
21 |
+
'desenvolvimento': [
|
22 |
+
"Desenvolver mais paciência e empatia",
|
23 |
+
"Praticar escuta ativa",
|
24 |
+
"Considerar impactos nas pessoas"
|
25 |
+
],
|
26 |
+
'carreiras': [
|
27 |
+
"Gestão executiva",
|
28 |
+
"Empreendedorismo",
|
29 |
+
"Gestão de projetos"
|
30 |
+
]
|
31 |
+
},
|
32 |
+
'baixo': {
|
33 |
+
'caracteristicas': [
|
34 |
+
"Abordagem colaborativa e consensual",
|
35 |
+
"Foco em harmonia e cooperação",
|
36 |
+
"Decisões cuidadosas e ponderadas"
|
37 |
+
],
|
38 |
+
'desenvolvimento': [
|
39 |
+
"Desenvolver mais assertividade",
|
40 |
+
"Praticar tomada de decisão",
|
41 |
+
"Expressar opiniões com mais frequência"
|
42 |
+
],
|
43 |
+
'carreiras': [
|
44 |
+
"Análise e planejamento",
|
45 |
+
"Suporte e consultoria",
|
46 |
+
"Desenvolvimento especializado"
|
47 |
+
]
|
48 |
+
}
|
49 |
+
},
|
50 |
+
'I': {
|
51 |
+
'alto': {
|
52 |
+
'caracteristicas': [
|
53 |
+
"Excelente comunicação e sociabilidade",
|
54 |
+
"Entusiasmo e otimismo naturais",
|
55 |
+
"Capacidade de influenciar e motivar"
|
56 |
+
],
|
57 |
+
'desenvolvimento': [
|
58 |
+
"Focar mais em detalhes e organização",
|
59 |
+
"Gerenciar melhor o tempo",
|
60 |
+
"Equilibrar socialização e entregas"
|
61 |
+
],
|
62 |
+
'carreiras': [
|
63 |
+
"Vendas e marketing",
|
64 |
+
"Relações públicas",
|
65 |
+
"Treinamento e desenvolvimento"
|
66 |
+
]
|
67 |
+
},
|
68 |
+
'baixo': {
|
69 |
+
'caracteristicas': [
|
70 |
+
"Comunicação objetiva e focada",
|
71 |
+
"Preferência por dados e fatos",
|
72 |
+
"Abordagem analítica"
|
73 |
+
],
|
74 |
+
'desenvolvimento': [
|
75 |
+
"Desenvolver networking",
|
76 |
+
"Praticar comunicação expressiva",
|
77 |
+
"Participar mais em grupos"
|
78 |
+
],
|
79 |
+
'carreiras': [
|
80 |
+
"Pesquisa e análise",
|
81 |
+
"Desenvolvimento técnico",
|
82 |
+
"Gestão de processos"
|
83 |
+
]
|
84 |
+
}
|
85 |
+
},
|
86 |
+
'S': {
|
87 |
+
'alto': {
|
88 |
+
'caracteristicas': [
|
89 |
+
"Alta consistência e confiabilidade",
|
90 |
+
"Excelente trabalho em equipe",
|
91 |
+
"Paciência e estabilidade"
|
92 |
+
],
|
93 |
+
'desenvolvimento': [
|
94 |
+
"Lidar melhor com mudanças",
|
95 |
+
"Desenvolver mais flexibilidade",
|
96 |
+
"Expressar mais opiniões"
|
97 |
+
],
|
98 |
+
'carreiras': [
|
99 |
+
"Recursos humanos",
|
100 |
+
"Suporte ao cliente",
|
101 |
+
"Gestão operacional"
|
102 |
+
]
|
103 |
+
},
|
104 |
+
'baixo': {
|
105 |
+
'caracteristicas': [
|
106 |
+
"Adaptabilidade a mudanças",
|
107 |
+
"Flexibilidade com rotinas",
|
108 |
+
"Multitarefa eficiente"
|
109 |
+
],
|
110 |
+
'desenvolvimento': [
|
111 |
+
"Desenvolver mais consistência",
|
112 |
+
"Manter compromissos de longo prazo",
|
113 |
+
"Fortalecer relacionamentos"
|
114 |
+
],
|
115 |
+
'carreiras': [
|
116 |
+
"Gestão de mudanças",
|
117 |
+
"Inovação e desenvolvimento",
|
118 |
+
"Consultoria"
|
119 |
+
]
|
120 |
+
}
|
121 |
+
},
|
122 |
+
'C': {
|
123 |
+
'alto': {
|
124 |
+
'caracteristicas': [
|
125 |
+
"Alta precisão e atenção aos detalhes",
|
126 |
+
"Excelente capacidade analítica",
|
127 |
+
"Foco em qualidade e processos"
|
128 |
+
],
|
129 |
+
'desenvolvimento': [
|
130 |
+
"Desenvolver flexibilidade",
|
131 |
+
"Aceitar mais riscos",
|
132 |
+
"Tomar decisões mais rápidas"
|
133 |
+
],
|
134 |
+
'carreiras': [
|
135 |
+
"Análise de dados",
|
136 |
+
"Controle de qualidade",
|
137 |
+
"Planejamento estratégico"
|
138 |
+
]
|
139 |
+
},
|
140 |
+
'baixo': {
|
141 |
+
'caracteristicas': [
|
142 |
+
"Flexibilidade com regras",
|
143 |
+
"Foco em resultados práticos",
|
144 |
+
"Adaptabilidade a mudanças"
|
145 |
+
],
|
146 |
+
'desenvolvimento': [
|
147 |
+
"Melhorar organização",
|
148 |
+
"Aumentar atenção aos detalhes",
|
149 |
+
"Desenvolver análise crítica"
|
150 |
+
],
|
151 |
+
'carreiras': [
|
152 |
+
"Gestão criativa",
|
153 |
+
"Desenvolvimento de produtos",
|
154 |
+
"Vendas consultivas"
|
155 |
+
]
|
156 |
+
}
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
# Determina o perfil dominante e análise correspondente
|
161 |
+
perfil_ordenado = sorted(perfil_data.items(), key=lambda x: x[1], reverse=True)
|
162 |
+
perfil_principal = perfil_ordenado[0][0]
|
163 |
+
nivel = 'alto' if perfil_ordenado[0][1] >= 50 else 'baixo'
|
164 |
+
|
165 |
+
# Gera embeddings para características do perfil
|
166 |
+
profile_data = disc_knowledge[perfil_principal][nivel]
|
167 |
+
|
168 |
+
# Constrói análise personalizada
|
169 |
+
analise = f"""# Análise Detalhada do Perfil DISC
|
170 |
+
|
171 |
+
## Características Principais
|
172 |
+
{chr(10).join([f"• {c}" for c in profile_data['caracteristicas']])}
|
173 |
+
|
174 |
+
## Áreas para Desenvolvimento
|
175 |
+
{chr(10).join([f"• {d}" for d in profile_data['desenvolvimento']])}
|
176 |
+
|
177 |
+
## Carreiras e Funções Recomendadas
|
178 |
+
{chr(10).join([f"• {c}" for c in profile_data['carreiras']])}
|
179 |
+
|
180 |
+
## Análise de Combinação
|
181 |
+
Seu perfil {perfil_principal} {nivel} ({perfil_ordenado[0][1]:.1f}%) combinado com {perfil_ordenado[1][0]} secundário ({perfil_ordenado[1][1]:.1f}%) sugere:
|
182 |
+
• {'Forte capacidade de liderança com foco em pessoas' if perfil_ordenado[1][0] == 'I' else 'Capacidade analítica com orientação para resultados' if perfil_ordenado[1][0] == 'C' else 'Estabilidade com foco em entregas' if perfil_ordenado[1][0] == 'S' else 'Dinamismo com assertividade'}
|
183 |
+
|
184 |
+
## Contribuições para Equipe
|
185 |
+
• {generate_team_contribution(perfil_principal, nivel)}
|
186 |
+
|
187 |
+
## Estilo de Comunicação
|
188 |
+
• {generate_communication_style(perfil_principal, nivel)}
|
189 |
"""
|
190 |
+
return analise
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
191 |
|
192 |
+
def generate_team_contribution(perfil, nivel):
|
193 |
+
contribuicoes = {
|
194 |
+
'D': {
|
195 |
+
'alto': "Traz direção clara e foco em resultados para a equipe",
|
196 |
+
'baixo': "Contribui com abordagem colaborativa e ponderada"
|
197 |
+
},
|
198 |
+
'I': {
|
199 |
+
'alto': "Promove entusiasmo e mantém a equipe motivada",
|
200 |
+
'baixo': "Traz objetividade e foco para as discussões"
|
201 |
+
},
|
202 |
+
'S': {
|
203 |
+
'alto': "Proporciona estabilidade e suporte consistente",
|
204 |
+
'baixo': "Adiciona dinamismo e adaptabilidade ao grupo"
|
205 |
+
},
|
206 |
+
'C': {
|
207 |
+
'alto': "Garante qualidade e precisão nas entregas",
|
208 |
+
'baixo': "Traz praticidade e flexibilidade aos processos"
|
209 |
+
}
|
210 |
+
}
|
211 |
+
return contribuicoes[perfil][nivel]
|
212 |
|
213 |
+
def generate_communication_style(perfil, nivel):
|
214 |
+
estilos = {
|
215 |
+
'D': {
|
216 |
+
'alto': "Comunicação direta e focada em resultados",
|
217 |
+
'baixo': "Comunicação colaborativa e consensual"
|
218 |
+
},
|
219 |
+
'I': {
|
220 |
+
'alto': "Comunicação expressiva e entusiasta",
|
221 |
+
'baixo': "Comunicação objetiva e baseada em fatos"
|
222 |
+
},
|
223 |
+
'S': {
|
224 |
+
'alto': "Comunicação paciente e atenciosa",
|
225 |
+
'baixo': "Comunicação adaptável e flexível"
|
226 |
+
},
|
227 |
+
'C': {
|
228 |
+
'alto': "Comunicação precisa e detalhada",
|
229 |
+
'baixo': "Comunicação prática e objetiva"
|
230 |
+
}
|
231 |
+
}
|
232 |
+
return estilos[perfil][nivel]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
|
234 |
+
def gerar_relatorio(percentuais):
|
235 |
+
"""
|
236 |
+
Função principal para gerar o relatório completo
|
237 |
+
"""
|
238 |
+
analise_detalhada = generate_profile_analysis(percentuais)
|
239 |
+
|
240 |
+
return f"""# Análise de Perfil DISC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
|
242 |
+
## Distribuição DISC
|
243 |
+
{', '.join([f'{k}: {v:.1f}%' for k, v in percentuais.items()])}
|
|
|
|
|
|
|
|
|
244 |
|
245 |
+
{analise_detalhada}
|
246 |
+
|
247 |
+
## Observações Finais
|
248 |
+
• Este perfil reflete suas tendências comportamentais naturais
|
249 |
+
• Use estas informações como base para desenvolvimento profissional
|
250 |
+
• O perfil DISC é uma ferramenta de autoconhecimento
|
251 |
+
"""
|
252 |
|
253 |
def calcular_perfil(respostas):
|
254 |
contagem = {k: sum(1 for r in respostas if r and r.startswith(k)) for k in 'DISC'}
|
|
|
284 |
|
285 |
return fig
|
286 |
|
287 |
+
DISC_QUESTIONS = [
|
288 |
+
{"pergunta": "Em situações de trabalho em equipe, você geralmente:",
|
289 |
+
"opcoes": [("D", "Assume a liderança e toma decisões rápidas"),
|
290 |
+
("I", "Motiva o grupo e mantém o ambiente animado"),
|
291 |
+
("S", "Apoia os colegas e mantém a harmonia"),
|
292 |
+
("C", "Analisa detalhadamente antes de agir")]},
|
293 |
+
{"pergunta": "Quando enfrenta um desafio no trabalho, você:",
|
294 |
+
"opcoes": [("D", "Enfrenta diretamente e busca soluções imediatas"),
|
295 |
+
("I", "Discute com outros e busca diferentes perspectivas"),
|
296 |
+
("S", "Mantém a calma e segue um processo estabelecido"),
|
297 |
+
("C", "Pesquisa todas as informações disponíveis primeiro")]},
|
298 |
+
{"pergunta": "Em reuniões profissionais, você costuma:",
|
299 |
+
"opcoes": [("D", "Ir direto ao ponto e focar em resultados"),
|
300 |
+
("I", "Participar ativamente e compartilhar ideias"),
|
301 |
+
("S", "Ouvir atentamente e contribuir quando solicitado"),
|
302 |
+
("C", "Tomar notas e questionar os detalhes")]},
|
303 |
+
{"pergunta": "Ao lidar com mudanças no ambiente de trabalho, você:",
|
304 |
+
"opcoes": [("D", "Abraça a mudança e lidera a implementação"),
|
305 |
+
("I", "Entusiasma os outros sobre as novas possibilidades"),
|
306 |
+
("S", "Adapta-se gradualmente seguindo o processo"),
|
307 |
+
("C", "Analisa os impactos antes de aceitar")]},
|
308 |
+
{"pergunta": "Sob pressão no trabalho, você tende a:",
|
309 |
+
"opcoes": [("D", "Tornar-se mais direto e focado em resultados"),
|
310 |
+
("I", "Buscar apoio e interação com a equipe"),
|
311 |
+
("S", "Manter a calma e seguir metodicamente"),
|
312 |
+
("C", "Concentrar-se em detalhes e procedimentos")]}
|
313 |
+
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
314 |
|
315 |
def process_results(*answers):
|
316 |
if any(a is None for a in answers):
|
|
|
335 |
# 🎯 Análise de Perfil DISC
|
336 |
### Descubra suas características comportamentais dominantes
|
337 |
|
338 |
+
Uma análise personalizada do seu perfil comportamental DISC:
|
339 |
- **D (Dominância)**: Foco em resultados e assertividade
|
340 |
- **I (Influência)**: Foco em relacionamentos e comunicação
|
341 |
- **S (Estabilidade)**: Foco em cooperação e consistência
|
|
|
354 |
container=True,
|
355 |
scale=2
|
356 |
)
|
357 |
+
gr.Markdown("---")
|
358 |
radios.append(radio)
|
359 |
|
360 |
with gr.Row():
|
|
|
366 |
|
367 |
with gr.Row():
|
368 |
output = gr.Markdown()
|
369 |
+
|
370 |
analyze_btn.click(
|
371 |
fn=process_results,
|
372 |
inputs=radios,
|
|
|
379 |
outputs=radios+[plot, output],
|
380 |
api_name="reset"
|
381 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
382 |
|
|
|
383 |
gr.Markdown("""
|
384 |
---
|
385 |
### 📝 Informações Importantes
|
386 |
|
387 |
• O teste DISC é uma ferramenta de autoconhecimento e desenvolvimento profissional
|
388 |
+
• Os resultados refletem tendências comportamentais naturais
|
389 |
• Use as informações para desenvolvimento pessoal e melhor comunicação em equipe
|
|
|
390 |
|
391 |
+
© 2024 DISC Analysis Tool
|
392 |
""")
|
393 |
|
394 |
return iface
|