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()