study_plan_v0 / app.py
giseldo's picture
Update app.py
731763d verified
import gradio as gr
import os
from groq import Groq
def consultar_llm(estudante, disciplina, perfil):
# Constrói o prompt personalizado utilizando os valores informados
prompt = f"Atue com umo professor. Considere a disciplina '{disciplina}' e o perfil do estudante '{perfil}'. Forneça um plano de estudos baseadas nesses dados. Adicione uma nova linha abaixo do título com o nome do estudante: '{estudante}'."
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": prompt,
}
],
model="llama3-8b-8192",
)
return chat_completion.choices[0].message.content
# Criação da interface com Gradio utilizando Blocks para organizar os componentes
with gr.Blocks() as demo:
# Adiciona um título
gr.Markdown("# Gerador de planos de estudos personalizados")
gr.Markdown("## Visão do professor")
with gr.Row():
# Coluna da esquerda: inputs
with gr.Column():
estudante_combo = gr.Dropdown(
choices=["Jose", "Maria", "João"],
label="Nome do estudante",
value="Jose"
)
disciplina_combo = gr.Dropdown(
choices=["Introdução a programação", "Estrutura de dados", "Algoritmos avançados"],
label="Nome da disciplina",
value="Introdução a programação"
)
perfil_combo = gr.Dropdown(
choices=["Iniciante", "Intermediário", "Avançado"],
label="Perfil do Estudante",
value="Iniciante"
)
consultar_btn = gr.Button("Gerar plano de estudo personalizado")
with gr.Column():
with gr.Row():
aceitar_btn = gr.Button("Aceitar/Enviar")
rejeitar_btn = gr.Button("Rejeitar/Alterar")
download_btn = gr.Button("Download PDF")
resultado = gr.Markdown(label="Plano de estudo")
# Configura o botão para chamar a função 'consultar_llm'
consultar_btn.click(fn=consultar_llm, inputs=[estudante_combo, disciplina_combo, perfil_combo], outputs=resultado)
# Inicia a interface web
demo.launch()