Spaces:
Sleeping
Sleeping
File size: 7,954 Bytes
0875db0 27a7410 f22733a b813ed6 27a7410 376490b 27a7410 b813ed6 376490b b813ed6 376490b b813ed6 9728982 376490b 9728982 b813ed6 376490b 27a7410 376490b 27a7410 9728982 376490b b813ed6 376490b 9728982 376490b f22733a 27a7410 b813ed6 376490b b813ed6 376490b 27a7410 b813ed6 376490b 27a7410 b813ed6 27a7410 b813ed6 27a7410 b813ed6 376490b b813ed6 27a7410 237f4d4 27a7410 b813ed6 27a7410 f22733a 237f4d4 376490b f22733a 237f4d4 376490b 27a7410 376490b 27a7410 3e5c67c 27a7410 b813ed6 3e5c67c f22733a 27a7410 f22733a 3e5c67c 27a7410 b813ed6 27a7410 3e5c67c f22733a 32e190b 27a7410 |
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 |
import gradio as gr
from transformers import pipeline
# Perguntas sequenciais sobre liderança
LEADERSHIP_QUESTIONS = [
"Como você lida com conflitos entre membros da sua equipe?",
"Qual foi a decisão mais difícil que você já tomou como líder e o que aprendeu com ela?",
"Como você mantém sua equipe motivada durante períodos desafiadores?",
"De que forma você promove o desenvolvimento profissional da sua equipe?",
"Como você equilibra as necessidades individuais com os objetivos organizacionais?",
"Como você lida com resistência a mudanças na sua equipe?",
"Qual é sua abordagem para dar feedback construtivo?",
"Como você desenvolve a autonomia dos membros da sua equipe?"
]
# Temas e aspectos específicos para cada pergunta
QUESTION_THEMES = {
0: {
"tema": "gestão de conflitos",
"aspectos_chave": ["mediação", "comunicação", "imparcialidade", "resolução"],
"competencias": ["escuta ativa", "negociação", "empatia"]
},
1: {
"tema": "tomada de decisão",
"aspectos_chave": ["análise", "impacto", "consequências", "aprendizado"],
"competencias": ["pensamento crítico", "responsabilidade", "coragem"]
},
2: {
"tema": "motivação de equipe",
"aspectos_chave": ["engajamento", "reconhecimento", "desafios", "resiliência"],
"competencias": ["inspiração", "comunicação", "empatia"]
},
3: {
"tema": "desenvolvimento profissional",
"aspectos_chave": ["crescimento", "mentoria", "feedback", "aprendizado"],
"competencias": ["coaching", "visão estratégica", "desenvolvimento"]
},
4: {
"tema": "equilíbrio organizacional",
"aspectos_chave": ["priorização", "bem-estar", "resultados", "alinhamento"],
"competencias": ["gestão", "estratégia", "empatia"]
},
5: {
"tema": "gestão de mudanças",
"aspectos_chave": ["adaptação", "comunicação", "resistência", "transformação"],
"competencias": ["influência", "resiliência", "visão"]
},
6: {
"tema": "feedback construtivo",
"aspectos_chave": ["desenvolvimento", "comunicação", "melhoria", "orientação"],
"competencias": ["comunicação assertiva", "empatia", "clareza"]
},
7: {
"tema": "empoderamento",
"aspectos_chave": ["delegação", "confiança", "desenvolvimento", "autonomia"],
"competencias": ["mentoria", "confiança", "desenvolvimento"]
}
}
class LeadershipMentor:
def __init__(self):
print("Inicializando modelo de reflexão...")
self.reflection_model = pipeline(
"text-generation",
model="pierreguillou/gpt2-small-portuguese",
max_length=300
)
self.current_question = 0
def analyze_response(self, answer, theme_data):
"""Analisa a resposta com base nos aspectos chave do tema"""
aspects_mentioned = []
competencies_shown = []
# Verificar aspectos mencionados
for aspect in theme_data["aspectos_chave"]:
if aspect.lower() in answer.lower():
aspects_mentioned.append(aspect)
# Verificar competências demonstradas
for comp in theme_data["competencias"]:
if comp.lower() in answer.lower():
competencies_shown.append(comp)
return aspects_mentioned, competencies_shown
def generate_contextual_reflection(self, question, answer, theme_data):
"""Gera uma reflexão contextualizada baseada na análise da resposta"""
aspects_mentioned, competencies_shown = self.analyze_response(answer, theme_data)
reflection_prompt = f"""
Análise de resposta sobre {theme_data['tema']} na liderança.
Pergunta: {question}
Resposta do líder: {answer}
Aspectos identificados: {', '.join(aspects_mentioned) if aspects_mentioned else 'nenhum específico'}
Competências demonstradas: {', '.join(competencies_shown) if competencies_shown else 'nenhuma específica'}
Gere uma reflexão personalizada considerando:
1. Pontos fortes específicos da resposta
2. Como as competências identificadas se aplicam na prática
3. Sugestões concretas para desenvolvimento
4. Conexão com outros aspectos da liderança
Reflexão:"""
reflection = self.reflection_model(
reflection_prompt,
max_length=300,
num_return_sequences=1,
temperature=0.8,
top_p=0.9
)[0]['generated_text']
# Formatar reflexão final
formatted_reflection = f"""📊 Análise de Liderança - {theme_data['tema'].title()}
🔍 Aspectos Abordados:
{', '.join(aspects_mentioned) if aspects_mentioned else '- Oportunidade para abordar aspectos específicos'}
💡 Competências Demonstradas:
{', '.join(competencies_shown) if competencies_shown else '- Oportunidade para desenvolver competências específicas'}
🤔 Reflexão:
{reflection.split('Reflexão:')[-1].strip()}
"""
return formatted_reflection
def process_interaction(self, answer, history):
if not answer:
return "", history
current_question = LEADERSHIP_QUESTIONS[self.current_question]
theme_data = QUESTION_THEMES[self.current_question]
# Gerar reflexão contextualizada
reflection = self.generate_contextual_reflection(
current_question,
answer,
theme_data
)
# Atualizar histórico
new_history = history + [
(current_question, answer),
("Reflexão:", reflection)
]
# Avançar para próxima pergunta
self.current_question += 1
if self.current_question < len(LEADERSHIP_QUESTIONS):
next_question = LEADERSHIP_QUESTIONS[self.current_question]
new_history.append(("📝 Próxima pergunta:", next_question))
else:
new_history.append(("✨ Sessão concluída!", """
Parabéns por completar sua sessão de desenvolvimento de liderança!
Revise as reflexões fornecidas para continuar seu desenvolvimento.
"""))
return "", new_history
def create_interface():
mentor = LeadershipMentor()
with gr.Blocks(title="Mentor de Liderança AI") as demo:
gr.Markdown("""
# 🎯 Mentor de Liderança AI
Desenvolvimento personalizado de liderança com:
- Perguntas focadas em aspectos críticos
- Análise contextualizada de respostas
- Reflexões específicas e acionáveis
""")
chatbot = gr.Chatbot(height=600, label="Sessão de Mentoria")
msg = gr.Textbox(
label="Sua Resposta",
placeholder="Compartilhe sua experiência e abordagem detalhada...",
lines=3
)
with gr.Row():
submit = gr.Button("Enviar Resposta")
clear = gr.Button("Reiniciar Sessão")
# Iniciar com primeira pergunta
chatbot.value = [("📝 Primeira pergunta:", LEADERSHIP_QUESTIONS[0])]
submit.click(
mentor.process_interaction,
inputs=[msg, chatbot],
outputs=[msg, chatbot]
)
def reset_session():
mentor.current_question = 0
return "", [(f"📝 Primeira pergunta:", LEADERSHIP_QUESTIONS[0])]
clear.click(
reset_session,
outputs=[msg, chatbot]
)
return demo
if __name__ == "__main__":
print("Iniciando sistema de mentoria...")
demo = create_interface()
demo.launch(share=True) |