diff --git a/frontend/src/hooks/useKnowledgeBase.ts b/frontend/src/hooks/useKnowledgeBase.ts index 63ba90477..f2b8aafe6 100644 --- a/frontend/src/hooks/useKnowledgeBase.ts +++ b/frontend/src/hooks/useKnowledgeBase.ts @@ -81,24 +81,38 @@ export default function () { MessagePlugin.info("上传成功!"); getKnowled(); } else { - // 检查错误码,如果是重复文件则显示特定提示 - if (result.code === 'duplicate_file') { - MessagePlugin.error("文件已存在"); - } else { - MessagePlugin.error(result.message || (result.error && result.error.message) || "上传失败!"); + // 改进错误信息提取逻辑 + let errorMessage = "上传失败!"; + + // 优先从 error 对象中获取错误信息 + if (result.error && result.error.message) { + errorMessage = result.error.message; + } else if (result.message) { + errorMessage = result.message; } + + // 检查错误码,如果是重复文件则显示特定提示 + if (result.code === 'duplicate_file' || (result.error && result.error.code === 'duplicate_file')) { + errorMessage = "文件已存在"; + } + + MessagePlugin.error(errorMessage); } uploadInput.value.value = ""; }) .catch((err: any) => { - // 检查错误响应中的错误码 + // 改进 catch 中的错误处理 + let errorMessage = "上传失败!"; + if (err.code === 'duplicate_file') { - MessagePlugin.error("文件已存在"); + errorMessage = "文件已存在"; + } else if (err.error && err.error.message) { + errorMessage = err.error.message; } else if (err.message) { - MessagePlugin.error(err.message); - } else { - MessagePlugin.error("上传失败!"); + errorMessage = err.message; } + + MessagePlugin.error(errorMessage); uploadInput.value.value = ""; }); } else { diff --git a/internal/application/service/knowledge.go b/internal/application/service/knowledge.go index 038c40eb0..34fbf5da4 100644 --- a/internal/application/service/knowledge.go +++ b/internal/application/service/knowledge.go @@ -116,13 +116,13 @@ func (s *knowledgeService) CreateKnowledgeFromFile(ctx context.Context, kb.COSConfig.Region == "" || kb.COSConfig.BucketName == "" || kb.COSConfig.AppID == "" { logger.Error(ctx, "COS configuration incomplete for image multimodal processing") - return nil, werrors.NewBadRequestError("上传图片文件需要完整的COS配置信息") + return nil, werrors.NewBadRequestError("上传图片文件需要完整的COS配置信息, 请前往系统设置页面进行补全") } // 检查VLM配置 if kb.VLMConfig.ModelName == "" || kb.VLMConfig.BaseURL == "" { logger.Error(ctx, "VLM configuration incomplete for image multimodal processing") - return nil, werrors.NewBadRequestError("上传图片文件需要完整的VLM配置信息") + return nil, werrors.NewBadRequestError("上传图片文件需要完整的VLM配置信息, 请前往系统设置页面进行补全") } logger.Info(ctx, "Image multimodal configuration validation passed")