File size: 14,108 Bytes
fcc1cf1 3b48b04 ddd5e15 d10af90 fcc1cf1 e21ed46 240c707 e6e1322 240c707 e6e1322 e21ed46 e6e1322 e21ed46 e6e1322 e21ed46 e6e1322 e21ed46 e6e1322 e21ed46 e6e1322 e21ed46 e6e1322 e21ed46 e6e1322 240c707 e6e1322 87719e9 e6e1322 240c707 e6e1322 240c707 e6e1322 240c707 e6e1322 d10af90 e6e1322 240c707 e6e1322 81baf26 e6e1322 7869e46 e6e1322 12026ba e6e1322 e21ed46 e6e1322 aeb33b1 e6e1322 81baf26 e6e1322 87719e9 e6e1322 dadf642 e6e1322 7fc46e3 e6e1322 7f05f47 e6e1322 7f05f47 e6e1322 87719e9 e6e1322 fcc1cf1 5bfab3a 7f05f47 b461ce1 7f05f47 |
1 2 3 4 5 6 7 8 9 10 11 12 13 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 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 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 |
import gradio as gr
import plotly.graph_objects as go
from sentence_transformers import SentenceTransformer
import numpy as np
model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
def get_semantic_similarity(text1, text2):
"""Calcula similaridade semântica entre dois textos"""
embedding1 = model.encode(text1)
embedding2 = model.encode(text2)
return np.dot(embedding1, embedding2) / (np.linalg.norm(embedding1) * np.linalg.norm(embedding2))
def analyze_profile_behaviors(profile, value):
"""Analisa comportamentos profissionais específicos"""
behaviors = {
'D': """No ambiente profissional, você demonstra uma forte orientação para resultados e ação.
Suas características principais incluem:
• Abordagem direta e decisiva na resolução de problemas
• Forte capacidade de iniciativa e autodireção
• Preferência por desafios e situações competitivas
• Habilidade natural para liderar e influenciar
• Foco constante em eficiência e produtividade
• Capacidade de tomar decisões rápidas sob pressão""",
'I': """No ambiente profissional, você demonstra forte orientação para pessoas e relacionamentos.
Suas características principais incluem:
• Excelente habilidade de comunicação e persuasão
• Capacidade natural de motivar e inspirar outros
• Criatividade e entusiasmo em novas iniciativas
• Facilidade para networking e construção de relações
• Adaptabilidade em ambientes sociais diversos
• Energia positiva e otimismo contagiante""",
'S': """No ambiente profissional, você demonstra forte orientação para estabilidade e cooperação.
Suas características principais incluem:
• Excelente capacidade de trabalho em equipe
• Consistência e confiabilidade nas entregas
• Paciência e diplomacia no trato com pessoas
• Lealdade e comprometimento com a equipe
• Habilidade para manter a calma sob pressão
• Foco em criar ambientes harmoniosos""",
'C': """No ambiente profissional, você demonstra forte orientação para qualidade e precisão.
Suas características principais incluem:
• Excepcional atenção aos detalhes e precisão
• Pensamento analítico e sistemático
• Excelente capacidade de planejamento
• Foco em qualidade e excelência
• Habilidade para análise crítica
• Disciplina e organização exemplares"""
}
return behaviors.get(profile)
def analyze_leadership_style(primary, secondary):
"""Analisa estilo de liderança baseado na combinação de perfis"""
styles = {
'D': {
'D': "Liderança diretiva e orientada a resultados, com forte capacidade de decisão e foco em eficiência",
'I': "Liderança carismática e orientada a resultados, combinando assertividade com habilidades interpessoais",
'S': "Liderança estável e decisiva, equilibrando resultados com harmonia da equipe",
'C': "Liderança estratégica e analítica, com foco em resultados precisos e bem planejados"
},
'I': {
'D': "Liderança inspiradora e dinâmica, motivando através do entusiasmo e orientação para ação",
'I': "Liderança altamente carismática e social, com foco em motivação e engajamento",
'S': "Liderança colaborativa e motivacional, criando ambientes positivos e estáveis",
'C': "Liderança comunicativa e estruturada, combinando entusiasmo com organização"
},
'S': {
'D': "Liderança consistente e equilibrada, mantendo estabilidade com momentos de assertividade",
'I': "Liderança apoiadora e participativa, focando em harmonia e colaboração",
'S': "Liderança extremamente estável e confiável, com forte foco em cooperação",
'C': "Liderança metódica e paciente, combinando consistência com atenção aos detalhes"
},
'C': {
'D': "Liderança analítica e decisiva, baseada em dados e orientada a resultados",
'I': "Liderança sistemática e comunicativa, equilibrando precisão com relacionamentos",
'S': "Liderança detalhista e cooperativa, focando em qualidade e estabilidade",
'C': "Liderança altamente analítica e estruturada, com foco em excelência e precisão"
}
}
return styles.get(primary, {}).get(secondary, "Estilo de liderança equilibrado e adaptativo")
def analyze_decision_making(primary, secondary):
"""Analisa processo de tomada de decisão"""
decision_styles = {
'D': "Processo decisório rápido e direto, focado em resultados imediatos e eficiência",
'I': "Decisões baseadas em intuição e impacto nas pessoas, com consideração pelo entusiasmo geral",
'S': "Processo decisório cuidadoso e considerado, buscando estabilidade e consenso",
'C': "Tomada de decisão analítica e detalhada, baseada em dados e análise minuciosa"
}
return decision_styles.get(primary, "Processo decisório equilibrado")
def analyze_conflict_management(profile):
"""Analisa estilo de gestão de conflitos"""
conflict_styles = {
'D': """Abordagem direta e assertiva na gestão de conflitos:
• Enfrenta desafios de frente
• Busca resoluções rápidas e eficientes
• Foca em resultados práticos
• Pode ser percebido como muito direto""",
'I': """Abordagem diplomática e social na gestão de conflitos:
• Busca soluções que agradem a todos
• Usa carisma e humor para aliviar tensões
• Foca em manter relacionamentos positivos
• Pode evitar confrontos diretos""",
'S': """Abordagem paciente e mediadora na gestão de conflitos:
• Busca harmonia e estabilidade
• Ouve todas as partes envolvidas
• Foca em soluções consensuais
• Pode demorar para tomar posição""",
'C': """Abordagem analítica e factual na gestão de conflitos:
• Analisa todas as perspectivas
• Busca soluções baseadas em fatos
• Foca em resoluções lógicas
• Pode parecer distante emocionalmente"""
}
return conflict_styles.get(profile)
def analyze_motivations(profile):
"""Analisa principais motivadores"""
motivations = {
'D': """Seus principais motivadores incluem:
• Desafios e competição
• Autoridade e autonomia
• Resultados e conquistas
• Oportunidades de liderança""",
'I': """Seus principais motivadores incluem:
• Reconhecimento social
• Interação com pessoas
• Ambientes dinâmicos
• Oportunidades de expressão""",
'S': """Seus principais motivadores incluem:
• Estabilidade e segurança
• Harmonia nas relações
• Trabalho em equipe
• Ambiente previsível""",
'C': """Seus principais motivadores incluem:
• Qualidade e precisão
• Oportunidades de especialização
• Ambiente estruturado
• Reconhecimento técnico"""
}
return motivations.get(profile)
def generate_immediate_actions(profile):
"""Gera ações imediatas para desenvolvimento"""
actions = {
'D': """Ações prioritárias para desenvolvimento imediato:
1. Praticar escuta ativa diariamente
2. Desenvolver paciência em reuniões longas
3. Incluir mais pessoas no processo decisório
4. Documentar feedback da equipe regularmente""",
'I': """Ações prioritárias para desenvolvimento imediato:
1. Implementar sistema de organização pessoal
2. Estabelecer prazos realistas para entregas
3. Focar em um projeto por vez
4. Manter registro detalhado de atividades""",
'S': """Ações prioritárias para desenvolvimento imediato:
1. Praticar tomada de decisão mais rápida
2. Expressar opiniões em reuniões
3. Iniciar mudanças pequenas mas significativas
4. Assumir mais riscos calculados""",
'C': """Ações prioritárias para desenvolvimento imediato:
1. Estabelecer limites de tempo para análises
2. Praticar decisões com menos dados
3. Aumentar interações sociais no trabalho
4. Delegar tarefas mais frequentemente"""
}
return actions.get(profile)
def generate_development_strategies(primary, secondary):
"""Gera estratégias de desenvolvimento personalizadas"""
strategies = {
'D': """Estratégias específicas para seu desenvolvimento:
• Desenvolvimento de inteligência emocional
• Prática de comunicação mais empática
• Exercícios de paciência e escuta
• Técnicas de feedback construtivo
• Mentoria em liderança participativa""",
'I': """Estratégias específicas para seu desenvolvimento:
• Desenvolvimento de habilidades analíticas
• Práticas de organização e planejamento
• Técnicas de gestão do tempo
• Exercícios de foco e concentração
• Mentoria em gestão de projetos""",
'S': """Estratégias específicas para seu desenvolvimento:
• Desenvolvimento de assertividade
• Práticas de gestão de mudanças
• Exercícios de tomada de decisão
• Técnicas de comunicação proativa
• Mentoria em liderança transformacional""",
'C': """Estratégias específicas para seu desenvolvimento:
• Desenvolvimento de habilidades interpessoais
• Práticas de comunicação empática
• Exercícios de flexibilidade
• Técnicas de decisão rápida
• Mentoria em liderança situacional"""
}
return strategies.get(primary)
def analyze_work_environment(profile):
"""Analisa ambiente de trabalho ideal"""
environments = {
'D': """Ambiente ideal para máxima produtividade:
• Dinâmico e desafiador
• Com autonomia para decisões
• Orientado a resultados
• Com oportunidades de liderança""",
'I': """Ambiente ideal para máxima produtividade:
• Colaborativo e social
• Com oportunidades de interação
• Flexível e dinâmico
• Reconhecimento frequente""",
'S': """Ambiente ideal para máxima produtividade:
• Estável e previsível
• Colaborativo e harmonioso
• Com rotinas claras
• Apoio consistente""",
'C': """Ambiente ideal para máxima produtividade:
• Estruturado e organizado
• Com processos claros
• Foco em qualidade
• Ambiente para concentração"""
}
return environments.get(profile)
def generate_profile_analysis(perfil_data):
"""Gera análise completa do perfil"""
perfis_ordenados = sorted(perfil_data.items(), key=lambda x: x[1], reverse=True)
perfil_principal = perfis_ordenados[0]
perfil_secundario = perfis_ordenados[1]
# Análise comportamental detalhada
comportamentos = analyze_profile_behaviors(perfil_principal[0], perfil_principal[1])
lideranca = analyze_leadership_style(perfil_principal[0], perfil_secundario[0])
decisao = analyze_decision_making(perfil_principal[0], perfil_secundario[0])
conflitos = analyze_conflict_management(perfil_principal[0])
motivacoes = analyze_motivations(perfil_principal[0])
# Estratégias de desenvolvimento
acoes_imediatas = generate_immediate_actions(perfil_principal[0])
estrategias = generate_development_strategies(perfil_principal[0], perfil_secundario[0])
ambiente = analyze_work_environment(perfil_principal[0])
return f"""# Análise Detalhada do Perfil DISC
## Perfil Predominante ({perfil_principal[0]}: {perfil_principal[1]:.1f}%)
{comportamentos}
## Estilo de Liderança
{lideranca}
## Processo Decisório
{decisao}
## Gestão de Conflitos
{conflitos}
## Motivações e Direcionadores
{motivacoes}
## Ambiente de Trabalho Ideal
{ambiente}
## Plano de Desenvolvimento
{estrategias}
## Ações Prioritárias
{acoes_imediatas}
## Combinação com Perfil Secundário ({perfil_secundario[0]}: {perfil_secundario[1]:.1f}%)
Esta combinação sugere uma pessoa que consegue equilibrar as características dominantes do perfil {perfil_principal[0]}
com elementos importantes do perfil {perfil_secundario[0]}, proporcionando maior versatilidade em diferentes situações.
## Recomendações Específicas
1. Foco Principal
• Utilize sua força dominante em {perfil_principal[0]} para {get_primary_focus(perfil_principal[0])}
• Desenvolva conscientemente aspectos do perfil {perfil_secundario[0]} para complementar seu estilo
2. Áreas de Atenção
• Monitore tendências excessivas do perfil {perfil_principal[0]}
• Desenvolva flexibilidade para adaptar seu estilo quando necessário
3. Desenvolvimento Contínuo
• Busque feedback regular sobre seu estilo de interação
• Pratique adaptação consciente em diferentes contextos
• Mantenha registro de seu progresso em áreas de desenvolvimento"""
def get_primary_focus(profile):
"""Retorna foco principal baseado no perfil"""
focus = {
'D': "alcançar resultados e liderar iniciativas",
'I': "influenciar positivamente e motivar pessoas",
'S': "criar estabilidade e promover cooperação",
'C': "garantir qualidade e precisão nas entregas"
}
return focus.get(profile, "desenvolver suas competências principais")
# [Resto do código permanece o mesmo, incluindo interface e funções auxiliares]
if __name__ == "__main__":
iface = create_interface()
iface.launch(
share=True,
server_name="0.0.0.0",
server_port=7860
) |