Overview
Sepakat is a poll with no answer options. One open question, everyone replies in their own words, and it groups the replies that mean the same thing — a ranked result built from sentences rather than clicks. Sepakat is Indonesian for agreed.
Why it exists
Write the options and you have already decided what the acceptable answers are. Leave the field open and you get forty sentences nobody has time to read.
Problem
Closed polls frame the answer before anyone votes. Open polls return text nobody reads, so the grouping never happens.
Solution
Keep the open question and move the reading to the machine — group answers by meaning as they arrive.
How it works
Two models, two jobs — one reads the sentence, the other measures it.
The threshold is the only real knob: too low and pizza swallows pasta, too high and dark mode and night theme split into two rows. No Preference and Others skip the maths and sit at the bottom — a tie between ramen and I don’t care is not a tie.
The fried rice problem
The first version had one model: embed the answer, cluster the vectors. It held until somebody replied anything, just don’t eat the fried rice — and fried rice took the lead.
An embedding encodes what a sentence is about, so a rejection and an endorsement land in nearly the same place. The second model settles one thing first: what is this person for? Concepts are also translated to English before embedding, so nasi goreng and fried rice don’t split one group in two.
Design decisions
Running Llama locally is the expensive one — Ollama installed, a model pulled, a far worse first five minutes than an API key. Worth it for what the tool handles: open text from people who were told it was anonymous.
What it isn’t
Not a survey platform, and not finished — polls live in memory, there is no vote-per-person limit, and grouping by meaning is a judgement the machine makes for you. The source is public; if you run it on something real, I’d like to hear how the clustering held up — deanovelar@gmail.com.