A chatbot for Banglish — romanized Bengali, typed the way people actually
type it. It works out what the message is asking for, then answers.
you aj mood bhalo na
model mama mood shob change hoy! Tui ki feel korchish?
Built on SmolLM2-1.7B,
further trained on Banglish conversation. The layer that reads the message
ships on its own as
banglish-ontor, which is
where to look for what it reads and how to put it in front of anything else.
Banglish e Model Card
ei model ta ki? — ekta Banglish chatbot. ekhon shune, bujhe.
ki pare? adda, khela, gaan, khabar. mon kharap er kotha shune.
ki parbe na? English/Bengali script na. choto model — sometimes bhul. doctor/lawyer na.
bipod hole? kichu message er uttor model dey na — companion.py age
oigulo dekhe ney, tomar kichu korte hobe na.
That is the whole thing: it answers, then keeps talking. In your own code,
from companion import reply is the only import you need — it reads the
message with the ontor layer that ships here, checks the guard before the
model, and builds the ChatML prompt this model was trained on.
The weights are 6.8 GB (fp32) — plan for that on download and in RAM. Your
own personal computer, your CPU, nothing leaves it.
Take the layer away and the same weights answer the same message like this:
You: aj mood bhalo na
weights only: mama mood bhalo feel kor! Jodi sad hole — ekhon karo
kichu kore khujho. Tui ki feel korte chao? Sometimes
just expressing emotion e kichu korba feel kore.
Longer, and answering a question nobody asked. The reply at the top of this
page is the same weights with the layer in front.
Why it is small, and why it is always on →
Picked by the Author, Not Numbers
What's published here is safetensors. The comparison below is a record of what we did locally — not a menu of downloads.
We converted all three formats (F16, Q8_0, Q4_K_M) for our own use and checked each one against the weights it came from. We compared them by hand, on the same prompts.
Q8_0 read tightest to us: better listening behavior, less advice-dumping than F16.
Limits and what it does not answer
Some messages are answered from a file that ships here rather than by the
model, and reply() checks that first on every turn. Written text, no
generation, nothing for you to wire up.
some messages are answered from a file, not by the model
Runtime
CPU. No GPU.
Published format
safetensors
Which one suits you depends on your machine.
Format
GGUF Size
Note
Q4_K_M
1.06 GB
Smallest
Q8_0
1.82 GB
What we run locally
F16
3.42 GB
Closest to the published weights
Limitations: Banglish only. May hallucinate. Not a professional advisor. Safety is best-effort; a small share of edge cases involve borderline deflections.
The author designed the system, chose the base models, ran all training and
measurement on the author's own machine, read the models' conversations, and
chose what to publish and what to withhold. Claude Code
(Anthropic) was used as a coding and writing tool under that direction.