DISC.ai / app.py
DHEIVER's picture
Update app.py
e6e1322 verified
raw
history blame
14.1 kB
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
)