Flash-level decisions at half the size, now reading images.
PurpleMIST-Mini-2.0 is the newest model in our flagship decision line. Give it a message, ticket, record, receipt or screenshot and any number of typed questions about it, and it returns a calibrated probability for every possible answer in a single pass, in 19 languages.

Decisions do not only arrive as text. A refund claim comes with a photo of the receipt, a bug report with a screenshot, a payment dispute with a picture of the transfer. Until now that meant one model to read the image and another to decide.
Mini-2.0 reads the image and the text together and answers every typed question about them in one pass, with calibrated probabilities. It matches PurpleMIST-Flash-1.0 on text at about half the size, so the same decisions cost less to run.
0.723 on LocalLLaMA/typed-decisions (English, zero-shot) against 0.720 for the 7.9B Flash-1.0, and 46.5 on the Jev Decision Index public suite against Flash’s 46.7.
63.7 on the Decision Index public vision suite, 6th of 24 models up to 6B parameters. 0.984 accuracy on held-out receipts and 0.907 on screenshots and real photos. A state can carry several images.
English, eight African languages and ten other major languages. Questions can be in a different language from the state, at 0.937 accuracy on held-out cross-language questions.
Trained on states up to 98,304 tokens and never truncates: on the Decision Index all 140,178 text requests were answered whole, at a median 70 ms each.
import os, sys
from huggingface_hub import hf_hub_download
repo = "olaverse/PurpleMIST-Mini-2.0"
sys.path.insert(0, os.path.dirname(hf_hub_download(repo, "purplemist.py")))
from purplemist import Decider
d = Decider.from_pretrained(repo, device="cuda")
state = {"channel": "whatsapp",
"message": "Ẹ jọ̀ọ́, wọ́n ti yọ owó lẹ́ẹ̀mejì lórí káàdì mi fún ọjà kan náà. Mo fẹ́ kí ẹ dá owó mi padà."}
questions = {
"team": {"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"billing": "payments, charges and refunds",
"delivery": "orders in transit", "technical": "app or account problems"}},
"refund": {"type": "noul", "instructions": "The customer is asking for money back."},
"urgency": {"type": "score", "instructions": "How urgent is this?",
"criteria": ["can wait", "normal queue", "today", "immediately"]},
}
d.decide(state, questions)Coming to the Olaverse API as its decision model. Need every last point on reasoning-heavy questions? PurpleMIST-Flash-1.0 (7.9B) is still a little ahead there.
| PurpleMIST-Mini-2.0THIS PAGE | PurpleMIST-Flash-1.0 → | PurpleMIST-Mini-1.0 → | |
|---|---|---|---|
| Parameters | 4.5B | 7.9B | 1.9B |
| LocalLLaMA/typed-decisions (English, zero-shot) | 0.723 | 0.720 | 0.601 |
| African Typed Decisions (8 languages) | 0.636 | 0.668 | 0.416 |
| Jev Decision Index, public text suite | 46.5 | 46.7 | 13.1 |
| Images | Yes | No | No |
| Languages | 19 | English and 8 African | English |
| Best for | Text and images at lower cost | Reasoning-heavy and African-language text | English on small hardware |
| Generation | Current | Previous | Previous |
| On the Olaverse API | Coming soon | No, self-host only | No, self-host only |
91.8% docs fully right · 4B
MIST-Extract9.7 docs/s · 2B
LID-6080.867 acc · 140M
LID-60837 MB · 6,800 texts/s
DiacNetDER 0.0117 · 582M
DiacNetDER 0.0141 · 300M
DiacNetDER 0.0130 · 37.9M
MIST QG0.955 keep-rate · 25 langs