DHEIVER commited on
Commit
376490b
1 Parent(s): b813ed6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +109 -32
app.py CHANGED
@@ -13,69 +13,150 @@ LEADERSHIP_QUESTIONS = [
13
  "Como você desenvolve a autonomia dos membros da sua equipe?"
14
  ]
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  class LeadershipMentor:
17
  def __init__(self):
18
  print("Inicializando modelo de reflexão...")
19
- # Modelo para análise e reflexão sobre respostas
20
  self.reflection_model = pipeline(
21
  "text-generation",
22
  model="pierreguillou/gpt2-small-portuguese",
23
- max_length=200
24
  )
25
  self.current_question = 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
- def generate_reflection(self, question, answer):
28
- """Gera uma reflexão sobre a resposta do usuário"""
29
  reflection_prompt = f"""
30
- Analise esta resposta sobre liderança e forneça feedback construtivo:
31
 
32
  Pergunta: {question}
33
- Resposta: {answer}
34
 
35
- Considere:
36
- 1. Pontos fortes demonstrados
37
- 2. Oportunidades de desenvolvimento
38
- 3. Sugestões práticas específicas
 
 
 
 
39
 
40
  Reflexão:"""
41
 
42
  reflection = self.reflection_model(
43
- reflection_prompt,
44
- max_length=200,
45
  num_return_sequences=1,
46
- temperature=0.7
 
47
  )[0]['generated_text']
48
 
49
- return reflection.split("Reflexão:")[-1].strip()
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
  def process_interaction(self, answer, history):
52
- """Processa a resposta do usuário e avança para próxima pergunta"""
53
  if not answer:
54
  return "", history
55
 
56
  current_question = LEADERSHIP_QUESTIONS[self.current_question]
 
57
 
58
- # Gerar reflexão sobre a resposta
59
- reflection = self.generate_reflection(current_question, answer)
 
 
 
 
60
 
61
  # Atualizar histórico
62
  new_history = history + [
63
  (current_question, answer),
64
- ("🤔 Reflexão:", reflection)
65
  ]
66
 
67
  # Avançar para próxima pergunta
68
  self.current_question += 1
69
 
70
- # Verificar se ainda há perguntas
71
  if self.current_question < len(LEADERSHIP_QUESTIONS):
72
  next_question = LEADERSHIP_QUESTIONS[self.current_question]
73
  new_history.append(("📝 Próxima pergunta:", next_question))
74
  else:
75
  new_history.append(("✨ Sessão concluída!", """
76
- Parabéns por completar todas as perguntas!
77
- Suas respostas demonstram reflexão sobre diferentes aspectos da liderança.
78
- Continue desenvolvendo suas habilidades com base nas reflexões fornecidas.
79
  """))
80
 
81
  return "", new_history
@@ -87,20 +168,16 @@ def create_interface():
87
  gr.Markdown("""
88
  # 🎯 Mentor de Liderança AI
89
 
90
- Sistema interativo para desenvolvimento de habilidades de liderança:
91
- - Responda a perguntas sequenciais sobre diferentes aspectos da liderança
92
- - Receba reflexões personalizadas sobre suas respostas
93
- - Desenvolva seu estilo de liderança através do autoconhecimento
94
  """)
95
 
96
- chatbot = gr.Chatbot(
97
- height=600,
98
- label="Sessão de Mentoria"
99
- )
100
-
101
  msg = gr.Textbox(
102
  label="Sua Resposta",
103
- placeholder="Digite sua resposta detalhada aqui...",
104
  lines=3
105
  )
106
 
 
13
  "Como você desenvolve a autonomia dos membros da sua equipe?"
14
  ]
15
 
16
+ # Temas e aspectos específicos para cada pergunta
17
+ QUESTION_THEMES = {
18
+ 0: {
19
+ "tema": "gestão de conflitos",
20
+ "aspectos_chave": ["mediação", "comunicação", "imparcialidade", "resolução"],
21
+ "competencias": ["escuta ativa", "negociação", "empatia"]
22
+ },
23
+ 1: {
24
+ "tema": "tomada de decisão",
25
+ "aspectos_chave": ["análise", "impacto", "consequências", "aprendizado"],
26
+ "competencias": ["pensamento crítico", "responsabilidade", "coragem"]
27
+ },
28
+ 2: {
29
+ "tema": "motivação de equipe",
30
+ "aspectos_chave": ["engajamento", "reconhecimento", "desafios", "resiliência"],
31
+ "competencias": ["inspiração", "comunicação", "empatia"]
32
+ },
33
+ 3: {
34
+ "tema": "desenvolvimento profissional",
35
+ "aspectos_chave": ["crescimento", "mentoria", "feedback", "aprendizado"],
36
+ "competencias": ["coaching", "visão estratégica", "desenvolvimento"]
37
+ },
38
+ 4: {
39
+ "tema": "equilíbrio organizacional",
40
+ "aspectos_chave": ["priorização", "bem-estar", "resultados", "alinhamento"],
41
+ "competencias": ["gestão", "estratégia", "empatia"]
42
+ },
43
+ 5: {
44
+ "tema": "gestão de mudanças",
45
+ "aspectos_chave": ["adaptação", "comunicação", "resistência", "transformação"],
46
+ "competencias": ["influência", "resiliência", "visão"]
47
+ },
48
+ 6: {
49
+ "tema": "feedback construtivo",
50
+ "aspectos_chave": ["desenvolvimento", "comunicação", "melhoria", "orientação"],
51
+ "competencias": ["comunicação assertiva", "empatia", "clareza"]
52
+ },
53
+ 7: {
54
+ "tema": "empoderamento",
55
+ "aspectos_chave": ["delegação", "confiança", "desenvolvimento", "autonomia"],
56
+ "competencias": ["mentoria", "confiança", "desenvolvimento"]
57
+ }
58
+ }
59
+
60
  class LeadershipMentor:
