dsh: offer the local .27 Ollama models in the chat model dropdown

The dropdown is built from the hardcoded MODEL_CHOICES list in app.py, not from
OmniRoute, so 'ollama/qwen2.5*' existed upstream but could never appear in DSH.

- add ollama/qwen2.5:14b and ollama/qwen2.5-coder:14b to MODEL_CHOICES + MODEL_LABELS
- labels note that Ollama must be started first, since it now boots off on .27
- docs/dsh-architecture.md: new section on model selection, incl. the rebuild
  requirement (app.py is baked into the image via COPY . .) and the ordering trap
  that a model can be live in OmniRoute yet invisible in DSH

Verified: /api/models lists both ids on 3081-3084, and real streamed replies come
back from both local models through DSH.
This commit is contained in:
2026-10-12 17:05:25 +11:00
parent d7802bddb1
commit 2609ab5286
2 changed files with 43 additions and 3 deletions

View File

@@ -665,6 +665,11 @@ MODEL_CHOICES = ["auto/best-chat",
"auto/best-reasoning",
"auto/best-coding",
"auto/best-vision",
# Local models on .27, reached through OmniRoute. Free to run, but
# Ollama must be started first (family console -> AI Tools ->
# Ollama Local LLM). CPU inference, so slower than the cloud ones.
"ollama/qwen2.5:14b",
"ollama/qwen2.5-coder:14b",
"openrouter/deepseek/deepseek-v4-flash",
"openrouter/deepseek/deepseek-v4-pro"]
MODEL_LABELS = {
@@ -676,6 +681,8 @@ MODEL_LABELS = {
"auto/best-reasoning": "Reasoning · OmniRoute best",
"auto/best-coding": "Coding · OmniRoute best",
"auto/best-vision": "Multimodal · OmniRoute vision",
"ollama/qwen2.5:14b": "Local · Qwen2.5 14B (.27, needs Ollama on)",
"ollama/qwen2.5-coder:14b": "Local · Qwen2.5 Coder 14B (.27, needs Ollama on)",
"openrouter/deepseek/deepseek-v4-flash": "DeepSeek v4 flash (OpenRouter)",
"openrouter/deepseek/deepseek-v4-pro": "DeepSeek v4 pro (OpenRouter)",
}