refactor: CLI cleanup and documentation updates

- Refactor CLI metric computation to eliminate code duplication
- Update version format to PEP 440 compliance (0.1.0.dev0)
- Cache Settings instance via @lru_cache for performance
- Document composite validators' protocol deviation
- Consolidate redundant empty checks in ROUGE-L computation
- Add Phase 10 (Portfolio Demos) to implementation plan
This commit is contained in:
2026-02-04 15:38:46 +00:00
parent 7de4505e31
commit 0699e97e1d
8 changed files with 224 additions and 66 deletions

View File

@@ -871,6 +871,59 @@ uv run pytest --cov=src/veritext --cov-report=term-missing
---
### Phase 10: Portfolio Demos
**Goal:** Interactive demos for showcasing Veritext without installation.
**Step 1 — Streamlit Demo:**
Build a quick interactive web UI for general visitors.
- [ ] Create `demo/streamlit_app.py`
- [ ] Text input boxes (candidate + reference)
- [ ] Metric selector (BLEU, ROUGE, lexical, readability)
- [ ] Threshold sliders for pass/fail validation
- [ ] Results table with scores and status
- [ ] Deploy to homeserver (e.g., `veritext.kschappell.com`)
**Step 2 — Jupyter Notebook Collection:**
Deep-dive notebooks targeting data science and ML recruiters.
- [ ] Create `notebooks/` directory
- [ ] `01-metrics-overview.ipynb` — Introduction to each metric with visualisations
- [ ] `02-batch-evaluation.ipynb` — Evaluating model outputs at scale
- [ ] `03-regression-detection.ipynb` — Tracking quality over time
- [ ] `04-chatbot-validation.ipynb` — Real-world use case
**Step 3 — JupyterLite Deployment:**
Host notebooks as static files running in the browser.
- [ ] Configure JupyterLite build with veritext pre-installed
- [ ] Bundle notebooks into static site
- [ ] Deploy alongside Streamlit demo
**Files:**
- `demo/streamlit_app.py`
- `notebooks/01-metrics-overview.ipynb`
- `notebooks/02-batch-evaluation.ipynb`
- `notebooks/03-regression-detection.ipynb`
- `notebooks/04-chatbot-validation.ipynb`
- `notebooks/jupyterlite-config.json`
**Verification:**
```bash
# Streamlit
uv run streamlit run demo/streamlit_app.py
# JupyterLite (local preview)
jupyter lite build --contents notebooks/
jupyter lite serve
```
---
## Dependencies
```toml