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)