Model selection UI is available when multiple models are offered
Why it matters
When the backend routes between GPT-4o, GPT-4o-mini, Claude Sonnet, and Claude Haiku based on opaque rules, users lose predictability — a prompt that worked yesterday returns a weaker answer today because the router silently downgraded to a cheaper model. Exposing model selection in the UI hands that control back to the user, makes cost-vs-capability trade-offs explicit, and prevents the support backlog that grows when users cannot explain why response quality varies.
Severity rationale
Medium because hidden model routing damages trust and predictability even when each individual model works.
Remediation
Add a model picker in the composer header that persists the selection to localStorage and passes the chosen model id in the request body. Display the active model on each assistant message so the user can see which model produced which answer. Implement in src/components/chat/model-selector.tsx.
<Select value={model} onValueChange={setModel}>
{MODELS.map(m => <SelectItem key={m.id} value={m.id}>{m.label}</SelectItem>)}
</Select>
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the AI UX Patterns Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from ai-ux-patterns·automated