
kyle-pena-nlp/jevchat on GitHub
- Stars
- 90
- Forks
- 5
- Language
- Python
- Last push
- 20 Sep 2026
Read from GitHub on . Counts change daily.
jevchat turns Jev, a model that only answers typed questions, into something that behaves like a chatbot. At every step it asks Jev a single choice question: given the user’s message and the reply written so far, which symbol comes next? The options are a fixed alphabet plus a stop token, Jev returns a probability for each one, and a sampler draws the next symbol from that distribution, appends it, and repeats until stop is drawn.
Several alphabets are available, including truncated token lists, and several sampling strategies: choice asks one question over the whole alphabet at once, while bisect sorts the alphabet and asks a series of earlier-or-later yes-no questions to narrow it down before a final choice inside the smaller group. A beam-search mode costs one score per live beam per step. While generating, a live panel shows the generation rate in symbols and characters per second, milliseconds per API call, and the top few symbols Jev scored at the last step.
The author calls this a Claude-accelerated experiment: they described the sampling algorithms to Claude and had it implement them. They’re upfront that it’s built for fun, that the cost is somewhat impractical, and that the results are hilarious.
How it uses Jev
class JevClient:
"""Calls ``POST {api_base}/systemone`` with one choice question at a time."""
def __init__(
self,
api_key: str,
*,
model: str = "jev-latest",
api_base: str = "https://api.typesafe.ai/v1",
timeout: float = 60.0,
max_retries: int = 4,
client: httpx.Client | None = None,
) -> None:
self.model = model
self.api_base = api_base.rstrip("/")


