Rizzo-AI-Academy / rizzo-flow
git clone https://github.com/Rizzo-AI-Academy/rizzo-flow.git
The open, local take on Jev: typed decisions from an LLM, without generating a single token
+2
stars, 24h · #10,674
+~14
stars, 7 days · #9,899
+~60
stars, 30 days · #10,604
921
★ total · +2% this week
64
forks · 23 open issues
Star history (as recorded here)
LanguagePython
LicenseApache-2.0
Created2026-09-21 (1mo ago)
Last push27d ago
Watchers10
OwnerOrganization
Links
- GitHub: github.com/Rizzo-AI-Academy/rizzo-flow
- Homepage: https://rizzo-ai-academy.github.io/rizzo-flow/
- Releases · Issues · Hacker News mentions
README excerpt
# Rizzo Flow ### The open, local take on Jev: typed decisions from an LLM, without generating a single token **_Unstructured state in → typed, probabilistic decisions out. On your own machine._** 🌐 Website · A project by Rizzo AI Academy · 🇮🇹 Documentazione dettagliata in italiano **Rizzo Flow** is an open-source, local-first implementation of the idea behind **Jev**, TypeSafe's "System One" model: a *function call with judgment* that takes unstructured state and returns **typed decisions with probabilities** — a yes/no, a choice among options, a score on a rubric, a number — instead of text you then have to parse. Jev is a closed, hosted service. Rizzo Flow gives you the same programming model **on your own hardware, with open weights, and with the same HTTP interface**, so code written against the TypeSafe API can point at `localhost` by changing one URL. It runs on llama.cpp, so the hardware can be an Apple, NVIDIA, AMD or Intel GPU, or no GPU at all. > **Independent project.** Rizzo Flow is not affiliated with TypeSafe and does not reproduce Jev's > proprietary architecture or its RLCD training. It reproduces the *interface pattern* with an > open model (Spark-X2.5, with our own LoRA fine-tune on public data), in the > spirit of SemIf, which inspired it. Probabilities are > **uncalibrated** unless you calibrate them on your own data, and > we make no claim of matching Jev or SemIf in quality. Every number below comes with its caveats. **New: fine-tuned weights.** Since 25 September 2026 the default model is Spark-X2.5 with our own LoRA fine-tune for typed decisions (how and on what). On the `typed-decisions` benchmark, same GPU, Q8_0: | | Accuracy ↑ | KL from gold ↓ | Brier ↓ | ECE ↓ | | --- | ---: | ---: | ---: | ---: | | Spark-X2.5-4B, original | 0.574 | 2.899 | 0.480 | 0.349 | | **Rizzo Flow 4B, fine-tuned** | **0.648** | **0.452** | **0.205** | **0.112** | | TypeSafe Jev 1.13.0 (its dataset card) | 0.727 | 1.442 | 0.148 | – | Better answers (+7.4 points) and much better-shaped probabilities, still below Jev in accuracy. 🐍 Fast enough to play Snake — every move is one POST /v1/decisions . Recorded at real speed , not sped up: 140 moves in 25.6 s (≈ 5.5 per second), about 150 ms per decision round trip, 0 generated tokens . Spark-X2.5-4B at 8 bit on an RTX 5060 Ti, recorded with the earlier MLX runtime (today's llama.cpp runtime is ~1.8× faster per decision) · one game, not a benchmark · about the demo ↓ · run it yourself ↓ --- ## Quickstart You need Python ≥ 3.11, git and uv. The same four commands work on macOS, Windows and Linux; nothing is compiled and no GPU toolkit is installed. [code] `rizzo download` is the only slow step, and it is all download: the model (4.4 GB) plus the llama.cpp runtime (about 570 MB with CUDA, 30 MB with Vulkan, 11 MB on a Mac). An interrupted download resumes where it stopped. In a hurry? `uv run rizzo download --size 1.7b` fetches a 1.8 GB model that is fine for a first look and much less accurate aft