Spaces:
Sleeping
Sleeping
| 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() | |