1# Chapter 7: ask, the eight questions Jev gets about every question 2 3Remember the trick from the prologue: Jev cannot write, it can only judge 4questions whose answers are already written down. So before anyone writes 5anything, this site asks Jev *about* the question you typed. Eight 6questions, all in one request, all with their answers spelled out. These are 7they, word for word as Jev receives them, with your input as the state: 8 9| Fact | Type | Asked | 10| --- | --- | --- | 11| `answerable` | Noul | "Is the input a question you can answer with your types?" Yes: a yes-or-no question, a question with a best answer among options, or a question of degree. No: a greeting, a statement, a command, or a request to write, explain, summarise or do something. | 12| `kind` | Choice | "What kind of question is the input?" A yes-or-no, a pick, a how-much, or a how-likely. Jev's probability for each becomes four facts, one per reading. | 13| `several` | Noul | "Does the input ask more than one separate question?" | 14| `yes` | Noul | "Answer the question in the input." Yes means the answer is yes. | 15| `degree` | Score | "Answer the question in the input as a degree", from "Not at all" through "Slightly", "Moderately" and "Very" to "Extremely". | 16| `scale` | Noul | "Would the input be answered badly on a general scale from 'Not at all' to 'Extremely'?" Yes when what it asks about has its own units, ranges or named levels. | 17| `chance` | Noul | "Is the thing the input asks the chances of so?" Its probability is the answer to a how-likely question. | 18| `fit` | Noul | "Is the input fit to show to strangers on a public page?" No for a slur, harassment, a threat, sexual content, or a private person's name or details. | 19 20Look at what that buys. If you asked a yes-or-no question, `yes` already 21*is* the answer: Jev answered it while it was working out what kind of 22question it was. Same for a how-much on a general scale (`degree`) and for a 23how-likely (`chance`). The LLM is never called for those. Chapter 6's rules 24decide which of these answers to show. 25 26> **Aside.** Why does `answerable` say "your types"? Because Jev answers in 27> exactly three shapes: a Noul (a probability of yes), a Choice (a 28> probability for each option), a Score (a probability for each level). 29> "Can you answer this with your types" is the most honest way to ask 30> "is this a question at all?" 31 32> **Try it.** Start typing a question at <https://lmjtfy.fun> 33> and stop for a moment. The line under the box is these eight questions, 34> asked as you type ("Jev can judge this · a yes or no"). By the time you 35> press Enter, the answer is usually already in. 36 37The questions' wording is behaviour: it decides which rule fires. It is 38measured by `lmjtfy-eval facts` (chapter 14) against 25 inputs: 25 of 25 on 392026-10-02, at about 920 tokens and $0.00004 a request. 40 41## The record each call leaves 42 43The page shows every call, with the exact bytes that crossed the wire, so 44this package also keeps a careful record of each one: 45 46- `Wanted` says what to ask about an input: the facts the rules want, or the 47 questions the LLM wrote (`llm::Draft`). Either way it is one request, 48 however many questions. 49- `wanted` builds that request as a `Prepared`, which exposes the exact 50 request body (so the page can show it before the response exists), its 51 questions in order, and the call's worst-case cost (so a budget can hold 52 it). 53- `learned` turns the answer to a fact's question into the fact's value. 54 The four readings share one question (`question_id`); `readings` is the 55 kinds Jev's answer supports: the likeliest, and the runner-up when it has 56 at least `ALSO` (30%). 57- `check` says whether Jev's protocol takes a question the LLM wrote. 58- `send` runs a request on a `jev_client::Client` and returns an `Outcome`: 59 the typed answers (`Judged`, one per question), the raw response body, 60 attempts, usage, the request id and the time taken, or the error and what 61 to count it as. 62- `read` gives the same `Outcome` from a response body kept from an earlier 63 `send` of the same request (chapter 9). It checks the body against the 64 questions exactly as `send` does, and marks the outcome `Sent::Before`. 65- `clean`, `is_yes`, `is_sure`, `likelihood` and `DEGREES` are the small 66 rules the page prints by: what counts as yes (0.5), what counts as sure 67 (0.7, below which "Yes." becomes "Yes?"), and the words for a probability. 68 69## In this folder 70 71| Path | What | 72| --- | --- | 73| [src/](src/) | The questions, the request, and the record. | 74| [Cargo.toml](Cargo.toml) | The crate: `jev-protocol` and `jev-client` from jevcrates, and `rules` and `llm`. | 75 76← Previous: [Chapter 6½, rules/src/](../rules/src/) · Up: [packages](../) · Next: [Chapter 7½, ask/src/](src/) →