Same machine as /ask, bigger and messier prior.

Where /ask mixes the LLM with an n-gram trained on edited blog prose (1.7 MB), this page mixes the LLM with an n-gram trained on everything in Alex’s text orbit: 213 blog posts, 16,434 ChatGPT user turns, and 17,995 ChatGPT assistant turns, all stitched together in conversation order. The intuition is that Alex’s writing register is shaped by what he reads (the AI’s responses) as much as what he writes himself, so giving the n-gram both sides of every conversation lets it model the register of conversations in their full context. About 60 MB of text, 16 million SmolLM2 tokens, ~60 MB suffix array. The ship is large.

Three registers in one corpus: formal essay (blog), informal conversational (user turns), verbose assistant (ChatGPT turns). The longest-suffix matching at query time picks whichever register has the closest match to the current generation context, so at low α the LLM stays grammatical and the prior just lifts whatever phrasing the corpus has seen in similar context. The mixture probability handles the heterogeneity automatically.

Same model picker, same probability-space mixing as /ask.

Runs locally via Wllama. Models: SmolLM2 135M / 360M / 1.7B (Q4_K_M). Voice prior corpus: blog posts + every turn (user and assistant) from 1,888 ChatGPT conversations.