diff --git a/desktop/src/store/connectionStore.ts b/desktop/src/store/connectionStore.ts index cd6d438..6b4f929 100644 --- a/desktop/src/store/connectionStore.ts +++ b/desktop/src/store/connectionStore.ts @@ -501,7 +501,14 @@ export const useConnectionStore = create((set, get) => { if (!fallbackId) { throw new Error('可用模型数据格式异常,请刷新页面重试'); } - const modelToUse = preferredModel || fallbackId; + // 验证 preferredModel 是否在 SaaS 可用模型列表中 + // 避免使用上一次非 SaaS 会话残留的模型 ID + const validModelIds = new Set( + relayModels.flatMap(m => [m.id, ...(m.alias ? [m.alias] : [])]) + ); + const modelToUse = (preferredModel && validModelIds.has(preferredModel)) + ? preferredModel + : fallbackId; kernelClient.setConfig({ provider: 'custom', @@ -540,12 +547,16 @@ export const useConnectionStore = create((set, get) => { if (!fallbackModelId) { throw new Error('可用模型数据格式异常,请刷新页面重试'); } + // 浏览器路径也验证模型是否在 SaaS 列表中 + const validBrowserModelIds = new Set( + relayModels.flatMap(m => [m.id, ...(m.alias ? [m.alias] : [])]) + ); const relayClient = createSaaSRelayGatewayClient(session.saasUrl, () => { // 每次调用时读取 conversationStore 的 currentModel,fallback 到第一个可用模型 try { const { useConversationStore } = require('./chat/conversationStore'); const current = useConversationStore.getState().currentModel; - return current || fallbackModelId; + return (current && validBrowserModelIds.has(current)) ? current : fallbackModelId; } catch { return fallbackModelId; }