feat(media-routing): implement 007 media article routing, runtime architecture diagram and update graphify knowledge graph
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# Quickstart & Validation Guide: Classificação e Roteamento de Mídia
|
||||
|
||||
**Feature**: `007-media-article-routing`
|
||||
**Date**: 2026-08-24
|
||||
**Status**: Completed
|
||||
|
||||
---
|
||||
|
||||
## 1. Configuração de Variáveis de Ambiente (Configuração Externa)
|
||||
|
||||
As credenciais e endpoints dos provedores devem ser configurados no ambiente de execução:
|
||||
|
||||
```bash
|
||||
# Provedor Primário (Ollama Local)
|
||||
OLLAMA_ENDPOINT="http://localhost:11434"
|
||||
OLLAMA_MODEL="qwen3.5:2b"
|
||||
OLLAMA_TIMEOUT="10"
|
||||
|
||||
# 1º Fallback (Groq)
|
||||
GROQ_ENDPOINT="https://api.groq.com/openai/v1/chat/completions"
|
||||
GROQ_API_KEY="gsk_..."
|
||||
GROQ_MODEL="openai/gpt-oss-20b"
|
||||
GROQ_TIMEOUT="15"
|
||||
|
||||
# 2º Fallback (OmniRoute)
|
||||
OMNIROUTE_ENDPOINT="https://<seu-endpoint-omniroute>/v1/chat/completions"
|
||||
OMNIROUTE_API_KEY="omni_..."
|
||||
OMNIROUTE_MODEL="cgpt-web/gpt-5.5"
|
||||
OMNIROUTE_TIMEOUT="20"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Execução dos Testes Automatizados (CI)
|
||||
|
||||
A suíte de testes executa 100% offline em ambiente de CI via simulações controladas:
|
||||
|
||||
```bash
|
||||
# Executar testes unitários e de integração da feature
|
||||
pytest tests/unit/test_media_classifier.py tests/integration/test_media_routing.py -v
|
||||
|
||||
# Validar conformidade com a política Zero-Regex
|
||||
python tests/scripts/check_zero_regex.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Cenários de Validação Manual / E2E
|
||||
|
||||
### Cenário 1: Execução Padrão com Arquivo de Notícias
|
||||
```bash
|
||||
python scripts/extract_article_contents.py -i out/river_plate.json
|
||||
```
|
||||
**Resultados esperados**:
|
||||
- `out/river_plate_extracted.json` gerado contendo artigos textuais e contadores atualizados;
|
||||
- `out/river_plate_media.json` gerado contendo o envelope `{ "articles": [ ... ] }` com as mídias identificadas (ou `{"articles": []}` caso nenhuma mídia seja classificada no lote);
|
||||
- Logs no stderr exibindo as 11 métricas operacionais obrigatórias.
|
||||
|
||||
### Cenário 2: Execução com Caminho de Saída Customizado (`-o/--output`)
|
||||
```bash
|
||||
python scripts/extract_article_contents.py \
|
||||
-i out/river_plate.json \
|
||||
-o out/processados/resultado_custom.json \
|
||||
-l 5
|
||||
```
|
||||
**Resultados esperados**:
|
||||
- Saída textual em `out/processados/resultado_custom.json`;
|
||||
- Saída de mídia em `out/processados/resultado_custom_media.json` (gerado obrigatoriamente, contendo as mídias ou `{"articles": []}`).
|
||||
Reference in New Issue
Block a user