@@ -153,14 +153,14 @@ export function useTextModelManager() {
153153 } )
154154
155155 const canTestFormConnection = computed ( ( ) => {
156- // 必须在编辑模式下
157- if ( ! editingModelId . value ) return false
158156 // 测试期间禁用
159157 if ( isTestingFormConnection . value ) return false
160158 // 必须有必需的连接配置
161159 if ( ! isConnectionConfigured . value ) return false
162- // 必须有模型名称
163- if ( ! form . value . name ?. trim ( ) ) return false
160+ // 必须有模型 ID(发送请求所需)
161+ if ( ! form . value . modelId ?. trim ( ) ) return false
162+ // 必须有 provider
163+ if ( ! form . value . providerId ) return false
164164
165165 return true
166166 } )
@@ -614,34 +614,32 @@ export function useTextModelManager() {
614614 formConnectionStatus . value = { type : 'info' , message : t ( 'modelManager.testing' ) }
615615
616616 try {
617- const existingConfig = editingModelId . value ? await modelManager . getModel ( editingModelId . value ) : undefined
618- if ( ! existingConfig ) {
619- throw new Error ( '模型配置不存在' )
620- }
621-
622617 if ( ! form . value . providerId || ! form . value . modelId ) {
623618 throw new Error ( '模型未选择' )
624619 }
625620
626- const providerMeta = ensureProviderMeta ( form . value . providerId , existingConfig . providerMeta )
627- const modelMeta = ensureModelMeta ( form . value . providerId , form . value . modelId , existingConfig . modelMeta )
621+ // 编辑模式下获取现有配置,新增模式下为 undefined
622+ const existingConfig = editingModelId . value ? await modelManager . getModel ( editingModelId . value ) : undefined
623+
624+ const providerMeta = ensureProviderMeta ( form . value . providerId , existingConfig ?. providerMeta )
625+ const modelMeta = ensureModelMeta ( form . value . providerId , form . value . modelId , existingConfig ?. modelMeta )
628626
629627 const baseURL = typeof form . value . connectionConfig ?. baseURL === 'string'
630628 ? form . value . connectionConfig . baseURL . trim ( )
631629 : undefined
632630
633631 const connectionConfig : TextConnectionConfig = {
634- baseURL : baseURL || existingConfig . connectionConfig ?. baseURL ,
635- ...existingConfig . connectionConfig ,
632+ baseURL : baseURL || existingConfig ? .connectionConfig ?. baseURL ,
633+ ...existingConfig ? .connectionConfig ,
636634 ...form . value . connectionConfig ,
637635 apiKey : form . value . displayMaskedKey && form . value . originalApiKey
638636 ? form . value . originalApiKey
639- : ( form . value . connectionConfig . apiKey || existingConfig . connectionConfig ?. apiKey )
637+ : ( form . value . connectionConfig . apiKey || existingConfig ? .connectionConfig ?. apiKey )
640638 }
641639
642640 const tempConfig = {
643- id : `temp-test-${ editingModelId . value } -${ Date . now ( ) } ` ,
644- name : form . value . name ,
641+ id : `temp-test-${ editingModelId . value || 'new' } -${ Date . now ( ) } ` ,
642+ name : form . value . name || form . value . modelId ,
645643 enabled : form . value . enabled ,
646644 providerMeta,
647645 modelMeta,
@@ -654,8 +652,9 @@ export function useTextModelManager() {
654652 try {
655653 // 测试临时模型
656654 await llmService . testConnection ( tempConfig . id )
657- formConnectionStatus . value = { type : 'success' , message : t ( 'modelManager.testSuccess' , { provider : form . value . name } ) }
658- toast . success ( t ( 'modelManager.testSuccess' , { provider : form . value . name } ) )
655+ const displayName = form . value . name || form . value . modelId
656+ formConnectionStatus . value = { type : 'success' , message : t ( 'modelManager.testSuccess' , { provider : displayName } ) }
657+ toast . success ( t ( 'modelManager.testSuccess' , { provider : displayName } ) )
659658 } finally {
660659 // 清理临时模型
661660 try {
@@ -667,11 +666,12 @@ export function useTextModelManager() {
667666
668667 } catch ( error ) {
669668 console . error ( '连接测试失败:' , error )
669+ const displayName = form . value . name || form . value . modelId
670670 formConnectionStatus . value = {
671671 type : 'error' ,
672- message : t ( 'modelManager.testFailed' , { provider : form . value . name , error : error instanceof Error ? error . message : 'Unknown error' || 'Unknown error' } )
672+ message : t ( 'modelManager.testFailed' , { provider : displayName , error : error instanceof Error ? error . message : 'Unknown error' } )
673673 }
674- toast . error ( t ( 'modelManager.testFailed' , { provider : form . value . name , error : error instanceof Error ? error . message : 'Unknown error' || 'Unknown error' } ) )
674+ toast . error ( t ( 'modelManager.testFailed' , { provider : displayName , error : error instanceof Error ? error . message : 'Unknown error' } ) )
675675 } finally {
676676 isTestingFormConnection . value = false
677677 }
0 commit comments