Spaces:
Running
Running
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) |