Skip to content

Commit b65dd3d

Browse files
committed
perf: default chat model
1 parent 68e1700 commit b65dd3d

3 files changed

Lines changed: 38 additions & 2 deletions

File tree

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{"version": 2, "width": 80, "height": 40, "timestamp": 1763548901, "title": null, "env": {"shell": "/bin/bash", "term": "xterm"}}
2+
[0.000969, "o", "[2025-11-19 18:41:41]#: \u518d\u89c1 \r\n"]
3+
[6.6e-05, "o", "[2025-11-19 18:41:43]#: \u518d\u89c1\uff01\u5e0c\u671b\u4e0b\u6b21\u518d\u548c\u4f60\u4ea4\u6d41\uff01\u5982\u679c\u6709\u95ee\u9898\u6216\u9700\u8981\u5e2e\u52a9\uff0c\u968f\u65f6\u53ef\u4ee5\u6765\u627e\u6211\u3002\u795d\u4f60\u4e00\u5207\u987a\u5229\uff01 \r\n"]

src/lib/apis/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { WEBUI_API_BASE_URL, WEBUI_BASE_URL } from '$lib/constants';
1+
import { WEBUI_BASE_URL } from '$lib/constants';
22
import { convertOpenApiToToolPayload } from '$lib/utils';
33
import { getOpenAIModelsDirect } from './openai';
44

55
import { parse } from 'yaml';
6-
import { toast } from 'svelte-sonner';
76
import { apiFetch } from '$lib/net/apiFetch';
87

98
export const getModels = async (

src/lib/components/chat/Chat.svelte

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@
9999
100100
export let chatIdProp = '';
101101
102+
const SELECTED_MODELS_STORAGE_KEY = 'kael:selected-models';
103+
102104
let loading = true;
103105
104106
const eventTarget = new EventTarget();
@@ -238,11 +240,31 @@
238240
console.log('saveSessionSelectedModels', selectedModels, sessionStorage.selectedModels);
239241
};
240242
243+
const saveLocalSelectedModels = () => {
244+
const validSelection = selectedModels.filter((modelId) => modelId);
245+
246+
if (validSelection.length === 0) {
247+
localStorage.removeItem(SELECTED_MODELS_STORAGE_KEY);
248+
return;
249+
}
250+
251+
const selectionString = JSON.stringify(validSelection);
252+
if (localStorage.getItem(SELECTED_MODELS_STORAGE_KEY) === selectionString) {
253+
return;
254+
}
255+
256+
localStorage.setItem(SELECTED_MODELS_STORAGE_KEY, selectionString);
257+
};
258+
241259
let oldSelectedModelIds = [''];
242260
$: if (JSON.stringify(selectedModelIds) !== JSON.stringify(oldSelectedModelIds)) {
243261
onSelectedModelIdsChange();
244262
}
245263
264+
$: if (selectedModels) {
265+
saveLocalSelectedModels();
266+
}
267+
246268
const onSelectedModelIdsChange = () => {
247269
if (oldSelectedModelIds.filter((id) => id).length > 0) {
248270
resetInput();
@@ -954,6 +976,18 @@
954976
if (sessionStorage.selectedModels) {
955977
selectedModels = JSON.parse(sessionStorage.selectedModels);
956978
sessionStorage.removeItem('selectedModels');
979+
} else if (localStorage.getItem(SELECTED_MODELS_STORAGE_KEY)) {
980+
try {
981+
const localSelectedModels = JSON.parse(
982+
localStorage.getItem(SELECTED_MODELS_STORAGE_KEY) ?? '[]'
983+
);
984+
985+
if (Array.isArray(localSelectedModels)) {
986+
selectedModels = localSelectedModels;
987+
}
988+
} catch (error) {
989+
console.error('Failed to parse stored models from localStorage', error);
990+
}
957991
} else {
958992
if ($settings?.models) {
959993
selectedModels = $settings?.models;

0 commit comments

Comments
 (0)