Skip to content

langres 0.3.0 — the flywheel release

Latest

Choose a tag to compare

@fxd24 fxd24 released this 13 Jul 17:02
db30449

The first substantive public release. langres is a composable entity-resolution framework: zero-label dedupe()/link() verbs, a swappable judge seam (string / embedding / LLM), and a label-harvesting flywheel that turns an out-of-the-box LLM judge into a tuned, cheaper resolver for your own data.

Highlights

  • The flywheel, paved: examples/flywheel_min.py runs the whole loop at $0 — dedupe with zero labels → log every judgement → review the uncertain margin via CSV → harvest labels → derive a data-driven threshold → re-run (precision 0.600 → 1.000 on the demo). The loop's full API is root-importable.
  • The judgement contract: PairwiseJudgement separates deciding from ranking; abstention is a first-class "I don't know", never a fabricated verdict; optional earned confidence.
  • A deterministic keyless contract for judge="auto": no key → NoJudgeAvailableError; LANGRES_OFFLINE=1 forces offline; documented key-discovery order; every LLM judge spend-capped ($1 default).
  • The evaluation instrument: benchmark registry (Fodors-Zagat, Abt-Buy, Amazon-Google, DBLP, Walmart-Amazon, WDC, FEBRL), bring-your-own-data evaluate(), and the $0 self-contained HTML EvalReport tearsheet — quality and dollars side by side.
  • Paper replication: the Peeters et al. LLM-EM protocol replays offline at $0 and reproduces the published F1 exactly from the authors' archived answers; live runs agree on 99.25% of pairs for $0.28 total.
  • Slimmer package: the wheel drops 5.7 MB → 0.57 MB (large third-party benchmark corpora are git-checkout-only).
  • Docs site: https://grafdavid.com/langres/

Full details in CHANGELOG.md. Apache-2.0.