From c9f5029a9d38b6b234dd529bf6d6d3838d95bfd8 Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Mon, 8 Jul 2024 23:07:23 -0700 Subject: [PATCH] refac --- backend/apps/webui/models/models.py | 2 +- backend/main.py | 2 +- backend/test/apps/webui/routers/test_models.py | 2 +- .../chat/MessageInput/CallOverlay.svelte | 10 ++++++---- src/lib/components/workspace/Models.svelte | 2 +- .../(app)/workspace/models/create/+page.svelte | 2 +- .../(app)/workspace/models/edit/+page.svelte | 2 +- static/static/favicon.png | Bin 0 -> 10911 bytes 8 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 static/static/favicon.png diff --git a/backend/apps/webui/models/models.py b/backend/apps/webui/models/models.py index 300a805fe..3b128c7d6 100644 --- a/backend/apps/webui/models/models.py +++ b/backend/apps/webui/models/models.py @@ -29,7 +29,7 @@ class ModelParams(BaseModel): # ModelMeta is a model for the data stored in the meta field of the Model table class ModelMeta(BaseModel): - profile_image_url: Optional[str] = "/favicon.png" + profile_image_url: Optional[str] = "/static/favicon.png" description: Optional[str] = None """ diff --git a/backend/main.py b/backend/main.py index 7355a2159..6ded8e1d2 100644 --- a/backend/main.py +++ b/backend/main.py @@ -2229,7 +2229,7 @@ async def get_opensearch_xml(): {WEBUI_NAME} Search {WEBUI_NAME} UTF-8 - {WEBUI_URL}/favicon.png + {WEBUI_URL}/static/favicon.png {WEBUI_URL} diff --git a/backend/test/apps/webui/routers/test_models.py b/backend/test/apps/webui/routers/test_models.py index 34d3e30bd..410c4516a 100644 --- a/backend/test/apps/webui/routers/test_models.py +++ b/backend/test/apps/webui/routers/test_models.py @@ -26,7 +26,7 @@ class TestModels(AbstractPostgresTest): "base_model_id": "base-model-id", "name": "Hello World", "meta": { - "profile_image_url": "/favicon.png", + "profile_image_url": "/static/favicon.png", "description": "description", "capabilities": None, "model_config": {}, diff --git a/src/lib/components/chat/MessageInput/CallOverlay.svelte b/src/lib/components/chat/MessageInput/CallOverlay.svelte index bca31f610..e28b4b5bd 100644 --- a/src/lib/components/chat/MessageInput/CallOverlay.svelte +++ b/src/lib/components/chat/MessageInput/CallOverlay.svelte @@ -662,10 +662,11 @@ : rmsLevel * 100 > 1 ? 'size-14' : 'size-12'} transition-all rounded-full {(model?.info?.meta - ?.profile_image_url ?? '/favicon.png') !== '/favicon.png' + ?.profile_image_url ?? '/static/favicon.png') !== '/static/favicon.png' ? ' bg-cover bg-center bg-no-repeat' : 'bg-black dark:bg-white'} bg-black dark:bg-white" - style={(model?.info?.meta?.profile_image_url ?? '/favicon.png') !== '/favicon.png' + style={(model?.info?.meta?.profile_image_url ?? '/static/favicon.png') !== + '/static/favicon.png' ? `background-image: url('${model?.info?.meta?.profile_image_url}');` : ''} /> @@ -743,10 +744,11 @@ : rmsLevel * 100 > 1 ? 'size-[11.5rem]' : 'size-44'} transition-all rounded-full {(model?.info?.meta - ?.profile_image_url ?? '/favicon.png') !== '/favicon.png' + ?.profile_image_url ?? '/static/favicon.png') !== '/static/favicon.png' ? ' bg-cover bg-center bg-no-repeat' : 'bg-black dark:bg-white'} " - style={(model?.info?.meta?.profile_image_url ?? '/favicon.png') !== '/favicon.png' + style={(model?.info?.meta?.profile_image_url ?? '/static/favicon.png') !== + '/static/favicon.png' ? `background-image: url('${model?.info?.meta?.profile_image_url}');` : ''} /> diff --git a/src/lib/components/workspace/Models.svelte b/src/lib/components/workspace/Models.svelte index 285c54ebc..fde1e7710 100644 --- a/src/lib/components/workspace/Models.svelte +++ b/src/lib/components/workspace/Models.svelte @@ -297,7 +297,7 @@ : ''} " > modelfile profile diff --git a/src/routes/(app)/workspace/models/create/+page.svelte b/src/routes/(app)/workspace/models/create/+page.svelte index 6534fb49c..9d3907863 100644 --- a/src/routes/(app)/workspace/models/create/+page.svelte +++ b/src/routes/(app)/workspace/models/create/+page.svelte @@ -136,7 +136,7 @@ ...info, meta: { ...info.meta, - profile_image_url: info.meta.profile_image_url ?? '/favicon.png', + profile_image_url: info.meta.profile_image_url ?? '/static/favicon.png', suggestion_prompts: info.meta.suggestion_prompts ? info.meta.suggestion_prompts.filter((prompt) => prompt.content !== '') : null diff --git a/src/routes/(app)/workspace/models/edit/+page.svelte b/src/routes/(app)/workspace/models/edit/+page.svelte index 9e11c65d9..12b314a05 100644 --- a/src/routes/(app)/workspace/models/edit/+page.svelte +++ b/src/routes/(app)/workspace/models/edit/+page.svelte @@ -46,7 +46,7 @@ base_model_id: null, name: '', meta: { - profile_image_url: '/favicon.png', + profile_image_url: '/static/favicon.png', description: '', suggestion_prompts: null, tags: [] diff --git a/static/static/favicon.png b/static/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2074780847581edf9cf2ed0d2e9ebd8ff08c56 GIT binary patch literal 10911 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 literal 0 HcmV?d00001