@@ -32,6 +32,26 @@ export const ModelAddDialog = ({ isOpen, onClose, onSuccess }: ModelAddDialogPro
3232 const { t } = useTranslation ( )
3333 const { message } = App . useApp ( )
3434 const { updateModelConfig } = useConfig ( )
35+
36+ // Parse backend error message and return i18n key with params
37+ const parseModelError = ( errorMessage : string ) : { key : string ; params ?: Record < string , string > } => {
38+ if ( ! errorMessage ) {
39+ return { key : 'model.dialog.error.addFailed' }
40+ }
41+
42+ // Check for name conflict error
43+ const nameConflictMatch = errorMessage . match ( / N a m e [ ' " ] ? ( [ ^ ' " ] + ) [ ' " ] ? i s a l r e a d y i n u s e / i)
44+ if ( nameConflictMatch ) {
45+ return {
46+ key : 'model.dialog.error.nameConflict' ,
47+ params : { name : nameConflictMatch [ 1 ] }
48+ }
49+ }
50+
51+ // For other errors, return generic error key without showing backend details
52+ return { key : 'model.dialog.error.addFailed' }
53+ }
54+
3555 const [ form , setForm ] = useState ( {
3656 type : MODEL_TYPES . LLM as ModelType ,
3757 name : "" ,
@@ -211,7 +231,8 @@ export const ModelAddDialog = ({ isOpen, onClose, onSuccess }: ModelAddDialogPro
211231 onSuccess ( )
212232 }
213233 } catch ( error : any ) {
214- message . error ( error ?. message || '添加模型失败' ) ;
234+ const errorInfo = parseModelError ( error ?. message || '' )
235+ message . error ( t ( errorInfo . key , errorInfo . params ) )
215236 }
216237
217238 setForm ( prev => ( {
@@ -354,7 +375,9 @@ export const ModelAddDialog = ({ isOpen, onClose, onSuccess }: ModelAddDialogPro
354375 // Close the dialog
355376 onClose ( )
356377 } catch ( error ) {
357- message . error ( t ( 'model.dialog.error.addFailed' , { error } ) )
378+ const errorMessage = error instanceof Error ? error . message : String ( error )
379+ const errorInfo = parseModelError ( errorMessage )
380+ message . error ( t ( errorInfo . key , errorInfo . params ) )
358381 log . error ( t ( 'model.dialog.error.addFailedLog' ) , error )
359382 } finally {
360383 setLoading ( false )
0 commit comments