0468GitHub
openvons
Open decision layer for finite options across text, images, and Japanese voice commands.
genai-craft/openvonsREADME ↗
# openvons (open-Jev) — a decision layer that answers finite choices with probabilities **日本語の README はこちら → [README_ja.md](README_ja.md)** Instead of asking an LLM, VLM or ASR model to *generate text*, openvons makes it **answer a finite set of options with a probability for each**. "None of the above" is always one of the options, and the calibrated probabilities are split into **execute / confirm / reject**. The name comes from Jevons (the marginal-utility economist). The project started as *open-Jev*; the package is `openvons`, and `import jev` still works as an alias. The same idea is implemented for three input types: | Module | What it chooses | How | Measured (see docs/) | |---|---|---|---| | `openvons.lm` | intent, tool selection, scores (Noul / Choice / Score) | frozen LLM + a trained output head | 4B frozen + head 0.916 vs 27B zero-shot 0.875; 8 questions in 22.6 ms ([lm_benchmark](docs/lm_benchmark.md)) | | `openvons.vision` | image attributes (age, gender, orientation, baggage, …) | frozen vision encoder (407M) + a 25k-parameter head | beats 27B zero-shot at 1/34 the VRAM and 36x the speed ([vision_summary](docs/vision_summary.md)) | | `openvons.voice` | tens of thousands of proper nouns + state-dependent commands | batch scoring of candidates with kana-whisper + calibration with a "none" option | 50 ms, 99–100% after calibration, 100% rejection of phone chatter ([voice_evaluation](docs/voice_evaluation.md)) | The shared layer `openvons.core` provides the Noul / Choice / Score representation (`Question`), the decision policy (`decide`, confidence gating), calibration (temperature, isotonic, and **calibration with an explicit "none" option**) and metrics (ECE / Brier / NLL / macro-F1). ## JevPick — the same "pick from a finite menu" idea, applied to s