61
  def __init__(self):
62
  print("Inicializando modelo de reflexão...")
 
63
  self.reflection_model = pipeline(
64
  "text-generation",
65
  model="pierreguillou/gpt2-small-portuguese",
66
+ max_length=300
67
  )
68
  self.current_question = 0
69
+
70
+ def analyze_response(self, answer, theme_data):
71
+ """Analisa a resposta com base nos aspectos chave do tema"""
72
+ aspects_mentioned = []
73
+ competencies_shown = []
74
+
75
+ # Verificar aspectos mencionados
76
+ for aspect in theme_data["aspectos_chave"]:
77
+ if aspect.lower() in answer.lower():
78
+ aspects_mentioned.append(aspect)
79
+
80
+ # Verificar competências demonstradas
81
+ for comp in theme_data["competencias"]:
82
+ if comp.lower() in answer.lower():
83
+ competencies_shown.append(comp)
84
+
85
+ return aspects_mentioned, competencies_shown
86
+
87
+ def generate_contextual_reflection(self, question, answer, theme_data):
88
+ """Gera uma reflexão contextualizada baseada na análise da resposta"""
89
+ aspects_mentioned, competencies_shown = self.analyze_response(answer, theme_data)
90
 
 
 
91
  reflection_prompt = f"""
92
+ Análise de resposta sobre {theme_data['tema']} na liderança.
93
 
94
  Pergunta: {question}
95
+ Resposta do líder: {answer}
96
 
97
+ Aspectos identificados: {', '.join(aspects_mentioned) if aspects_mentioned else 'nenhum específico'}
98
+ Competências demonstradas: {', '.join(competencies_shown) if competencies_shown else 'nenhuma específica'}
99
+
100
+ Gere uma reflexão personalizada considerando:
101
+ 1. Pontos fortes específicos da resposta
102
+ 2. Como as competências identificadas se aplicam na prática
103
+ 3. Sugestões concretas para desenvolvimento
104
+ 4. Conexão com outros aspectos da liderança
105
 
106
  Reflexão:"""
107
 
108
  reflection = self.reflection_model(
109
+ reflection_prompt,
110
+ max_length=300,
111
  num_return_sequences=1,
112
+ temperature=0.8,
113
+ top_p=0.9
114
  )[0]['generated_text']
115
 
116
+ # Formatar reflexão final
117
+ formatted_reflection = f"""📊 Análise de Liderança - {theme_data['tema'].title()}
118
+
119
+ 🔍 Aspectos Abordados:
120
+ {', '.join(aspects_mentioned) if aspects_mentioned else '- Oportunidade para abordar aspectos específicos'}
121
+
122
+ 💡 Competências Demonstradas:
123
+ {', '.join(competencies_shown) if competencies_shown else '- Oportunidade para desenvolver competências específicas'}
124
+
125
+ 🤔 Reflexão:
126
+ {reflection.split('Reflexão:')[-1].strip()}
127
+ """
128
+ return formatted_reflection
129
 
130
  def process_interaction(self, answer, history):
 
131
  if not answer:
132
  return "", history
133
 
134
  current_question = LEADERSHIP_QUESTIONS[self.current_question]
135
+ theme_data = QUESTION_THEMES[self.current_question]
136
 
137
+ # Gerar reflexão contextualizada
138
+ reflection = self.generate_contextual_reflection(
139
+ current_question,
140
+ answer,
141
+ theme_data
142
+ )
143
 
144
  # Atualizar histórico
145
  new_history = history + [
146
  (current_question, answer),
147
+ ("Reflexão:", reflection)
148
  ]
149
 
150
  # Avançar para próxima pergunta
151
  self.current_question += 1
152
 
 
153
  if self.current_question < len(LEADERSHIP_QUESTIONS):
154
  next_question = LEADERSHIP_QUESTIONS[self.current_question]
155
  new_history.append(("📝 Próxima pergunta:", next_question))
156
  else:
157
  new_history.append(("✨ Sessão concluída!", """
158
+ Parabéns por completar sua sessão de desenvolvimento de liderança!
159
+ Revise as reflexões fornecidas para continuar seu desenvolvimento.
 
160
  """))
161
 
162
  return "", new_history
 
168
  gr.Markdown("""
169
  # 🎯 Mentor de Liderança AI
170
 
171
+ Desenvolvimento personalizado de liderança com:
172
+ - Perguntas focadas em aspectos críticos
173
+ - Análise contextualizada de respostas
174
+ - Reflexões específicas e acionáveis
175
  """)
176
 
177
+ chatbot = gr.Chatbot(height=600, label="Sessão de Mentoria")
 
 
 
 
178
  msg = gr.Textbox(
179
  label="Sua Resposta",
180
+ placeholder="Compartilhe sua experiência e abordagem detalhada...",
181
  lines=3
182
  )
183