@@ -33,6 +33,7 @@ interface TextModelForm {
3333interface SetProviderOptions {
3434 autoSelectFirstModel ?: boolean
3535 resetOverrides ?: boolean
36+ resetConnectionConfig ?: boolean
3637}
3738
3839const 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