feat(classifier): implement Tier 3 LLM fallback adapter and boundary disambiguation test suite
This commit is contained in:
@@ -118,7 +118,7 @@ flowchart TD
|
||||
|
||||
* **Tier 1 (Determinístico / NLP Leve)**: Análise de frequência de termos, detecção de âncoras temáticas no primeiro terço do documento, contagem de aliases e penalização por âncoras negativas.
|
||||
* **Tier 2 (Vetorial / Embeddings)** *(Opcional: `--enable-embeddings`)*: Projeção vetorial e cálculo de cosseno entre o perfil da entidade e os parágrafos do documento.
|
||||
* **Tier 3 (LLM Fallback)** *(Opcional: `--enable-llm`)*: Consulta a modelo de linguagem para desambiguação de casos limiares e sutilezas semânticas.
|
||||
* **Tier 3 (LLM Fallback)** *(Opcional: `--enable-llm`)*: Adaptador de desambiguação inteligente (`src/adapters/llm.py`) acionado exclusivamente para casos limiares e ambíguos (ex: menção isolada `TANGENTIAL` ou confiança `< 0.60`). Casos claros não chamam o LLM para economizar custos e latência; em caso de falha de conexão com a API, degrada graciosamente mantendo o resultado do Tier 1 com aviso registrado em `warnings`.
|
||||
|
||||
### Categorias de Decisão
|
||||
|
||||
@@ -499,7 +499,8 @@ TextNLPClassifierApp/
|
||||
│ ├── test_extract_google_news.py
|
||||
│ ├── test_extract_article_contents.py
|
||||
│ ├── test_select_article_extractor.py
|
||||
│ └── test_convert_article_to_markdown.py # Testes da conversão para Markdown
|
||||
│ ├── test_convert_article_to_markdown.py # Testes da conversão para Markdown
|
||||
│ └── test_llm_fallback.py # Testes do Tier 3 LLM Fallback
|
||||
├── requirements.txt # Dependências do projeto
|
||||
├── pyproject.toml # Configurações de ferramentas (pytest, ruff, mypy)
|
||||
└── README.md # Documentação principal
|
||||
@@ -509,12 +510,15 @@ TextNLPClassifierApp/
|
||||
|
||||
## 🧪 Testes e Qualidade de Código
|
||||
|
||||
O repositório possui **187 testes automatizados** com 100% de aprovação cobrindo testes unitários, de regressão, de integração, Golden Fixtures exatas, testes de sensibilidade de mutação e testes End-to-End (E2E) via CLI subprocess:
|
||||
O repositório possui **196 testes automatizados** com 100% de aprovação cobrindo testes unitários, de regressão, de integração, Golden Fixtures exatas, testes de sensibilidade de mutação, testes de fallback para LLM (Tier 3) e testes End-to-End (E2E) via CLI subprocess:
|
||||
|
||||
```bash
|
||||
# Executar toda a suíte de testes do projeto (187 testes)
|
||||
# Executar toda a suíte de testes do projeto (196 testes)
|
||||
pytest -v
|
||||
|
||||
# Executar os testes do Fallback para LLM (Tier 3)
|
||||
pytest tests/test_llm_fallback.py -v
|
||||
|
||||
# Executar os testes de Conversão de Artigo para Markdown (67 testes)
|
||||
pytest tests/test_convert_article_to_markdown.py -v
|
||||
|
||||
@@ -531,7 +535,7 @@ pytest tests/test_extract_google_news.py -v
|
||||
ruff check .
|
||||
|
||||
# Verificação estática de tipos com Mypy
|
||||
mypy scripts/convert_article_to_markdown.py
|
||||
mypy src/ scripts/ tests/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user