projects · live
seviyorsevmiyor
subtext of a chat, my own model, web
built by Damla Su Bilge · seviyorsevmiyor.noseydewdrop.com
what it is
Reads the subtext of a chat and commits to a call, with the numbers it used shown next to it. Turkish-first, free, no account. Two flows share one engine:
- flört var mı, yok mu? Paste a chat, drop a screenshot, or drop a WhatsApp export. It answers "flört var mı, yok mu?" and who is leaning in more.
- ne zaman değişti? Drop a WhatsApp export. It answers "when did this chat change?" with a date and a confidence interval, not a vibe.
why it is not an LLM wrapper
The verdict is computed on the device. A small tone model and a time-series engine produce the verdict, its percentages and its flags in both flows. No server call takes part in producing them.
The tone model is a logistic regression trained in Python, then ported to browser JavaScript with 1e-16 feature parity. Held-out accuracy improved from 72.2% to 75.9% via synthetic data distillation against an untouched real test set.
The cloud layer is opt-in, off by default, and allowed to fail: with no consent, no key, or a dead Worker, the shipped template lines carry the reading. Engine numbers are law; the cloud is a voice.
what leaves the device
- The time flow sends derived numbers only: no message text, no names, no dates as text.
- In the chat flow the cloud reading takes two ticked checkboxes, and once ticked, the messages do leave the device.
- One button stores chat content: "bu sohbeti bağışla, modeli birlikte eğitelim" posts the full transcript to train the model. The privacy page says how to ask for a donated chat to be deleted.
measured
- false positives 0% on null series and 0% under drift
- power 75% on a real 4x jump
- date CI coverage 89.3% against a nominal 90%
- 39,524 messages parsed in under 1.5 s on the development machine
- the largest feature/probability gap between the Python trainer and the JS runtime: 1.11e-16, about machine epsilon
stack
Python (trains the model) · JavaScript (the same model in the browser) · Tesseract OCR (reads a screenshot without uploading it) · Cloudflare Workers (optional, off by default)


