Spaces:
Sleeping
Sleeping
File size: 5,341 Bytes
0128def accb396 0128def 9f39c86 0128def 3ce50c4 e0cc0af e8d4494 e3d7fcc 344a369 0128def accb396 2970c4b accb396 73e80c2 accb396 03d12c4 accb396 579970a accb396 59b64ff 579970a 880ba8a 579970a 5919395 579970a bc53efa 94e4a2f 579970a 58c84eb 579970a 58c84eb 579970a 8688def 58c84eb 579970a b3a7c5f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | ---
title: Agente Gerador de Questões de Matemática
emoji: 📐
colorFrom: blue
colorTo: gray
sdk: gradio
sdk_version: 5.23.1
app_file: app.py
pinned: false
tags:
- smolagents
- agent
- smolagent
- tool
- agent-course
short_description: Questões alinhadas à BNCC
---
## 🤖 Agente Gerador de Questões de Matemática
Este é um agente de Inteligência Artificial projetado para auxiliar educadores na criação de questões de matemática personalizadas e de alta qualidade, alinhadas à **Base Nacional Comum Curricular (BNCC)**
O agente utiliza um modelo de linguagem avançado para interpretar sua solicitação, usar ferramentas para gerar gráficos e tabelas, e então formatar questões completas, incluindo enunciado, alternativas, resposta correta e resolução passo a passo.
---
### **Como Usar**
Para interagir com o agente, digite sua solicitação na caixa de texto na parte inferior, seguindo os seguintes campos, separados por vírgula:
1. **`habilidade_bncc:`** (Obrigatório) O código da habilidade da BNCC que a questão deve abordar, junto com seu significado.
2. **`nivel_dificuldade:`** (Obrigatório) O nível da questão. Opções: `fácil`, `médio`, `difícil`.
3. **`quantidade:`** (Obrigatório) O número de questões que você deseja gerar (até 10). Ex: `1`, `3`, etc.
4. **`tipo_questao:`** (Obrigatório) O formato da questão. Opções: `multipla_escolha` ou `dissertativa`.
5. **`observacao:`** (Opcional) Qualquer instrução adicional ou contexto específico que você queira fornecer para a geração da questão.
- Exemplo:
habilidade_bncc:(EM13MAT102) Analisar tabelas, gráficos e amostras de pesquisas estatísticas apresentadas em relatórios divulgados por diferentes meios de comunicação, identificando, quando for o caso, inadequações que possam induzir a erros de interpretação, como escalas e amostras não apropriadas., nivel_dificuldade: difícil, quantidade: 3, tipo_questao: multipla_escolha
---
### **Resultado**
Após enviar sua tarefa, o agente mostrará seus "pensamentos" e as ferramentas que está usando. Ao final, ele apresentará a(s) questão(ões) formatada(s), prontas para uso.
---
### ⚙️ Configurações Técnicas e Funcionamento
Esta seção detalha os componentes e parâmetros utilizados para construir e operar este agente de IA.
#### O Modelo
O núcleo do agente é um Grande Modelo de Linguagem (LLM) de código aberto.
* **Modelo Utilizado:** `Qwen/Qwen2.5-VL-32B-Instruct`
* **Link para o Modelo:** [Qwen/Qwen2.5-VL-32B-Instruct no Hugging Face](https://huggingface.co/Qwen/Qwen2.5-VL-32B-Instruct)
* **Janela de Contexto:** O modelo suporta uma memória de trabalho (janela de contexto) de até **32.768 tokens**, o que permite o uso de prompts complexos e a geração de respostas detalhadas.
#### Parâmetros de Geração
Para controlar a qualidade e o formato da resposta, utilizamos os seguintes parâmetros:
* **`max_tokens: 4096`**: Limitamos o comprimento máximo da resposta gerada para 4096 tokens, valor que nos dá a capacidade de gerar até 10 questões detalhadas em uma única chamada. Isso garante que as respostas sejam completas sem serem excessivamente longas, além de otimizar o tempo de processamento.
* **`temperature: 0.6`**: Este valor controla a "criatividade" do modelo. Uma temperatura de `0.6` oferece um ótimo equilíbrio entre seguir as instruções de forma precisa e ainda ter criatividade para gerar questões originais.
#### Estratégia do Agente
O comportamento do agente é guiado por um conjunto de instruções e ferramentas.
* **Prompt Principal (`prompts.yaml`):** O "manual de instruções" do agente está em um arquivo `prompts.yaml`, que consome ,atualmente, aproximadamente **3.000 tokens**. Ele contém as regras de operação e múltiplos exemplos que o ensinam a raciocinar (`Thought:`) e a usar suas ferramentas (`Code:`).
* **Ferramentas Python:** O agente não está limitado a gerar apenas texto. Ele tem acesso a um conjunto de ferramentas Python customizadas (ex: `plot_parabola_graph`, `generate_data_table`) que permitem a ele executar ações complexas, como gerar gráficos e tabelas.
#### A Saída: Objeto Python (Estrutura JSON) vs. Apresentação Visual
Como a resposta final é produzida:
1. **A Saída Real do Agente é um Objeto Python:** A resposta fundamental que o agente gera e que nosso código manipula é um objeto Python (especificamente, uma lista de dicionários). Essa estrutura de dados foi projetada para ser facilmente convertível para o formato JSON, pois segue todas as suas convenções e poderá ser integrado com outros sistemas, como o site da empresa.
2. **O Gradio Renderiza o JSON para o Usuário:** A interface do **Gradio**, através da nossa função `render_single_question()`, atua como um interpretador visual:
* Ele lê o objeto Python (a lista de dicionários) retornado pelo agente.
* Extrai as informações de cada campo (`enunciado`, `alternativas`, etc.).
* Exibe tudo de forma formatada e amigável no chat.
* Se o JSON contém um caminho para um gráfico (`url_grafico`), o Gradio carrega e **mostra a imagem** diretamente na interface.
Isso garante que o agente tenha uma saída robusta e padronizada (JSON), ao mesmo tempo em que oferece uma experiência de usuário rica e visual. |