From 57ae5a83542947e2127602904079251b439c0a18 Mon Sep 17 00:00:00 2001
From: hllshiro <40970081+hllshiro@users.noreply.github.com>
Date: Wed, 18 Jun 2025 17:52:22 +0800
Subject: [PATCH 1/3] feat: enhance model selection logic in common setting.
---
.../configPresenter/modelDefaultSettings.ts | 12 ++++++++++++
src/renderer/src/components/ModelSelect.vue | 16 +++++++++++++++-
src/renderer/src/components/NewThread.vue | 5 ++++-
src/renderer/src/components/TitleView.vue | 7 ++++++-
.../src/components/mcp-config/mcpServerForm.vue | 6 +++++-
.../src/components/settings/CommonSettings.vue | 6 +++++-
src/renderer/src/stores/settings.ts | 13 ++++++++++---
7 files changed, 57 insertions(+), 8 deletions(-)
diff --git a/src/main/presenter/configPresenter/modelDefaultSettings.ts b/src/main/presenter/configPresenter/modelDefaultSettings.ts
index 48143cc36..3bc05ecbb 100644
--- a/src/main/presenter/configPresenter/modelDefaultSettings.ts
+++ b/src/main/presenter/configPresenter/modelDefaultSettings.ts
@@ -1676,5 +1676,17 @@ export const defaultModelsSettings: DefaultModelSetting[] = [
functionCall: false,
reasoning: false,
type: ModelType.Embedding
+ },
+ {
+ id: 'embedding',
+ name: 'embedding',
+ temperature: 0.0,
+ maxTokens: 4096,
+ contextLength: 4096,
+ match: ['embedding', 'embed'],
+ vision: false,
+ functionCall: false,
+ reasoning: false,
+ type: ModelType.Embedding
}
]
diff --git a/src/renderer/src/components/ModelSelect.vue b/src/renderer/src/components/ModelSelect.vue
index 2806e14e9..f453a18e5 100644
--- a/src/renderer/src/components/ModelSelect.vue
+++ b/src/renderer/src/components/ModelSelect.vue
@@ -59,6 +59,12 @@ const providers = ref<{ id: string; name: string; models: RENDERER_MODEL_META[]
const emit = defineEmits<{
(e: 'update:model', model: RENDERER_MODEL_META, providerId: string): void
}>()
+
+const props = defineProps<{
+ type?: ModelType[]
+ tag?: string[]
+}>()
+
const filteredProviders = computed(() => {
if (!keyword.value) return providers.value
return providers.value
@@ -100,7 +106,15 @@ onMounted(async () => {
return {
id: providerId,
name: provider?.name || providerId,
- models: models.filter((model) => model.type === ModelType.Chat)
+ models:
+ props.type && props.type.length === 0
+ ? models
+ : models.filter(
+ (model) =>
+ model.type !== undefined &&
+ props.type &&
+ props.type.includes(model.type as ModelType)
+ )
}
})
} catch (error) {
diff --git a/src/renderer/src/components/NewThread.vue b/src/renderer/src/components/NewThread.vue
index 73351ff60..84826fabe 100644
--- a/src/renderer/src/components/NewThread.vue
+++ b/src/renderer/src/components/NewThread.vue
@@ -58,7 +58,10 @@
-
+
diff --git a/src/renderer/src/components/TitleView.vue b/src/renderer/src/components/TitleView.vue
index 1b3171ce9..9d048fb86 100644
--- a/src/renderer/src/components/TitleView.vue
+++ b/src/renderer/src/components/TitleView.vue
@@ -27,7 +27,10 @@
-
+
@@ -71,6 +74,8 @@ import { onMounted, ref, watch } from 'vue'
import { useChatStore } from '@/stores/chat'
import { usePresenter } from '@/composables/usePresenter'
import { useThemeStore } from '@/stores/theme'
+import { ModelType } from '@shared/model'
+
const configPresenter = usePresenter('configPresenter')
const { t } = useI18n()
diff --git a/src/renderer/src/components/mcp-config/mcpServerForm.vue b/src/renderer/src/components/mcp-config/mcpServerForm.vue
index ad1856a6d..218a3cad3 100644
--- a/src/renderer/src/components/mcp-config/mcpServerForm.vue
+++ b/src/renderer/src/components/mcp-config/mcpServerForm.vue
@@ -28,6 +28,7 @@ import type { RENDERER_MODEL_META } from '@shared/presenter'
import { MCP_MARKETPLACE_URL, HIGRESS_MCP_MARKETPLACE_URL } from './const'
import { usePresenter } from '@/composables/usePresenter'
import { useThemeStore } from '@/stores/theme'
+import { ModelType } from '@shared/model'
const { t } = useI18n()
const { toast } = useToast()
@@ -793,7 +794,10 @@ HTTP-Referer=deepchatai.cn`
-
+
diff --git a/src/renderer/src/components/settings/CommonSettings.vue b/src/renderer/src/components/settings/CommonSettings.vue
index c0b57a7e9..0f109b3d2 100644
--- a/src/renderer/src/components/settings/CommonSettings.vue
+++ b/src/renderer/src/components/settings/CommonSettings.vue
@@ -77,7 +77,10 @@
-
+
@@ -371,6 +374,7 @@ import { nanoid } from 'nanoid'
import { useThemeStore } from '@/stores/theme'
import { useSoundStore } from '@/stores/sound'
import { useLanguageStore } from '@/stores/language'
+import { ModelType } from '@shared/model'
const devicePresenter = usePresenter('devicePresenter')
const configPresenter = usePresenter('configPresenter')
diff --git a/src/renderer/src/stores/settings.ts b/src/renderer/src/stores/settings.ts
index 89cbc59bb..14916d2b4 100644
--- a/src/renderer/src/stores/settings.ts
+++ b/src/renderer/src/stores/settings.ts
@@ -81,10 +81,17 @@ export const useSettingsStore = defineStore('settings', () => {
}
// 如果没有找到匹配优先级的模型,返回第一个可用的模型
- if (enabledModels.value[0]?.models.length > 0) {
+
+ const model = enabledModels.value
+ .flatMap((provider) =>
+ provider.models.map((m) => ({ ...m, providerId: provider.providerId }))
+ )
+ .find((m) => m.type === ModelType.Chat || m.type === ModelType.ImageGeneration)
+
+ if (model) {
return {
- model: enabledModels.value[0].models[0],
- providerId: enabledModels.value[0].providerId
+ model: model,
+ providerId: model.providerId
}
}
From 124f0a1c57fd6580e4e50d8d77e710502280f9f7 Mon Sep 17 00:00:00 2001
From: hllshiro <40970081+hllshiro@users.noreply.github.com>
Date: Wed, 18 Jun 2025 17:56:07 +0800
Subject: [PATCH 2/3] fix: remove unused 'tag' prop from ModelSelect component
---
src/renderer/src/components/ModelSelect.vue | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/renderer/src/components/ModelSelect.vue b/src/renderer/src/components/ModelSelect.vue
index f453a18e5..423dcafdb 100644
--- a/src/renderer/src/components/ModelSelect.vue
+++ b/src/renderer/src/components/ModelSelect.vue
@@ -62,7 +62,6 @@ const emit = defineEmits<{
const props = defineProps<{
type?: ModelType[]
- tag?: string[]
}>()
const filteredProviders = computed(() => {
From 36fa2619c8a17592823e5013c2ee5079f7a8cede Mon Sep 17 00:00:00 2001
From: hllshiro <40970081+hllshiro@users.noreply.github.com>
Date: Wed, 18 Jun 2025 18:08:46 +0800
Subject: [PATCH 3/3] fix: improve prop type definition and default handling in
ModelSelect component
---
src/renderer/src/components/ModelSelect.vue | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/renderer/src/components/ModelSelect.vue b/src/renderer/src/components/ModelSelect.vue
index 423dcafdb..d31f5ae29 100644
--- a/src/renderer/src/components/ModelSelect.vue
+++ b/src/renderer/src/components/ModelSelect.vue
@@ -38,7 +38,7 @@