12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <script lang="ts">
- import { WEBUI_BASE_URL } from '$lib/constants';
- import { user } from '$lib/stores';
- import { onMount, getContext } from 'svelte';
- import Suggestions from '../MessageInput/Suggestions.svelte';
- import Bolt from '$lib/components/icons/Bolt.svelte';
- const i18n = getContext('i18n');
- export let models = [];
- export let modelfiles = [];
- export let submitPrompt;
- export let suggestionPrompts;
- let modelfile = null;
- let selectedModelIdx = 0;
- $: modelfile =
- models[selectedModelIdx] in modelfiles ? modelfiles[models[selectedModelIdx]] : null;
- $: if (models.length > 0) {
- selectedModelIdx = models.length - 1;
- }
- </script>
- {#if models.length > 0}
- <div class="m-auto w-full max-w-3xl px-8 pb-32">
- <div class="flex justify-start">
- <div class="flex -space-x-4 mb-1">
- {#each models as model, modelIdx}
- <button
- on:click={() => {
- selectedModelIdx = modelIdx;
- }}
- >
- {#if model in modelfiles}
- <img
- src={modelfiles[model]?.imageUrl ?? `${WEBUI_BASE_URL}/static/favicon.png`}
- alt="modelfile"
- class=" size-[2.7rem] rounded-full border-[1px] border-gray-200 dark:border-none"
- draggable="false"
- />
- {:else}
- <img
- src={$i18n.language === 'dg-DG'
- ? `/doge.png`
- : `${WEBUI_BASE_URL}/static/favicon.png`}
- class=" size-[2.7rem] rounded-full border-[1px] border-gray-200 dark:border-none"
- alt="logo"
- draggable="false"
- />
- {/if}
- </button>
- {/each}
- </div>
- </div>
- <div
- class=" mt-2 mb-4 text-3xl text-gray-800 dark:text-gray-100 font-semibold text-left flex items-center gap-4"
- >
- <div>
- {#if modelfile}
- <span class=" capitalize">
- {modelfile.title}
- </span>
- <div class="mt-0.5 text-base font-normal text-gray-500 dark:text-gray-400">
- {modelfile.desc}
- </div>
- {#if modelfile.user}
- <div class="mt-0.5 text-sm font-normal text-gray-400 dark:text-gray-500">
- By <a href="https://openwebui.com/m/{modelfile.user.username}"
- >{modelfile.user.name ? modelfile.user.name : `@${modelfile.user.username}`}</a
- >
- </div>
- {/if}
- {:else}
- <div class=" line-clamp-1">{$i18n.t('Hello, {{name}}', { name: $user.name })}</div>
- <div class=" font-medium text-gray-400 dark:text-gray-500">
- {$i18n.t('How can I help you today?')}
- </div>
- {/if}
- </div>
- </div>
- <div class=" w-full">
- <Suggestions {suggestionPrompts} {submitPrompt} />
- </div>
- </div>
- {/if}
|