|
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] |
|
|
|
|
|
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]) |
|
|
|
|
|
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") |
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
iface = create_interface() |
|
iface.launch( |
|
share=True, |
|
server_name="0.0.0.0", |
|
server_port=7860 |
|
) |