From 696919611caae52e47fffab1c8863ee509c38d47 Mon Sep 17 00:00:00 2001 From: liuyuanchuang Date: Thu, 11 Dec 2025 19:39:35 +0800 Subject: [PATCH] feat: use siliconflow model --- api/v1/oss/handler.go | 3 ++- internal/service/recognition_service.go | 14 +++++--------- pkg/utils/model.go | 6 ++++++ 3 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 pkg/utils/model.go diff --git a/api/v1/oss/handler.go b/api/v1/oss/handler.go index b07cdd0..3ab6145 100644 --- a/api/v1/oss/handler.go +++ b/api/v1/oss/handler.go @@ -5,6 +5,7 @@ import ( "net/http" "os" "path/filepath" + "strings" "time" "gitea.com/bitwsd/document_ai/config" @@ -59,7 +60,7 @@ func GetSignatureURL(ctx *gin.Context) { ctx.JSON(http.StatusOK, common.SuccessResponse(ctx, gin.H{"sign_url": "", "repeat": true, "path": task.FileURL})) return } - extend := filepath.Ext(req.FileName) + extend := strings.ToLower(filepath.Ext(req.FileName)) if extend == "" { ctx.JSON(http.StatusOK, common.ErrorResponse(ctx, common.CodeParamError, "invalid file name")) return diff --git a/internal/service/recognition_service.go b/internal/service/recognition_service.go index 6a93226..b0c6f90 100644 --- a/internal/service/recognition_service.go +++ b/internal/service/recognition_service.go @@ -200,7 +200,7 @@ func (s *RecognitionService) processVLFormula(ctx context.Context, taskID int64) log.Info(ctx, "func", "processVLFormulaQueue", "msg", "获取任务成功", "task_id", taskID) // 处理具体任务 - if err := s.processVLFormulaTask(ctx, taskID, task.FileURL); err != nil { + if err := s.processVLFormulaTask(ctx, taskID, task.FileURL, utils.ModelVLQwen32BInstruct); err != nil { log.Error(ctx, "func", "processVLFormulaQueue", "msg", "处理任务失败", "error", err) return } @@ -288,7 +288,7 @@ func (s *RecognitionService) processFormulaTask(ctx context.Context, taskID int6 headers := map[string]string{"Content-Type": "application/json", utils.RequestIDHeaderKey: utils.GetRequestIDFromContext(ctx)} // 发送请求时会使用带超时的context - resp, err := s.httpClient.RequestWithRetry(ctx, http.MethodPost, s.getURL(ctx), bytes.NewReader(jsonData), headers) + resp, err := s.httpClient.RequestWithRetry(ctx, http.MethodPost, "", bytes.NewReader(jsonData), headers) if err != nil { if ctx.Err() == context.DeadlineExceeded { log.Error(ctx, "func", "processFormulaTask", "msg", "请求超时") @@ -322,7 +322,7 @@ func (s *RecognitionService) processFormulaTask(ctx context.Context, taskID int6 return nil } -func (s *RecognitionService) processVLFormulaTask(ctx context.Context, taskID int64, fileURL string) error { +func (s *RecognitionService) processVLFormulaTask(ctx context.Context, taskID int64, fileURL string, model string) error { isSuccess := false defer func() { if !isSuccess { @@ -370,7 +370,7 @@ Important instructions: base64Image := base64.StdEncoding.EncodeToString(imageData) requestBody := formula.VLFormulaRequest{ - Model: "Qwen/Qwen2.5-VL-32B-Instruct", + Model: model, Stream: false, MaxTokens: 512, Temperature: 0.1, @@ -518,14 +518,10 @@ func (s *RecognitionService) processOneTask(ctx context.Context) { log.Info(ctx, "func", "processFormulaQueue", "msg", "获取任务成功", "task_id", taskID) // 处理具体任务 - if err := s.processFormulaTask(ctx, taskID, task.FileURL); err != nil { + if err := s.processVLFormulaTask(ctx, taskID, task.FileURL, utils.ModelVLDeepSeekOCR); err != nil { log.Error(ctx, "func", "processFormulaQueue", "msg", "处理任务失败", "error", err) return } log.Info(ctx, "func", "processFormulaQueue", "msg", "处理任务成功", "task_id", taskID) } - -func (s *RecognitionService) getURL(ctx context.Context) string { - return "http://cloud.srcstar.com:8045/formula/predict" -} diff --git a/pkg/utils/model.go b/pkg/utils/model.go new file mode 100644 index 0000000..ed1eacb --- /dev/null +++ b/pkg/utils/model.go @@ -0,0 +1,6 @@ +package utils + +const ( + ModelVLQwen32BInstruct = "Qwen/Qwen2.5-VL-32B-Instruct" + ModelVLDeepSeekOCR = "deepseek-ai/DeepSeek-OCR" +)