webui: Improve model parsing logic + add unit tests (#20749)

* add tests for model id parser

* add test case having activated params

* add structured tests for model id parser

* add ToDo

* feat: Improve model parsing logic + tests

* chore: update webui build output

---------

Co-authored-by: bluemoehre <bluemoehre@gmx.de>
This commit is contained in:
Aleksander Grygier
2026-03-19 12:25:50 +01:00
committed by GitHub
parent b486c17b3e
commit 512bba6ee0
6 changed files with 344 additions and 26 deletions
@@ -28,6 +28,11 @@
let parsed = $derived(ModelsService.parseModelId(modelId));
let resolvedShowRaw = $derived(showRaw ?? (config().showRawModelNames as boolean) ?? false);
let displayName = $derived(
aliases && aliases.length > 0 ? aliases[0] : (parsed.modelName ?? modelId)
);
let remainingAliases = $derived(aliases && aliases.length > 1 ? aliases.slice(1) : []);
let allTags = $derived([...(parsed.tags ?? []), ...(tags ?? [])]);
</script>
{#if resolvedShowRaw}
@@ -35,7 +40,7 @@
{:else}
<span class="flex min-w-0 flex-wrap items-center gap-1 {className}">
<span class="min-w-0 truncate font-medium">
{#if showOrgName && parsed.orgName}{parsed.orgName}/{/if}{parsed.modelName ?? modelId}
{#if showOrgName && parsed.orgName && !(aliases && aliases.length > 0)}{parsed.orgName}/{/if}{displayName}
</span>
{#if parsed.params}
@@ -50,14 +55,14 @@
</span>
{/if}
{#if aliases && aliases.length > 0}
{#each aliases as alias (alias)}
{#if remainingAliases.length > 0}
{#each remainingAliases as alias (alias)}
<span class={badgeClass}>{alias}</span>
{/each}
{/if}
{#if tags && tags.length > 0}
{#each tags as tag (tag)}
{#if allTags.length > 0}
{#each allTags as tag (tag)}
<span class={tagBadgeClass}>{tag}</span>
{/each}
{/if}