Skip to content

Commit d45d26d

Browse files
authored
feat: add search capability icon for model list (#854)
* feat: add search capability icon for model list * fix: clear search settings when creating new conversation
1 parent 899a2f2 commit d45d26d

File tree

7 files changed

+23
-1
lines changed

7 files changed

+23
-1
lines changed

src/main/presenter/configPresenter/index.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,12 +557,15 @@ export class ConfigPresenter implements IConfigPresenter {
557557
model.functionCall !== undefined ? model.functionCall : config.functionCall || false
558558
model.reasoning =
559559
model.reasoning !== undefined ? model.reasoning : config.reasoning || false
560+
model.enableSearch =
561+
model.enableSearch !== undefined ? model.enableSearch : config.enableSearch || false
560562
model.type = model.type !== undefined ? model.type : config.type || ModelType.Chat
561563
} else {
562564
// 确保模型具有这些属性,如果没有配置,默认为false
563565
model.vision = model.vision || false
564566
model.functionCall = model.functionCall || false
565567
model.reasoning = model.reasoning || false
568+
model.enableSearch = model.enableSearch || false
566569
model.type = model.type || ModelType.Chat
567570
}
568571
return model
@@ -619,7 +622,8 @@ export class ConfigPresenter implements IConfigPresenter {
619622
// 确保能力属性被复制
620623
vision: model.vision || false,
621624
functionCall: model.functionCall || false,
622-
reasoning: model.reasoning || false
625+
reasoning: model.reasoning || false,
626+
enableSearch: model.enableSearch || false
623627
}))
624628

625629
return {
@@ -640,6 +644,7 @@ export class ConfigPresenter implements IConfigPresenter {
640644
model.vision = model.vision !== undefined ? model.vision : false
641645
model.functionCall = model.functionCall !== undefined ? model.functionCall : false
642646
model.reasoning = model.reasoning !== undefined ? model.reasoning : false
647+
model.enableSearch = model.enableSearch !== undefined ? model.enableSearch : false
643648
return model
644649
})
645650

src/main/presenter/threadPresenter/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,6 +1018,9 @@ export class ThreadPresenter implements IThreadPresenter {
10181018
defaultSettings = { ...latestConversation.settings }
10191019
defaultSettings.systemPrompt = ''
10201020
defaultSettings.reasoningEffort = undefined
1021+
defaultSettings.enableSearch = undefined
1022+
defaultSettings.forcedSearch = undefined
1023+
defaultSettings.searchStrategy = undefined
10211024
}
10221025
Object.keys(settings).forEach((key) => {
10231026
if (settings[key] === undefined || settings[key] === null || settings[key] === '') {

src/renderer/src/components/settings/ModelConfigItem.vue

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212
title="函数调用能力"
1313
/>
1414
<Icon v-if="reasoning" icon="lucide:brain" class="w-4 h-4 text-purple-500" title="推理能力" />
15+
<Icon
16+
v-if="enableSearch"
17+
icon="lucide:globe"
18+
class="w-4 h-4 text-green-500"
19+
title="联网搜索能力"
20+
/>
1521
</div>
1622
<div class="flex-grow"></div>
1723
<div class="flex flex-row items-center gap-2">
@@ -89,6 +95,7 @@ withDefaults(
8995
vision?: boolean
9096
functionCall?: boolean
9197
reasoning?: boolean
98+
enableSearch?: boolean
9299
type?: ModelType
93100
changeable?: boolean
94101
}>(),

src/renderer/src/components/settings/ProviderModelList.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
:vision="model.vision"
1818
:function-call="model.functionCall"
1919
:reasoning="model.reasoning"
20+
:enable-search="model.enableSearch"
2021
:type="model.type ?? ModelType.Chat"
2122
@enabled-change="(enabled) => handleModelEnabledChange(model, enabled)"
2223
@delete-model="() => handleDeleteCustomModel(model)"
@@ -113,6 +114,7 @@
113114
:vision="model.vision"
114115
:function-call="model.functionCall"
115116
:reasoning="model.reasoning"
117+
:enable-search="model.enableSearch"
116118
:type="model.type ?? ModelType.Chat"
117119
@enabled-change="(enabled) => handleModelEnabledChange(model, enabled)"
118120
@config-changed="$emit('config-changed')"

src/renderer/src/components/settings/ProviderModelManager.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
:vision="model.vision ?? false"
4646
:function-call="model.functionCall ?? false"
4747
:reasoning="model.reasoning ?? false"
48+
:enable-search="model.enableSearch ?? false"
4849
:type="model.type ?? ModelType.Chat"
4950
@enabled-change="$emit('model-enabled-change', model, $event)"
5051
@config-changed="$emit('config-changed')"

src/shared/types/presenters/legacy.presenters.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,7 @@ export type RENDERER_MODEL_META = {
509509
vision?: boolean
510510
functionCall?: boolean
511511
reasoning?: boolean
512+
enableSearch?: boolean
512513
type?: ModelType
513514
}
514515
export type MODEL_META = {
@@ -523,6 +524,7 @@ export type MODEL_META = {
523524
vision?: boolean
524525
functionCall?: boolean
525526
reasoning?: boolean
527+
enableSearch?: boolean
526528
type?: ModelType
527529
}
528530
export type LLM_PROVIDER = {

src/shared/types/presenters/llmprovider.presenter.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export type RENDERER_MODEL_META = {
1717
vision?: boolean
1818
functionCall?: boolean
1919
reasoning?: boolean
20+
enableSearch?: boolean
2021
type?: ModelType
2122
contextLength?: number
2223
maxTokens?: number
@@ -33,6 +34,7 @@ export type MODEL_META = {
3334
vision?: boolean
3435
functionCall?: boolean
3536
reasoning?: boolean
37+
enableSearch?: boolean
3638
type?: ModelType
3739
contextLength?: number
3840
maxTokens?: number

0 commit comments

Comments
 (0)