Produção · empresa de educação
Correção de atividades em escala
Arquitetura de pipeline assíncrono em NestJS com BullMQ que sincroniza submissões do LMS, envia cada uma para correção com LangChain e devolve nota e feedback ao Moodle.
Problema
Corrigir atividades em volume, com critério consistente, dentro do LMS que alunos e professores já usam — sem perder submissões quando um serviço externo falha ou demora.
Dados disponíveis
As submissões chegam do LMS como arquivo ou texto online, com metadados de atividade, oferta e organização. Os arquivos ficam no Google Cloud Storage.
Decisões de arquitetura
Pipeline em etapas, em filas
Um job por atividade sincroniza as submissões e cria um job por submissão. Cada etapa — arquivo, análise, integração — roda em workers BullMQ, fora do request.
Falhar sem perder trabalho
Jobs de análise com até três tentativas e backoff exponencial, deduplicação por resposta e estado por submissão, o que permite reenfileirar o que ficou parado.
A IA num serviço separado
O NestJS orquestra; a correção com LangChain roda num serviço Python próprio, chamado por HTTP. Um lado escala a fila; o outro evolui o modelo e os critérios.
Viabilidade medida contra a alternativa real
O custo por atividade corrigida foi comparado ao da correção humana, que é o que o produto substitui.
Implementação
- Disparo por cron ou manual → job da atividade → sincronização das submissões com o LMS.
- Jobs BullMQ por submissão: download do arquivo, envio ao serviço de correção e persistência do resultado.
- Nota e feedback gravados de volta no Moodle.
- Eventos e durações de cada execução guardados para dashboards operacionais; progresso notificado via WebSocket.
Resultado
- ~140 milsubmissões corrigidas por mês
- ~99%menos custo por atividade corrigida vs. correção humana · estimativa
- ~3.000%de ROI · estimativa
Redução de custo e ROI são estimativas internas em comparação com a correção humana.
Limitações e aprendizados
- A correção em si é uma cadeia LangChain simples; o trabalho difícil está na orquestração, na resiliência e na integração com o LMS.
- Redução de custo e ROI são estimativas, não valores auditados; não detalho aqui a fórmula nem o período.
- Critérios de correção e dados de alunos ficam de fora por confidencialidade.