forked from open-webui/open-webui
feat: external model info
This commit is contained in:
parent
eb004ccfc2
commit
32cb5f3ceb
3 changed files with 27 additions and 21 deletions
|
@ -33,7 +33,7 @@ export const getLiteLLMModels = async (token: string = '') => {
|
||||||
id: model.id,
|
id: model.id,
|
||||||
name: model.name ?? model.id,
|
name: model.name ?? model.id,
|
||||||
external: true,
|
external: true,
|
||||||
source: 'litellm'
|
source: 'LiteLLM'
|
||||||
}))
|
}))
|
||||||
.sort((a, b) => {
|
.sort((a, b) => {
|
||||||
return a.name.localeCompare(b.name);
|
return a.name.localeCompare(b.name);
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
import { user, MODEL_DOWNLOAD_POOL, models } from '$lib/stores';
|
import { user, MODEL_DOWNLOAD_POOL, models } from '$lib/stores';
|
||||||
import { toast } from 'svelte-sonner';
|
import { toast } from 'svelte-sonner';
|
||||||
import { getModels, splitStream } from '$lib/utils';
|
import { capitalizeFirstLetter, getModels, splitStream } from '$lib/utils';
|
||||||
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
||||||
|
|
||||||
const i18n = getContext('i18n');
|
const i18n = getContext('i18n');
|
||||||
|
@ -225,25 +225,27 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{#if item.info.external}
|
{#if item.info.external}
|
||||||
<div class=" mr-2">
|
<Tooltip content={item.info?.source ?? 'External'}>
|
||||||
<svg
|
<div class=" mr-2">
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
<svg
|
||||||
viewBox="0 0 16 16"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
fill="currentColor"
|
viewBox="0 0 16 16"
|
||||||
class="w-4 h-4"
|
fill="currentColor"
|
||||||
>
|
class="w-4 h-4"
|
||||||
<path
|
>
|
||||||
fill-rule="evenodd"
|
<path
|
||||||
d="M8.914 6.025a.75.75 0 0 1 1.06 0 3.5 3.5 0 0 1 0 4.95l-2 2a3.5 3.5 0 0 1-5.396-4.402.75.75 0 0 1 1.251.827 2 2 0 0 0 3.085 2.514l2-2a2 2 0 0 0 0-2.828.75.75 0 0 1 0-1.06Z"
|
fill-rule="evenodd"
|
||||||
clip-rule="evenodd"
|
d="M8.914 6.025a.75.75 0 0 1 1.06 0 3.5 3.5 0 0 1 0 4.95l-2 2a3.5 3.5 0 0 1-5.396-4.402.75.75 0 0 1 1.251.827 2 2 0 0 0 3.085 2.514l2-2a2 2 0 0 0 0-2.828.75.75 0 0 1 0-1.06Z"
|
||||||
/>
|
clip-rule="evenodd"
|
||||||
<path
|
/>
|
||||||
fill-rule="evenodd"
|
<path
|
||||||
d="M7.086 9.975a.75.75 0 0 1-1.06 0 3.5 3.5 0 0 1 0-4.95l2-2a3.5 3.5 0 0 1 5.396 4.402.75.75 0 0 1-1.251-.827 2 2 0 0 0-3.085-2.514l-2 2a2 2 0 0 0 0 2.828.75.75 0 0 1 0 1.06Z"
|
fill-rule="evenodd"
|
||||||
clip-rule="evenodd"
|
d="M7.086 9.975a.75.75 0 0 1-1.06 0 3.5 3.5 0 0 1 0-4.95l2-2a3.5 3.5 0 0 1 5.396 4.402.75.75 0 0 1-1.251-.827 2 2 0 0 0-3.085-2.514l-2 2a2 2 0 0 0 0 2.828.75.75 0 0 1 0 1.06Z"
|
||||||
/>
|
clip-rule="evenodd"
|
||||||
</svg>
|
/>
|
||||||
</div>
|
</svg>
|
||||||
|
</div>
|
||||||
|
</Tooltip>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,10 @@ export const getModels = async (token: string) => {
|
||||||
// Helper functions
|
// Helper functions
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
|
|
||||||
|
export const capitalizeFirstLetter = (string) => {
|
||||||
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
||||||
|
};
|
||||||
|
|
||||||
export const splitStream = (splitOn) => {
|
export const splitStream = (splitOn) => {
|
||||||
let buffer = '';
|
let buffer = '';
|
||||||
return new TransformStream({
|
return new TransformStream({
|
||||||
|
|
Loading…
Reference in a new issue