From e66d617f4ff30e64c3e3c8d6f7da067e4bb661f5 Mon Sep 17 00:00:00 2001 From: Hz_ Date: Fri, 24 Jul 2026 10:53:09 +0800 Subject: [PATCH] fix(go-model): default Jina rerank top_n to document count (#17242) ## Summary - Default Jina rerank `top_n` to the document count - Add coverage for default and explicitly configured `top_n` values ## Testing - `bash build.sh --test -c -o /tmp/ragflow-models.test ./internal/entity/models` - `git diff --check` --- internal/entity/models/jina.go | 4 ++-- internal/entity/models/jina_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/internal/entity/models/jina.go b/internal/entity/models/jina.go index 663797c0a6..a55b5c61a2 100644 --- a/internal/entity/models/jina.go +++ b/internal/entity/models/jina.go @@ -234,8 +234,8 @@ func (j *JinaModel) Rerank(ctx context.Context, modelName *string, query string, } url := fmt.Sprintf("%s/%s", resolvedBaseURL, j.baseModel.URLSuffix.Rerank) - var topN = rerankConfig.TopN - if rerankConfig.TopN != 0 { + topN := len(documents) + if rerankConfig != nil && rerankConfig.TopN > 0 && rerankConfig.TopN < topN { topN = rerankConfig.TopN } diff --git a/internal/entity/models/jina_test.go b/internal/entity/models/jina_test.go index c34f9a93ed..3dd4418b08 100644 --- a/internal/entity/models/jina_test.go +++ b/internal/entity/models/jina_test.go @@ -254,3 +254,28 @@ func TestJinaChatFallsBackToDefaultOnEmptyRegion(t *testing.T) { t.Errorf("empty Region: expected fallback to default, got %v", err) } } + +func TestJinaRerankDefaultsTopNToDocumentCount(t *testing.T) { + srv := newJinaServer(t, "/rerank", func(t *testing.T, body map[string]interface{}, w http.ResponseWriter) { + if body["top_n"] != float64(2) { + t.Errorf("top_n=%v, want 2", body["top_n"]) + } + _, _ = w.Write([]byte(`{"results":[]}`)) + }) + defer srv.Close() + + apiKey := "test-key" + modelName := "jina-reranker-v3" + _, err := newJinaForTest(srv.URL).Rerank( + t.Context(), + &modelName, + "weather", + []string{"sunny", "rainy"}, + &APIConfig{ApiKey: &apiKey}, + &RerankConfig{}, + nil, + ) + if err != nil { + t.Fatalf("Rerank: %v", err) + } +}