Skip to content

Commit 01d1246

Browse files
committed
fix(model): 切换提供商时自动更新 baseURL
- 添加 resetConnectionConfig 参数控制 baseURL 重置行为 - 切换提供商时完全重置为新提供商的默认配置 - 编辑模式下保留原有配置,避免意外重置
1 parent 2979751 commit 01d1246

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

packages/ui/src/components/TextModelEditModal.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,8 @@ const handleModelChange = (modelId: string) => {
279279
const onProviderChange = (providerId: string) => {
280280
manager.selectProvider(providerId, {
281281
autoSelectFirstModel: !isEditing.value,
282-
resetOverrides: true
282+
resetOverrides: true,
283+
resetConnectionConfig: true
283284
})
284285
}
285286
</script>

packages/ui/src/composables/model/useTextModelManager.ts

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ interface TextModelForm {
3333
interface SetProviderOptions {
3434
autoSelectFirstModel?: boolean
3535
resetOverrides?: boolean
36+
resetConnectionConfig?: boolean
3637
}
3738

3839
const DEFAULT_TEXT_MODEL_IDS = ['openai', 'gemini', 'deepseek', 'zhipu', 'siliconflow', 'custom'] as const
@@ -322,7 +323,8 @@ export function useTextModelManager() {
322323
const setProvider = (providerId: string, options: SetProviderOptions = {}) => {
323324
const {
324325
autoSelectFirstModel = true,
325-
resetOverrides = true
326+
resetOverrides = true,
327+
resetConnectionConfig = true
326328
} = options
327329

328330
form.value.providerId = providerId
@@ -340,10 +342,24 @@ export function useTextModelManager() {
340342
loadStaticModelsForProvider(providerId)
341343

342344
const providerMeta = providers.value.find(p => p.id === providerId)
343-
if (providerMeta?.defaultBaseURL) {
344-
form.value.connectionConfig = {
345-
baseURL: form.value.connectionConfig.baseURL || providerMeta.defaultBaseURL,
346-
...form.value.connectionConfig
345+
346+
// 根据 resetConnectionConfig 参数决定是否重置连接配置
347+
if (resetConnectionConfig) {
348+
// 切换提供商时:完全重置为新提供商的默认配置
349+
if (providerMeta?.defaultBaseURL) {
350+
form.value.connectionConfig = {
351+
baseURL: providerMeta.defaultBaseURL
352+
}
353+
} else {
354+
form.value.connectionConfig = {}
355+
}
356+
} else {
357+
// 编辑模式时:只在 baseURL 为空时才填充默认值
358+
if (providerMeta?.defaultBaseURL && !form.value.connectionConfig.baseURL) {
359+
form.value.connectionConfig = {
360+
...form.value.connectionConfig,
361+
baseURL: providerMeta.defaultBaseURL
362+
}
347363
}
348364
}
349365

@@ -408,7 +424,8 @@ export function useTextModelManager() {
408424

409425
setProvider(form.value.providerId, {
410426
autoSelectFirstModel: false,
411-
resetOverrides: false
427+
resetOverrides: false,
428+
resetConnectionConfig: false
412429
})
413430
if (!modelOptions.value.some(option => option.value === form.value.modelId) && form.value.modelId) {
414431
modelOptions.value.push({ value: form.value.modelId, label: form.value.modelId })

0 commit comments

Comments
 (0)