{$i18n.t('Models')} • {$WEBUI_NAME} {#if loaded} { deleteModelHandler(selectedModel); }} />
{ console.log(importFiles); let reader = new FileReader(); reader.onload = async (event) => { try { let savedModels = JSON.parse(event.target.result); console.log(savedModels); } catch (e) { toast.error($i18n.t('Invalid JSON file')); return; } for (const model of savedModels) { if (model?.info ?? false) { if ($_models.find((m) => m.id === model.id)) { await updateModelById(localStorage.token, model.id, model.info).catch((error) => { return null; }); } else { await createNewModel(localStorage.token, model.info).catch((error) => { return null; }); } } else { if (model?.id && model?.name) { await createNewModel(localStorage.token, model).catch((error) => { return null; }); } } } await _models.set( await getModels( localStorage.token, $config?.features?.enable_direct_connections && ($settings?.directConnections ?? null) ) ); models = await getWorkspaceModels(localStorage.token); }; reader.readAsText(importFiles[0]); }} />
{$i18n.t('Models')}
{filteredModels.length}
{#if $user?.role === 'admin' || $user?.permissions?.workspace?.models_import} {/if} {#if models.length && ($user?.role === 'admin' || $user?.permissions?.workspace?.models_export)} {/if}
{#if query}
{/if}
{ if (e.deltaY !== 0) { e.preventDefault(); e.currentTarget.scrollLeft += e.deltaY; } }} >
{ localStorage.workspaceViewOption = value; await tick(); setTags(); }} /> {#if (tags ?? []).length > 0} { return { value: tag, label: tag }; })} /> {/if}
{#if (filteredModels ?? []).length !== 0}
{#each filteredModels as model (model.id)}
{ if ( $user?.role === 'admin' || model.user_id === $user?.id || model.access_control.write.group_ids.some((wg) => group_ids.includes(wg)) ) { goto(`/workspace/models/edit?id=${encodeURIComponent(model.id)}`); } }} >
modelfile profile
{model.name}
{#if shiftKey} {:else} { goto( `/workspace/models/edit?id=${encodeURIComponent(model.id)}` ); }} shareHandler={() => { shareModelHandler(model); }} cloneHandler={() => { cloneModelHandler(model); }} exportHandler={() => { exportModelHandler(model); }} hideHandler={() => { hideModelHandler(model); }} copyLinkHandler={() => { copyLinkHandler(model); }} deleteHandler={() => { selectedModel = model; showModelDeleteConfirm = true; }} onClose={() => {}} >
{/if}
{$i18n.t('By {{name}}', { name: capitalizeFirstLetter( model?.user?.name ?? model?.user?.email ?? $i18n.t('Deleted User') ) })}
·
{#if (model?.meta?.description ?? '').trim()} {model?.meta?.description} {:else} {model.id} {/if}
{/each}
{:else}
😕
{$i18n.t('No models found')}
{$i18n.t('Try adjusting your search or filter to find what you are looking for.')}
{/if}
{#if $config?.features.enable_community_sharing}
{$i18n.t('Made by Open WebUI Community')}
{$i18n.t('Discover a model')}
{$i18n.t('Discover, download, and explore model presets')}
{/if} {:else}
{/if}