From 72c89d2f3090093d1167942ae484234c44e616e8 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Fri, 5 Jul 2024 10:31:59 +0800 Subject: [PATCH] fix: fetch chat completion use default provider --- src/renderer/src/services/assistant.ts | 24 +++++++++++++++++++----- src/renderer/src/services/topic.ts | 10 ---------- src/renderer/src/store/assistants.ts | 3 +-- src/renderer/src/store/llm.ts | 4 ++-- 4 files changed, 22 insertions(+), 19 deletions(-) delete mode 100644 src/renderer/src/services/topic.ts diff --git a/src/renderer/src/services/assistant.ts b/src/renderer/src/services/assistant.ts index 4c3a307a..2d0a9744 100644 --- a/src/renderer/src/services/assistant.ts +++ b/src/renderer/src/services/assistant.ts @@ -1,6 +1,6 @@ -import { Assistant, Provider } from '@renderer/types' -import { getDefaultTopic } from './topic' +import { Assistant, Model, Provider, Topic } from '@renderer/types' import store from '@renderer/store' +import { uuid } from '@renderer/utils' export function getDefaultAssistant(): Assistant { return { @@ -12,12 +12,26 @@ export function getDefaultAssistant(): Assistant { } } +export function getDefaultTopic(): Topic { + return { + id: uuid(), + name: 'Default Topic', + messages: [] + } +} + export function getAssistantProvider(assistant: Assistant) { const providers = store.getState().llm.providers - return providers.find((p) => p.id === assistant.id) || getDefaultProvider() + const provider = providers.find((p) => p.id === assistant.model?.provider) + return provider || getDefaultProvider() +} + +export function getProviderByModel(model: Model) { + const providers = store.getState().llm.providers + return providers.find((p) => p.id === model.provider) as Provider } export function getDefaultProvider() { - const provider = store.getState().llm.providers.find((p) => p.isSystem) - return provider as Provider + const defaultModel = store.getState().llm.defaultModel + return getProviderByModel(defaultModel) } diff --git a/src/renderer/src/services/topic.ts b/src/renderer/src/services/topic.ts deleted file mode 100644 index fb1fb5af..00000000 --- a/src/renderer/src/services/topic.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Topic } from '@renderer/types' -import { uuid } from '@renderer/utils' - -export function getDefaultTopic(): Topic { - return { - id: uuid(), - name: 'Default Topic', - messages: [] - } -} diff --git a/src/renderer/src/store/assistants.ts b/src/renderer/src/store/assistants.ts index c139ec78..8e7775df 100644 --- a/src/renderer/src/store/assistants.ts +++ b/src/renderer/src/store/assistants.ts @@ -1,7 +1,6 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit' -import { getDefaultAssistant } from '@renderer/services/assistant' +import { getDefaultAssistant, getDefaultTopic } from '@renderer/services/assistant' import LocalStorage from '@renderer/services/storage' -import { getDefaultTopic } from '@renderer/services/topic' import { Assistant, Model, Topic } from '@renderer/types' import { uniqBy } from 'lodash' diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index bf7ea8bd..b88fbd5b 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -9,6 +9,7 @@ export interface LlmState { } const initialState: LlmState = { + defaultModel: SYSTEM_MODELS.openai[0], providers: [ { id: 'openai', @@ -42,8 +43,7 @@ const initialState: LlmState = { isSystem: true, models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled) } - ], - defaultModel: SYSTEM_MODELS.openai[0] + ] } const settingsSlice = createSlice({