Articles
Train a chatbot without changing the model
Saturday 19 September 2026. TripSpec plans a holiday from a local guide, offers three flights with no prices, and reminds you in the app. If a reply is wrong, we change the rules and score the same conversation again. The model file stays qwen3.5.
This Saturday we are not fine-tuning a model. Someone says they want to go to Japan. TripSpec writes a plan from a local guide, not from a brochure price. If the answer is wrong, we change the rules and run the same conversation again. The model stays the same.
- When: Saturday, 19 September 2026, 11:00–12:00 WIB (12:00–13:00 Singapore/Malaysia, 14:00–15:00 Sydney).
- Join: https://meet.google.com/ikn-ubdy-jyh
- Repo: https://github.com/iman-suherman/sdd-travel-planner
- Slides: https://suherman.net/TripSpec-2026-09-19.pdf
What you will see
One person planning a holiday, on one chat page. Not a booking site. Not a price list.
- 01“I want to go to Japan.” A Tokyo guide, and one question: where from, when, or how many people.
- 02“From Jakarta, tomorrow, just me and my wife.” Three flights. No price. The guide is not repeated.
- 03“Number 2, and a hotel.” Hotel name and area only.
- 04“Garuda at 3 a.m., 900 thousand?” That ticket is not in the data. We refuse it, and still do not quote a price.
- 05“Lock option 2 and remind me.” Three reminders inside the app: 14 days, 7 days, 1 day. Not email. Not WhatsApp.
What “train” means here
We do not update the model weights. We write the product story, turn it into rules, score six conversations, and save the report. The chat copies the passing reply for this turn. If it is wrong, we edit the story and score again. The file on disk is still qwen3.5.
- npm run pull — the same local model, qwen3.5.
- npm run strap — copy the helper tools onto this laptop. Not committed.
- npm run contracts — the story in contracts/vibe.md becomes the rules the model reads.
- npm run specs — documents we can open. The chat does not read them.
- npm run train — score the six conversations and save the report.
- npm run demo — open the chat. It will not answer until that report exists.
Read this before the session
Ten minutes is enough. Open them in this order, in the repo https://github.com/iman-suherman/sdd-travel-planner
- This article — so the story is already in your head.
- README.md — what “train” means, and what the product will not do.
- product/requirements.md — the musts: a guide on the first turn, three flights, no prices, in-app reminders.
- contracts/vibe.md — the story we paste. The rules are generated from this file during the demo. It is the only one of these that is committed as the source.
