InspiraLead / app.py
DHEIVER's picture
Update app.py
9728982 verified
raw
history blame
5.58 kB
import gradio as gr
from transformers import pipeline
def setup_models():
print("Inicializando modelos...")
# Modelo 1: Geração de perguntas sobre liderança
question_model = pipeline(
"text-generation",
model="pierreguillou/gpt2-small-portuguese",
max_length=100
)
# Modelo 2: Análise e reflexão sobre respostas
reflection_model = pipeline(
"text-generation",
model="pierreguillou/gpt2-small-portuguese",
max_length=200
)
return question_model, reflection_model
# Prompts para geração de diferentes tipos de perguntas sobre liderança
QUESTION_PROMPTS = [
"Gere uma pergunta sobre como um líder deve gerenciar conflitos na equipe:",
"Crie uma pergunta sobre como motivar equipes em momentos difíceis:",
"Elabore uma pergunta sobre desenvolvimento de pessoas na liderança:",
"Formule uma pergunta sobre tomada de decisão em situações críticas:",
"Gere uma pergunta sobre comunicação efetiva na liderança:",
"Crie uma pergunta sobre gestão de mudanças organizacionais:",
"Elabore uma pergunta sobre feedback e avaliação de desempenho:",
"Formule uma pergunta sobre delegação e empoderamento da equipe:"
]
class LeadershipMentor:
def __init__(self, question_model, reflection_model):
self.question_model = question_model
self.reflection_model = reflection_model
self.current_prompt_index = 0
self.current_question = None
def generate_question(self):
"""Gera uma nova pergunta usando o prompt atual"""
if self.current_prompt_index < len(QUESTION_PROMPTS):
prompt = QUESTION_PROMPTS[self.current_prompt_index]
# Gerar pergunta usando o modelo
response = self.question_model(prompt, max_length=100, num_return_sequences=1)
question = response[0]['generated_text'].split(":")[-1].strip()
# Garantir que a pergunta termine com ?
if not question.endswith("?"):
question += "?"
self.current_question = question
return question
return None
def generate_reflection(self, answer):
"""Gera uma reflexão sobre a resposta do usuário"""
reflection_prompt = f"""
Analise esta resposta de liderança e forneça uma reflexão construtiva:
Pergunta: {self.current_question}
Resposta: {answer}
Considere:
1. Pontos fortes demonstrados
2. Áreas para desenvolvimento
3. Sugestões práticas
Reflexão:"""
reflection = self.reflection_model(
reflection_prompt,
max_length=200,
num_return_sequences=1
)[0]['generated_text']
return reflection.split("Reflexão:")[-1].strip()
def process_interaction(self, answer, history):
"""Processa a interação do usuário e gera a próxima etapa"""
if not answer:
return "", history
# Gerar reflexão sobre a resposta atual
reflection = self.generate_reflection(answer)
# Atualizar histórico
new_history = history + [
(self.current_question, answer),
("🤔 Reflexão:", reflection)
]
# Avançar para próximo prompt
self.current_prompt_index += 1
# Gerar próxima pergunta se houver
next_question = self.generate_question()
if next_question:
new_history.append(("📝 Próxima pergunta:", next_question))
else:
new_history.append(("✨ Sessão concluída!", "Obrigado por participar!"))
return "", new_history
def create_interface():
# Configurar modelos
question_model, reflection_model = setup_models()
mentor = LeadershipMentor(question_model, reflection_model)
with gr.Blocks(title="Mentor de Liderança AI") as demo:
gr.Markdown("""
# 🎯 Mentor de Liderança AI
Sistema interativo de desenvolvimento de liderança que:
- Gera perguntas personalizadas sobre diferentes aspectos da liderança
- Analisa suas respostas
- Fornece reflexões construtivas para seu desenvolvimento
""")
chatbot = gr.Chatbot(
height=600,
label="Sessão de Mentoria"
)
msg = gr.Textbox(
label="Sua Resposta",
placeholder="Digite sua resposta aqui...",
lines=3
)
with gr.Row():
submit = gr.Button("Enviar Resposta")
clear = gr.Button("Reiniciar Sessão")
# Iniciar com primeira pergunta
first_question = mentor.generate_question()
chatbot.value = [("📝 Primeira pergunta:", first_question)]
submit.click(
mentor.process_interaction,
inputs=[msg, chatbot],
outputs=[msg, chatbot]
)
def reset_session():
mentor.current_prompt_index = 0
first_question = mentor.generate_question()
return "", [(f"📝 Primeira pergunta:", first_question)]
clear.click(
reset_session,
outputs=[msg, chatbot]
)
return demo
if __name__ == "__main__":
print("Iniciando sistema de mentoria...")
demo = create_interface()
demo.launch(share=True)