From 05b9a94d41a47af82e1ba95065e85e98f296636a Mon Sep 17 00:00:00 2001 From: sugarBecomer Date: Tue, 11 Nov 2025 11:57:50 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20ai=E5=88=9D=E5=A7=8B=E5=8C=96=20&=20?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/recognizer/classifier/init.go | 10 +++++----- .../application/recognizer/ddddocr/init.go | 8 +++++--- internal/application/recognizer/init.go | 17 ++++++----------- .../libonnxruntime.1.23.2.dylib | Bin .../libonnxruntime.so.1.23.2 | Bin .../{assets => static}/onnxruntime.dll | Bin internal/middleware/exception_handler.go | 16 ++++++++++------ 7 files changed, 26 insertions(+), 25 deletions(-) rename internal/application/recognizer/{assets => static}/libonnxruntime.1.23.2.dylib (100%) rename internal/application/recognizer/{assets => static}/libonnxruntime.so.1.23.2 (100%) rename internal/application/recognizer/{assets => static}/onnxruntime.dll (100%) diff --git a/internal/application/recognizer/classifier/init.go b/internal/application/recognizer/classifier/init.go index 37b59b2..7af1253 100644 --- a/internal/application/recognizer/classifier/init.go +++ b/internal/application/recognizer/classifier/init.go @@ -1,6 +1,7 @@ package classifier import ( + "embed" _ "embed" "likedream-goframe/internal/application/recognizer" "likedream-goframe/internal/framework/logger" @@ -11,11 +12,8 @@ import ( "go.uber.org/zap" ) -//go:embed static/classes.txt -var classesBytes []byte - -//go:embed static/model.onnx -var modelBytes []byte +//go:embed static/* +var fs embed.FS var imageClassifier *ImageClassifier func init() { @@ -39,10 +37,12 @@ func initModel() (modelPath, classesPath string) { os.Mkdir(staticPath, 0755) } modelPath = filepath.Join(staticPath, "model.onnx") + modelBytes, _ := fs.ReadFile("static/model.onnx") if _, err := os.Stat(modelPath); os.IsNotExist(err) { os.WriteFile(modelPath, modelBytes, 0644) } classesPath = filepath.Join(staticPath, "classes.txt") + classesBytes, _ := fs.ReadFile("static/classes.txt") if _, err := os.Stat(classesPath); os.IsNotExist(err) { os.WriteFile(classesPath, classesBytes, 0644) } diff --git a/internal/application/recognizer/ddddocr/init.go b/internal/application/recognizer/ddddocr/init.go index c1610ae..09a306d 100644 --- a/internal/application/recognizer/ddddocr/init.go +++ b/internal/application/recognizer/ddddocr/init.go @@ -1,6 +1,7 @@ package ddddocr import ( + "embed" _ "embed" "likedream-goframe/internal/application/recognizer" "os" @@ -8,8 +9,8 @@ import ( "strings" ) -//go:embed static/common_old.onnx -var commonOldBytes []byte +//go:embed static/* +var fs embed.FS func initModel() string { if !recognizer.OnnxIsInit { @@ -24,8 +25,9 @@ func initModel() string { os.Mkdir(staticPath, 0755) } modelPath := filepath.Join(staticPath, "common_old.onnx") + modelBytes, _ := fs.ReadFile("static/common_old.onnx") if _, err := os.Stat(modelPath); os.IsNotExist(err) { - os.WriteFile(modelPath, commonOldBytes, 0644) + os.WriteFile(modelPath, modelBytes, 0644) } return modelPath } diff --git a/internal/application/recognizer/init.go b/internal/application/recognizer/init.go index 4596323..4a0d591 100644 --- a/internal/application/recognizer/init.go +++ b/internal/application/recognizer/init.go @@ -1,6 +1,7 @@ package recognizer import ( + "embed" _ "embed" "likedream-goframe/internal/framework/logger" "os" @@ -12,14 +13,8 @@ import ( "go.uber.org/zap" ) -//go:embed assets/onnxruntime.dll -var onnxRuntimeFileWindows []byte - -//go:embed assets/libonnxruntime.1.23.2.dylib -var onnxRuntimeFileDarwin []byte - -//go:embed assets/libonnxruntime.so.1.23.2 -var onnxRuntimeFileLinux []byte +//go:embed static/* +var fs embed.FS // OnnxIsInit 初始化onnx配置 var OnnxIsInit = false @@ -48,15 +43,15 @@ func getOnnxRuntimeName() (onnxRuntimeFileName string, onnxRuntimeFileBytes []by switch systemOS { case "windows": onnxRuntimeFileName = "onnxruntime.dll" - onnxRuntimeFileBytes = onnxRuntimeFileWindows + onnxRuntimeFileBytes, _ = fs.ReadFile("static/" + onnxRuntimeFileName) return case "darwin": onnxRuntimeFileName = "onnxruntime.dylib" - onnxRuntimeFileBytes = onnxRuntimeFileDarwin + onnxRuntimeFileBytes, _ = fs.ReadFile("static/" + onnxRuntimeFileName) return case "linux": onnxRuntimeFileName = "onnxruntime.so" - onnxRuntimeFileBytes = onnxRuntimeFileLinux + onnxRuntimeFileBytes, _ = fs.ReadFile("static/" + onnxRuntimeFileName) return } logger.Logger.Panic("暂不支持的操作系统:", zap.String("系统名称", systemOS)) diff --git a/internal/application/recognizer/assets/libonnxruntime.1.23.2.dylib b/internal/application/recognizer/static/libonnxruntime.1.23.2.dylib similarity index 100% rename from internal/application/recognizer/assets/libonnxruntime.1.23.2.dylib rename to internal/application/recognizer/static/libonnxruntime.1.23.2.dylib diff --git a/internal/application/recognizer/assets/libonnxruntime.so.1.23.2 b/internal/application/recognizer/static/libonnxruntime.so.1.23.2 similarity index 100% rename from internal/application/recognizer/assets/libonnxruntime.so.1.23.2 rename to internal/application/recognizer/static/libonnxruntime.so.1.23.2 diff --git a/internal/application/recognizer/assets/onnxruntime.dll b/internal/application/recognizer/static/onnxruntime.dll similarity index 100% rename from internal/application/recognizer/assets/onnxruntime.dll rename to internal/application/recognizer/static/onnxruntime.dll diff --git a/internal/middleware/exception_handler.go b/internal/middleware/exception_handler.go index bfdf351..c746ef3 100644 --- a/internal/middleware/exception_handler.go +++ b/internal/middleware/exception_handler.go @@ -18,17 +18,17 @@ func ExceptionHandler(r *ghttp.Request) { if r.Response.Status == 404 { return } - if r.Response.BufferLength() > 0 { - return - } - if r.Response.Header().Get("Content-Type") == "image/png" { - return - } var ( err = r.GetError() res = r.GetHandlerResponse() code = gerror.Code(err) ) + if err == nil && r.Response.BufferLength() > 0 { + return + } + if r.Response.Header().Get("Content-Type") == "image/png" { + return + } // 如果没有异常,则直接返回 if err == nil && res != nil { @@ -49,6 +49,10 @@ func ExceptionHandler(r *ghttp.Request) { tmpErr := errors.CodeParam tmpErr.SetMessage((err.(*ent.ConstraintError)).Error()) code = tmpErr.Code() + } else if ent.IsNotFound(err) { + tmpErr := errors.CodeNotFound + tmpErr.SetMessage("数据未找到") + code = tmpErr.Code() } else if code == gcode.CodeNil { code = errors.CodeInternal.Code() } else if code == gcode.CodeValidationFailed {