feat(media-routing): implement 007 media article routing, runtime architecture diagram and update graphify knowledge graph
This commit is contained in:
@@ -15,39 +15,13 @@
|
||||
- [Visão Geral](#-visão-geral)
|
||||
- [Instalação e Setup](#-instalação-e-setup)
|
||||
- [1. Classificador de Conteúdo e Inerência (NLP / LLM / ECP)](#1--classificador-de-conteúdo-e-inerência-nlp--llm--ecp)
|
||||
- [O que é e Como Funciona](#o-que-é-e-como-funciona)
|
||||
- [Arquitetura de Classificação em 3 Tiers](#arquitetura-de-classificação-em-3-tiers)
|
||||
- [Categorias de Decisão](#categorias-de-decisão)
|
||||
- [Formato do ECP Snapshot e Markdown](#formato-do-ecp-snapshot-e-markdown)
|
||||
- [Exemplos de Uso CLI](#exemplos-de-uso-cli)
|
||||
- [2. Extrator de Manchetes do Google News](#2--extrator-de-manchetes-do-google-news)
|
||||
- [O que é e Como Funciona](#o-que-é-e-como-funciona-1)
|
||||
- [Diferenciais Técnicos](#diferenciais-técnicos)
|
||||
- [Argumentos e Flags de Linha de Comando](#argumentos-e-flags-de-linha-de-comando)
|
||||
- [Exemplos Práticos de Uso](#exemplos-práticos-de-uso)
|
||||
- [3. Extrator e Parser Multimotor de Artigos](#3--extrator-e-parser-multimotor-de-artigos)
|
||||
- [Visão Geral e Tríplice Extração](#visão-geral-e-tríplice-extração)
|
||||
- [Argumentos e Flags CLI](#argumentos-e-flags-cli)
|
||||
- [Exemplos de Uso](#exemplos-de-uso)
|
||||
- [4. Seletor Determinístico de Conteúdo de Artigos](#4--seletor-determinístico-de-conteúdo-de-artigos)
|
||||
- [Visão Geral e Algoritmo de Consenso ($F_1$)](#visão-geral-e-algoritmo-de-consenso-f_1)
|
||||
- [Pipeline de Normalização e Shingles](#pipeline-de-normalização-e-shingles)
|
||||
- [Critérios de Desempate Técnico e Resiliência](#critérios-de-desempate-técnico-e-resiliência)
|
||||
- [Argumentos e Flags CLI](#argumentos-e-flags-cli-1)
|
||||
- [Exemplos Práticos de Uso](#exemplos-práticos-de-uso-1)
|
||||
- [5. Conversor de Artigo JSON para Markdown](#5--conversor-de-artigo-json-para-markdown)
|
||||
- [Visão Geral e Estrutura do Documento](#visão-geral-e-estrutura-do-documento)
|
||||
- [Isolamento Estrito de Extratores e Fallback](#isolamento-estrito-de-extratores-e-fallback)
|
||||
- [Matriz Determinística de Metadados](#matriz-determinística-de-metadados)
|
||||
- [Sanitização Editorial e Deduplicação](#sanitização-editorial-e-deduplicação)
|
||||
- [Argumentos e Flags CLI](#argumentos-e-flags-cli-2)
|
||||
- [Exemplos Práticos de Uso](#exemplos-práticos-de-uso-2)
|
||||
- [6. Runtime de Consolidação e Higienização de Artigos (006-article-consolidation-runtime)](#6--runtime-de-consolidação-e-higienização-de-artigos-006-article-consolidation-runtime)
|
||||
- [Visão Geral e Arquitetura](#visão-geral-e-arquitetura-do-runtime)
|
||||
- [Configuração de Ambiente (.env)](#configuração-de-ambiente-env)
|
||||
- [Comandos e Utilitários CLI](#comandos-e-utilitários-cli)
|
||||
- [O que Esperar do Resultado (Artefatos Gerados)](#o-que-esperar-do-resultado-artefatos-gerados)
|
||||
- [Contrato de Códigos de Saída (Exit Codes)](#contrato-de-códigos-de-saída-exit-codes)
|
||||
- [7. Classificação e Roteamento de Mídia de Artigos (007-media-article-routing)](#7--classificação-e-roteamento-de-mídia-de-artigos-007-media-article-routing)
|
||||
- [8. Arquitetura do Sistema e Grafo de Conhecimento (Archify & Graphify)](#8--arquitetura-do-sistema-e-grafo-de-conhecimento-archify--graphify)
|
||||
- [Estrutura do Projeto](#-estrutura-do-projeto)
|
||||
- [Testes e Qualidade de Código](#-testes-e-qualidade-de-código)
|
||||
- [Licença](#-licença)
|
||||
@@ -60,9 +34,11 @@ O **TextNLPClassifierApp** reúne um ecossistema completo de ferramentas de enge
|
||||
|
||||
1. **`classify.py`**: Motor de classificação semântica e contextual que determina o grau de aderência e inerência de um documento Markdown em relação a uma entidade alvo descrita em um **ECP Snapshot (Entity Context Profile)**.
|
||||
2. **`scripts/extract_google_news.py`**: Extrator de notícias por palavra-chave, idioma e região geográfica utilizando navegação stealth **Foxcape** (headless), decodificação paralela de URLs para links reais e feedback em tempo real.
|
||||
3. **`scripts/extract_article_contents.py`**: Extrator e parser de artigos multimotor com navegação stealth Foxcape headless e extração simultânea via **Trafilatura**, **Newspaper4k** (NLP) e **Readability**, consolidando texto higienizado, autores, datas, imagens e resumos.
|
||||
3. **`scripts/extract_article_contents.py`**: Extrator e parser de artigos multimotor com navegação stealth Foxcape headless, extração simultânea via **Trafilatura**, **Newspaper4k** (NLP) e **Readability**, detecção de candidatos de mídia (`video`, `audio`, `gallery`) e classificação de layout.
|
||||
4. **`scripts/select_article_extractor.py`**: Motor determinístico de seleção de extratores que avalia as saídas dos três motores, aplica normalização em memória, calcula métricas de consenso de shingles (5-tokens) com pontuação $F_1$, desempata tecnicamente ($\le 0.03$) favorecendo menor concisão/ruído e enriquece os dados de forma não-destrutiva e atômica.
|
||||
5. **`scripts/convert_article_to_markdown.py`**: Conversor determinístico que recebe o JSON de um único artigo selecionado, isola estritamente o corpo do extrator vencedor (`trafilatura`, `newspaper4k` ou `readability`), resolve metadados editoriais por prioridade estrita, higieniza links/imagens/cabeçalhos e gera um documento Markdown (`.md`) padronizado com gravação atômica transacional.
|
||||
6. **`src/runtime/`**: Runtime de consolidação, higienização (LLM grounding), avaliação ECP e persistência transacional SQLite WAL.
|
||||
7. **Detecção e Roteamento de Mídia (`007-media-article-routing`)**: Análise de payloads editoriais para roteamento inteligente de artigos com mídia incorporada ou bypass direto para artigos puramente textuais.
|
||||
|
||||
---
|
||||
|
||||
@@ -636,6 +612,36 @@ O CLI segue estritamente os códigos de saída normativos:
|
||||
|
||||
---
|
||||
|
||||
## 7. 🎬 Classificação e Roteamento de Mídia de Artigos (007-media-article-routing)
|
||||
|
||||
### Visão Geral
|
||||
O subsistema de **Roteamento de Artigos de Mídia** (`specs/007-media-article-routing`) analisa o HTML e metadados extraídos para identificar conteúdos multimídia (vídeos incorporados do YouTube/Vimeo/DailyMotion, podcasts/áudio, galerias fotográficas e layouts orientados a mídia) e rotear adequadamente os fluxos de trabalho no pipeline:
|
||||
|
||||
- **Bypass Direto**: Artigos puramente textuais continuam no fluxo padrão de consolidação (`006-article-consolidation-runtime`) com custo e latência mínimos.
|
||||
- **Roteamento de Mídia**: Artigos com player de vídeo primário ou áudio são marcados com payload enriquecido de mídia (`video_url`, `embed_code`, `duration`, `media_type`), permitindo transcrição posterior via Whisper ou indexação multimídia especializada.
|
||||
|
||||
---
|
||||
|
||||
## 8. 🏛️ Arquitetura do Sistema e Grafo de Conhecimento (Archify & Graphify)
|
||||
|
||||
### 📐 Diagrama de Arquitetura Interativo (Archify)
|
||||
O repositório inclui um diagrama de arquitetura de tempo de execução formalmente validado e renderizado via **Archify**:
|
||||
|
||||
* **Diagrama Interativo**: [`docs/archify/runtime-architecture.html`](docs/archify/runtime-architecture.html)
|
||||
* **Especificação Declarativa**: [`docs/archify/runtime-architecture.json`](docs/archify/runtime-architecture.json)
|
||||
* **Relatório de Validação Visual**: [`docs/archify/runtime-architecture.visual-check.html`](docs/archify/runtime-architecture.visual-check.html)
|
||||
|
||||
O diagrama cobre os 11 componentes centrais da plataforma, o caminho primário ponta a ponta (desde a ingestão stealth até o classificador de inerência e persistência SQLite), 4 fronteiras de segurança (*Untrusted Public Web*, *Ingestion Sandbox*, *Trusted Core Processing Domain*, *External AI Provider Gateway*) e cards de detalhes contextuais.
|
||||
|
||||
### 🌐 Grafo de Conhecimento Navegável (Graphify)
|
||||
A base de código e seus artefatos estão indexados em um grafo de conhecimento completo gerado pelo **Graphify**:
|
||||
|
||||
* **Visualizador do Grafo**: [`graphify-out/graph.html`](graphify-out/graph.html) *(visualização agregada por comunidades navegável em qualquer navegador)*
|
||||
* **Relatório de Auditoria**: [`graphify-out/GRAPH_REPORT.md`](graphify-out/GRAPH_REPORT.md)
|
||||
* **Grafo Estruturado**: [`graphify-out/graph.json`](graphify-out/graph.json) *(GraphRAG / BFS / DFS)*
|
||||
|
||||
---
|
||||
|
||||
## 📁 Estrutura do Projeto
|
||||
|
||||
```text
|
||||
|
||||
Reference in New Issue
Block a user