[GH-ISSUE #24238] feat: model dropdown grouping/hierarchy — show models by provider/source #90976

Closed
opened 2026-05-15 16:16:26 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @bogerman1 on GitHub (Apr 29, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/24238

Problem

Currently /v1/models returns a flat list. When connecting to Hermes Agent (or any backend with many models), the model selector dropdown becomes a long flat list with 40+ entries — hard to navigate.

Models like hermes/deepseek/deepseek-v4-pro, hermes/ollama/qwen3-coder:480b are naturally hierarchical (provider/model) but Open WebUI renders them as a single flat dropdown.

Proposed Solution

Parse / separators in model IDs to create grouped/nested dropdown:

┌──────────────────────────────┐
│ hermes/                      │
│   ├── deepseek/              │
│   │   └── deepseek-v4-pro    │
│   ├── minimax/               │
│   │   ├── MiniMax-M2.5       │
│   │   └── MiniMax-M2.7       │
│   └── ollama/                │
│       ├── deepseek-v4-pro    │
│       ├── glm-5              │
│       └── ...                │
│ OpenAI/                      │
│   └── gpt-4.1                │
└──────────────────────────────┘

Or alternatively, group models by owned_by field from /v1/models response:

{ "id": "hermes/deepseek/deepseek-v4-pro", "owned_by": "deepseek", ... }

Could show as sections in the dropdown with provider headers.

Use Case

Hermes Agent exposes 47 models across 4 providers. Users need to quickly switch between models from different providers. A flat list is unusable at this scale.

References

  • Hermes Agent model router: auto-discovers providers from API keys, exposes hermes/{provider}/{model} format
  • Related: /v1/models already returns owned_by field which could be used for grouping
Originally created by @bogerman1 on GitHub (Apr 29, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/24238 ## Problem Currently `/v1/models` returns a flat list. When connecting to Hermes Agent (or any backend with many models), the model selector dropdown becomes a long flat list with 40+ entries — hard to navigate. Models like `hermes/deepseek/deepseek-v4-pro`, `hermes/ollama/qwen3-coder:480b` are naturally hierarchical (`provider/model`) but Open WebUI renders them as a single flat dropdown. ## Proposed Solution Parse `/` separators in model IDs to create grouped/nested dropdown: ``` ┌──────────────────────────────┐ │ hermes/ │ │ ├── deepseek/ │ │ │ └── deepseek-v4-pro │ │ ├── minimax/ │ │ │ ├── MiniMax-M2.5 │ │ │ └── MiniMax-M2.7 │ │ └── ollama/ │ │ ├── deepseek-v4-pro │ │ ├── glm-5 │ │ └── ... │ │ OpenAI/ │ │ └── gpt-4.1 │ └──────────────────────────────┘ ``` Or alternatively, group models by `owned_by` field from `/v1/models` response: ```json { "id": "hermes/deepseek/deepseek-v4-pro", "owned_by": "deepseek", ... } ``` Could show as sections in the dropdown with provider headers. ## Use Case Hermes Agent exposes 47 models across 4 providers. Users need to quickly switch between models from different providers. A flat list is unusable at this scale. ## References - Hermes Agent model router: auto-discovers providers from API keys, exposes `hermes/{provider}/{model}` format - Related: `/v1/models` already returns `owned_by` field which could be used for grouping
Author
Owner

@Classic298 commented on GitHub (Apr 29, 2026):

You can use provider prefixes for that

<!-- gh-comment-id:4345845295 --> @Classic298 commented on GitHub (Apr 29, 2026): You can use provider prefixes for that
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#90976