From 845522b3b43df8b45b823a55c721ad63777e7000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Schr=C3=B6ter?= Date: Mon, 10 Feb 2025 21:10:23 +0100 Subject: [PATCH] fix(ocr): fix the auto-tag trigger for OCR --- main.go | 42 +++++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/main.go b/main.go index 68aefea..bbd664f 100644 --- a/main.go +++ b/main.go @@ -187,6 +187,21 @@ func main() { ocrProvider: ocrProvider, } + if app.isOcrEnabled() { + fmt.Printf("Using %s as manual OCR tag\n", manualOcrTag) + fmt.Printf("Using %s as auto OCR tag\n", autoOcrTag) + rawLimitOcrPages := os.Getenv("OCR_LIMIT_PAGES") + if rawLimitOcrPages == "" { + limitOcrPages = 5 + } else { + var err error + limitOcrPages, err = strconv.Atoi(rawLimitOcrPages) + if err != nil { + log.Fatalf("Invalid OCR_LIMIT_PAGES value: %v", err) + } + } + } + // Start background process for auto-tagging go func() { minBackoffDuration := 10 * time.Second @@ -197,7 +212,7 @@ func main() { for { processedCount, err := func() (int, error) { count := 0 - if isOcrEnabled() { + if app.isOcrEnabled() { ocrCount, err := app.processAutoOcrTagDocuments() if err != nil { return 0, fmt.Errorf("error in processAutoOcrTagDocuments: %w", err) @@ -256,7 +271,7 @@ func main() { // Endpoint to see if user enabled OCR api.GET("/experimental/ocr", func(c *gin.Context) { - enabled := isOcrEnabled() + enabled := app.isOcrEnabled() c.JSON(http.StatusOK, gin.H{"enabled": enabled}) }) @@ -366,8 +381,8 @@ func initLogger() { }) } -func isOcrEnabled() bool { - return visionLlmModel != "" && visionLlmProvider != "" +func (app *App) isOcrEnabled() bool { + return app.ocrProvider != nil } // validateOrDefaultEnvVars ensures all necessary environment variables are set @@ -385,16 +400,10 @@ func validateOrDefaultEnvVars() { if manualOcrTag == "" { manualOcrTag = "paperless-gpt-ocr" } - if isOcrEnabled() { - fmt.Printf("Using %s as manual OCR tag\n", manualOcrTag) - } if autoOcrTag == "" { autoOcrTag = "paperless-gpt-ocr-auto" } - if isOcrEnabled() { - fmt.Printf("Using %s as auto OCR tag\n", autoOcrTag) - } if paperlessBaseURL == "" { log.Fatal("Please set the PAPERLESS_BASE_URL environment variable.") @@ -420,19 +429,6 @@ func validateOrDefaultEnvVars() { log.Fatal("Please set the OPENAI_API_KEY environment variable for OpenAI provider.") } - if isOcrEnabled() { - rawLimitOcrPages := os.Getenv("OCR_LIMIT_PAGES") - if rawLimitOcrPages == "" { - limitOcrPages = 5 - } else { - var err error - limitOcrPages, err = strconv.Atoi(rawLimitOcrPages) - if err != nil { - log.Fatalf("Invalid OCR_LIMIT_PAGES value: %v", err) - } - } - } - // Initialize token limit from environment variable if limit := os.Getenv("TOKEN_LIMIT"); limit != "" { if parsed, err := strconv.Atoi(limit); err == nil {