Subtext: a bookshop shelf that answers how a book should feel, on open models running in the shop
Description and use
Subtext lets independent bookstores answer emotional reader requests online with local LLMs, keeping all data on‑premises and providing demand reports.
Problem
Independent bookshops lack a way to match readers’ emotional requests to titles online, leaving many potential sales unserved and no data on what readers actually want.
Outcome
Subtext improves discovery of emotionally relevant books, provides a monthly demand report, and keeps all data on‑premises, eliminating per‑search costs.
Workflow
- 1. Load all book synopses into a local database.
- 2. Run the gemma4:e4b model on each synopsis to extract atmospheres, pace, density, voice, themes and supporting passages.
- 3. Store the extracted metadata in SQLite.
- 4. When a reader submits a request, embed the request with embeddinggemma and compare to book embeddings.
- 5. Rerank results using the book’s extracted meanings and confidence thresholds.
- 6. Present the top matches with quoted passages and a note explaining the match; decline if confidence is too low.
- 7. Log the request text anonymously for the Demand room analysis.
- 8. Allow the bookseller to review and correct the extracted metadata; corrections become authoritative.
- 9. Use the Demand room to generate buying lists and mood‑balance reports.
- 10. Deploy the system locally via Next.js, SQLite and Ollama on the shop’s machine.
Evidence
A local model reads every synopsis once; after that, the shelf answers requests by meaning, shows why each book was chosen, says when nothing fits, and keeps what readers asked for, without who asked, so the bookseller knows what to stock.
The first 200 books took 47 minutes, four at a time.
A new request is answered in about 30 ms (median of eleven), with a 621 MB model.
The shelf beats keywords clearly (better on 15 of 24 requests, worse on 6), and is level with plain embeddings overall (better on 9, worse on 8).
Readers’ requests are the shop’s most valuable data, and they stay in the shop.
- Record date: 2026-10-17T15:56:05.765Z