terceiroAgente / README.md
Lar159's picture
Update README.md
58c84eb verified
|
Raw
History Blame Contribute Delete
5.34 kB
---
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.