documents/CHANGELOG.md
Breno Pires 50a2d0b628 feat(analyze): extracao por LLM com confianca por campo e dupla passada em datas
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-07 02:41:39 -03:00

36 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog — documents
Formato baseado em [Keep a Changelog](https://keepachangelog.com/en/1.0.0/); versionamento semântico.
## [1.1.0] - 2026-08-07
### Added
- **Análise por LLM** (`AnthropicAnalyzer`, Onda 1.1 do PLANO-DOCUMENTOS-IA): com
`ANTHROPIC_API_KEY`, o `POST /documents/analyze` extrai tipo, datas e número do PDF/imagem via
modelo multimodal (default Haiku, configurável por `DOCUMENTS_LLM_MODEL`), com **confiança por
campo** (`fieldConfidences`), **citação do trecho de origem** (`evidence`) e **dupla passada em
datas** — divergência entre as duas leituras zera o campo e devolve `dateMismatch` (data errada
é pior que campo vazio). Warnings novos no contrato: `dateMismatch`, `lowConfidence`,
`llmUnavailable`.
- Fallback gracioso: erro de API, arquivo >10MB ou mime não suportado caem na heurística por nome
de arquivo com `llmUnavailable` — a análise nunca falha por causa do LLM. Sem a chave, o
comportamento v1 fica intacto (factory em `document.module.ts`).
## [1.0.0] - 2026-08-07
### Added
- Catálogo legal de postos com 15 obrigações semeadas por migration (Resolução ANP 948/2023,
CONAMA 273/2000, Portaria INMETRO 227/2022, IN IBAMA 22/2021, NRs 1/7/20/23) e variação por UF
(`document_type_uf_override`; exemplos: AVCB SP 36 meses, GO 12; LO CETESB 60 meses/120 dias).
- Documentos da loja com trilha de versões (renovação nunca sobrescreve) e upload de PDF em bucket
GCS privado com URL assinada de vida curta.
- Status derivado na leitura (`valid`/`expiringSoon`/`inRenewal`/`expired`) com a regra do
protocolo tempestivo: renovação protocolada mantém o documento operante.
- Resumo de conformidade com score 0100 ponderado por criticidade (interdição 3, multa 2,
administrativa 1) e contagem de pendências críticas.
- Análise de upload plugável (`DocumentAnalyzer`): v1 heurística por keywords do catálogo;
OCR/LLM entra no mesmo ponto na v1.1.
- Régua de alertas (lead do tipo/30/15/7/1/vencido) com `GET /alerts/preview`; envio real
(WhatsApp/e-mail) é v1.2.
- Infra completa: Dockerfile, k8s/hml, cd.yml via Cloud Build — mesmo desenho do `routines`.