Feature: Implementar Pipeline de Automação Mensal (Coleta + Enriquecimento)
🎯 Descrição
Atualmente, a atualização do banco de dados do OncoMap depende de execução manual de múltiplos scripts. Precisamos automatizar esse processo para garantir que o sistema receba novos dados periodicamente sem intervenção humana.
Esta tarefa visa criar um Pipeline de Dados no GitHub Actions que roda mensalmente para coletar novos diários oficiais e processá-los automaticamente com a IA.
✅ Objetivos
- Coleta Automática: Buscar diários dos últimos 30 dias na API do Querido Diário.
- Processamento Contínuo: Executar a análise do Gemini (PDF e TXT) nos novos dados coletados.
- Agendamento: Configurar tudo para rodar automaticamente no dia 1º de cada mês.
📝 Tarefas (To-Do)
1. Backend (Scripts)
- Criar
src/scripts/monthly_collector.js:- Deve buscar diários na API do Querido Diário filtrando por
published_since(últimos 30/45 dias). - Deve salvar
source_url(PDF) etxt_url(Texto) diretamente no banco. - Deve ignorar diários que já existem (
ON CONFLICT DO NOTHING).
- Deve buscar diários na API do Querido Diário filtrando por
- Refatorar
enrichment_pdf.js:- Remover a necessidade de argumentos de ID (
startId,endId). - Alterar a query para buscar automaticamente menções onde
gemini_analysis IS NULL.
- Remover a necessidade de argumentos de ID (
- Refatorar
enrichment_txt.js:- Remover a necessidade de argumentos de ID.
- Alterar a query para buscar automaticamente onde
gemini_analysis_txt IS NULL(fallback).
2. DevOps (GitHub Actions)
- Criar Workflow
.github/workflows/pipeline_mensal.yml:- Configurar gatilho
schedule(Cron:0 5 1 * *). - Adicionar gatilho
workflow_dispatch(para execução manual). - Definir jobs em sequência:
Coleta->Enriquecimento PDF->Enriquecimento TXT.
- Configurar gatilho
- Configurar Secrets:
- Documentar a necessidade das chaves
DATABASE_URL,SUPABASE_URL,SUPABASE_KEYeGEMINI_API_KEYS.
- Documentar a necessidade das chaves
📊 Critérios de Aceite
- O script
monthly_collector.jsroda com sucesso e popula o banco com novos dados. - Os scripts de enriquecimento rodam sem argumentos e processam apenas o que está pendente.
- O Workflow do GitHub Actions completa todos os passos (verde ✅) ao ser acionado manualmente.
- Novos dados aparecem no banco de dados (Supabase) após a execução do pipeline.
🔗 Dependências
- Necessário ter as chaves de API (Supabase e Google Gemini) configuradas nos Secrets do repositório.