Avocet by Circuit Forge LLC — email classifier training tool: multi-account IMAP fetch, card-stack labeling UI, benchmark harness
Find a file
pyr0ball dffb1d0d7a feat: cf-orch LLM benchmark integration (Phase 1)
Backend (app/cforch.py — new APIRouter at /api/cforch):
- GET /tasks — reads bench_tasks.yaml, returns tasks + deduplicated types
- GET /models — reads bench_models.yaml, returns model list with service/tags
- GET /run — SSE endpoint; spawns cf-orch benchmark.py subprocess with
  --filter-tasks, --filter-tags, --coordinator, --ollama-url; strips ANSI
  codes; emits progress/result/complete/error events; 409 guard on concurrency
- GET /results — returns latest bench_results/*/summary.json; 404 if none
- POST /cancel — terminates running benchmark subprocess
- All paths configurable via label_tool.yaml cforch: section
- 13 tests; follows sft.py/models.py testability seam pattern

Frontend:
- BenchmarkView: mode toggle (Classifier / LLM Eval); LLM Eval panel with
  task picker (by type, select-all + indeterminate), model picker (by service),
  SSE run log, results table with best-per-column highlighting
- StatsView: LLM Benchmark section showing quality_by_task_type table across
  models; hidden when no results; fetches /api/cforch/results on mount

SFT candidate pipeline: cf-orch runs that produce sft_candidates.jsonl are
auto-discovered by the existing bench_results_dir config in sft.py — no
additional wiring needed.
2026-04-09 10:46:06 -07:00
app feat: cf-orch LLM benchmark integration (Phase 1) 2026-04-09 10:46:06 -07:00
config chore: retire Streamlit app, scaffold sft branch 2026-04-08 06:18:12 -07:00
data feat: initial avocet repo — email classifier training tool 2026-02-27 14:07:38 -08:00
scripts fix: log on malformed json in _read_jsonl, use streaming id dedup 2026-04-08 07:37:22 -07:00
tests feat: cf-orch LLM benchmark integration (Phase 1) 2026-04-09 10:46:06 -07:00
web feat: cf-orch LLM benchmark integration (Phase 1) 2026-04-09 10:46:06 -07:00
.gitignore chore: retire Streamlit app, scaffold sft branch 2026-04-08 06:18:12 -07:00
environment.yml chore(avocet): add scikit-learn to classifier env 2026-03-15 09:44:04 -07:00
manage.sh feat: add dev command for hot-reload (uvicorn --reload + Vite HMR) 2026-04-08 19:43:40 -07:00
PRIVACY.md docs: add privacy policy reference 2026-03-05 20:59:37 -08:00
pytest.ini feat: initial avocet repo — email classifier training tool 2026-02-27 14:07:38 -08:00
requirements.txt fix(avocet): store original item in _last_action; add requirements.txt 2026-03-03 15:16:54 -08:00