let-jev-speak
Experiment that makes Jev produce prose by asking one choice question per word over a routed domain vocabulary.
Overview
let-jev-speak coaxes free-text answers out of TypeSafe's classification endpoint. Since /v1/systemone only returns choices, scores and probabilities, the library asks one choice question per word over a vocabulary and feeds the answer so far back in as the prefix. The model first routes the question to one of 28 domain vocabulary packs with a single choice call, which scored 60 of 60 on a labelled set and roughly doubles answer quality versus a generic vocabulary, then decodes word by word. A query like 'Why is the sky blue?' takes about 14 calls.
The author is explicit that this is not a good idea: a single well-posed choice question answers the same question better, in one call, with calibrated confidence. It is a working demonstration of what the endpoint can be pushed into and a map of where it stops, documented in a findings file. It has no dependencies, runs on Node 18+, and has a demo video and a Telegram bot.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which domain vocabulary pack fits this question? | — |
| Choice | Which word comes next in the answer? | — |
How it works
- Route the question to a domain vocabulary with one choice call
- Ask a few prior questions
- Decode the answer one word at a time with choice calls
- Feed the growing answer back as the prefix
- Return text with routing and usage stats
Strengths
- Shows the limits of a decision-only API
- Domain routing measurably improves output
- Zero dependencies
Caveats
- Author says it is not a good idea for real use
- Many calls per answer
- Output quality is limited
Getting started
git clone git@github.com:suidouble/let-jev-speak.git, then new LetJevSpeak(TYPESAFE_API_KEY).answer('Why do cats purr?').At a glance
- Type
- Library
- Status
- research
- Language
- JavaScript
- Runtime
- Node 18+ library and Telegram bot
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
TypeSafe's \`/v1/systemone\` endpoint classifies text — it returns a \`choice\`, a \`score\`, or a probability. It does not generate prose. This library makes it generate prose anyway: every word of the answer is a separate \`choice\` question over a vocabulary, and the loop feeds its own output back in as the prefix.
logicrw/awesome-jev-projects
Frequently asked questions
Can Jev generate text?
Not natively; this library picks one word at a time with choice questions.
Should I use this in production?
The author says no; a single choice question is better.
How many calls does an answer take?
About 14 in the README's example.
Related projects
Toy chat that makes Jev talk by repeatedly choosing its next word from a tiny caveman vocabulary.
ProjectprototypeTypeScriptLocal browser app that turns Jev's per-pixel colour probability distributions into textured paintings.
Browser extensionprototypeJavaScriptText generation with Jev via cascaded Choice questions: word type, WordNet category, embedding cluster, then the word itself.
ProjectresearchPythonExperiment that uses Jev as a sampler: DeepSeek proposes top-k next tokens and Jev chooses which comes next and when to stop.
ProjectresearchPythonPlayful web arena where Jev does arithmetic, writes chat replies and draws pixel art one Choice or Noul decision at a time.
DemoprototypeChatGPT-style web chat where every word of every reply is a Jev multiple-choice decision over a ~1,800-word vocabulary plus END.
ProjectprototypeTypeScript