{$i18n.t('Models')} / {$WEBUI_NAME} {#if loaded} { deleteModelHandler(selectedModel); }} /> { console.log(importFiles); let reader = new FileReader(); reader.onload = async (event) => { let savedModels = []; try { 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) => { toast.error(`${error}`); return null; }); } else { await createNewModel(localStorage.token, model.info).catch((error) => { toast.error(`${error}`); return null; }); } } else { if (model?.id && model?.name) { await createNewModel(localStorage.token, model).catch((error) => { toast.error(`${error}`); return null; }); } } } await _models.set( await getModels( localStorage.token, $config?.features?.enable_direct_connections && ($settings?.directConnections ?? null) ) ); page = 1; getModelList(); }; reader.readAsText(importFiles[0]); }} />
{ clearTimeout(searchDebounceTimer); searchDebounceTimer = setTimeout(() => { page = 1; getModelList(); }, 300); }} /> {#if query}
{/if}
{ if (e.deltaY !== 0) { e.preventDefault(); e.currentTarget.scrollLeft += e.deltaY; } }} >
{ localStorage.workspaceViewOption = value; await tick(); }} /> {#if (tags ?? []).length > 0} { return { value: tag, label: tag }; })} /> {/if}

{#if models !== null} {#if (models ?? []).length !== 0}
{#each models as model (model.id)}
{ if (shouldIgnoreRowClick(e.target)) return; openModel(model); }} on:keydown={(e) => { if (e.currentTarget !== e.target) return; if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); openModel(model); } }} >
{ // LICENSE covers this Open WebUI fallback logo. // Do not alter, remove, obscure, or replace it except as LICENSE permits: // https://docs.openwebui.com/license. e.target.src = '/favicon.png'; }} />
{model.name}
{model.id}
{dayjs(model.updated_at * 1000).fromNow()}
{#if !model.write_access} {/if}
{(model?.meta?.description ?? '').trim() || model.base_model_id || $i18n.t('No description')}
{#if shiftKey && model.write_access} {:else}
{ goto(`/workspace/models/edit?id=${encodeURIComponent(model.id)}`); }} shareHandler={() => { shareModelHandler(model); }} cloneHandler={() => { cloneModelHandler(model); }} exportHandler={() => { exportModelHandler(model); }} hideHandler={() => { hideModelHandler(model); }} pinModelHandler={() => { pinModelHandler(model.id); }} copyLinkHandler={() => { copyLinkHandler(model); }} deleteHandler={() => { selectedModel = model; showModelDeleteConfirm = true; }} onClose={() => {}} >
{#if model.write_access} {/if}
{/if}
{/each}
{#if total > 30} {/if} {:else}
{$i18n.t('No models found')}
{$i18n.t('Try adjusting your search or filter to find what you are looking for.')}
{/if} {:else}
{/if}
{#if $config?.features.enable_community_sharing} {/if} {:else}
{/if}