✅ Execução 81593528...
81593528-cb42-4729-8a06-6438dd54cd3f
📊 Status
✅ Sucesso
Criado: 09/01/2026 08:50:00
Iniciado: 09/01/2026 08:50:00
Finalizado: 09/01/2026 08:51:41
Duração: 1.7 minutos
📁 Contexto
Normas de Alimentos – Brasil / Mercosul / Codex
Catálogo de normas de segurança de alimentos, rotulagem, aditivos, contaminantes, microbiologia, emb...
Monitoramento:
Monitoramento food_normsClientes (1):
Terracota BPO
💰 Custos LLM
$0.0035
533 tokens em 1 chamadas
Auto-envio: Sim
Formato: PDF
📋 Tarefas
| ID | Tipo | Status | Criado | Início | Fim | Worker | Erro |
|---|---|---|---|---|---|---|---|
| 20 | send_email | success | 16:18:44 | 16:18:46 | 16:19:47 | ubuntu-pedro | - |
| 19 | send_email | success | 16:10:52 | 16:10:54 | 16:11:54 | ubuntu-pedro | - |
| 16 | send_email | success | 08:51:44 | 08:51:44 | 08:52:43 | ubuntu-pedro | - |
| 15 | run_daily | success | 08:50:00 | 08:50:00 | 08:51:44 | ubuntu-pedro | - |
📝 Logs
Saída padrão (stdout):
[openai] → Analisando seção chunk_4 da norma in_mapa_46_2007 com modelo gpt-4o [openai] ← Análise da seção chunk_4 concluída em 2.9s [openai] → Analisando seção chunk_21 da norma in_mapa_46_2007 com modelo gpt-4o [openai] ← Análise da seção chunk_21 concluída em 3.0s [openai] → Filtrando notícia 'Anvisa determina recolhimento e suspensão do alisante My Hor...' usando modelo gpt-4o [openai] ← Resultado da filtragem recebido em 2.3s ================================================================================ 📊 RESUMO DE USO DO LLM ================================================================================ Total de chamadas: 1 Tokens de prompt: 449 Tokens de resposta: 84 Tokens totais: 533 Custo estimado: 0.0035 USD LLM Cost: $0.0035 LLM Tokens: 533 LLM Calls: 1 Por modelo: - GPT-4o: 1 chamadas, 533 tokens, custo 0.0035 USD Por componente (atividade): - news_relevance_filter: 1 chamadas, 533 tokens, custo 0.0035 USD ================================================================================ ✓ Daily run completed for context 'food_norms' on 2026-01-09. Total norms: 40 | Checked: 40 | Changed: 1 | Errors: 0 Report: data/reports/pending/2026-01-09_report.html (Dry run: email not sent)
Erros (stderr):
✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_211_2023: 2316619 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v2 para in_211_2023 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_778_2023: 21685 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_778_2023 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_243_2018: 23914 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_243_2018 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_976_2025: 80946 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_976_2025 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para dl_986_1969: 34768 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para dl_986_1969 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para decreto_6_871_2009: 124694 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para decreto_6_871_2009 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_mapa_368_1997: 37803 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_mapa_368_1997 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_mapa_46_1998: 54215 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_mapa_46_1998 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_216_2004: 37822 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_216_2004 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_275_2002: 38963 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_275_2002 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_160_2022: 47333 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para in_160_2022 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_722_2022: 8022 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_722_2022 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para lei_9_832_1999: 1229 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para lei_9_832_1999 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_svs_ms_27_1996: 9918 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_svs_ms_27_1996 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_122_2001: 9142 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_122_2001 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_123_2001: 38971 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_123_2001 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_326_2019: 143711 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_326_2019 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_51_2010: 2512 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_51_2010 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_51_2010_anexo: 68441 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_51_2010_anexo 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_52_2010: 18921 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_52_2010 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_854_2024: 36761 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_854_2024 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_88_2016: 116421 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_88_2016 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_91_2001: 10334 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_91_2001 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para cxc_1_1969: 143323 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para cxc_1_1969 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para cxs_1_1985: 31952 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para cxs_1_1985 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para res_gmc_26_03: 21715 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para res_gmc_26_03 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para res_gmc_80_96: 44563 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para res_gmc_80_96 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_mapa_46_2007: 38608 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v4 para in_mapa_46_2007 🔍 [DEBUG] PASSO 2: Mudanças detectadas comparando .md (WEB vs LOCAL): 2 parágrafos, 2 sentenças 🔍 [DEBUG] PASSO 4: Mudança detectada por comparação de .md, forçando criação de nova versão 💾 [DEBUG] PASSO 5: Salvando conteúdo da WEB normalizado para in_mapa_46_2007 v5 em data/normalized/in_mapa_46_2007/v5.md 🔍 [DEBUG] Iniciando chunking para in_mapa_46_2007 v5 (first_run=False, previous_version=4) ✅ [DEBUG] Chunks salvos: 25 chunks em data/chunks/in_mapa_46_2007/v5 🔍 [DEBUG] Filtro de chunks: 2 relevante(s) de 2 total(is) (0 filtrado(s)) ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_mapa_76_2018: 16652 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para in_mapa_76_2018 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash /home/pedro-brigido/terracota_project/web_monitor/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'www.defesa.agricultura.sp.gov.br'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings warnings.warn( ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_mapa_146_1996: 64355 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_mapa_146_1996 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_161_2022: 12309 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para in_161_2022 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_724_2022: 930 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_724_2022 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_mapa_11_2000: 3723 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v2 para in_mapa_11_2000 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_sda_664_2022: 8473 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_sda_664_2022 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para portaria_sda_765_2023: 9494 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para portaria_sda_765_2023 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_281_2024: 31188 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v8 para in_281_2024 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_843_2024: 23617 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v4 para rdc_843_2024 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para in_75_2020: 77529 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para in_75_2020 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_429_2020: 53306 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_429_2020 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ✅ [DEBUG] PASSO 1: Conteúdo da WEB convertido para .md para rdc_727_2022: 38783 caracteres 🔍 [DEBUG] PASSO 2: Comparando .md da WEB com arquivo local v1 para rdc_727_2022 🔍 [DEBUG] PASSO 2: Nenhuma mudança de conteúdo detectada (apenas formatação) 🔍 [DEBUG] PASSO 4: Conteúdo idêntico detectado por comparação de .md, ignorando mudança de hash ⚠️ Email não enviado: EmailSender não foi configurado. Verifique as variáveis de ambiente EMAIL_FROM e EMAIL_TO.