瀏覽代碼

multi-retrival use dataset's top-k (#8416)

Jyong 7 月之前
父節點
當前提交
7e611ffbf3

+ 1 - 1
api/core/rag/retrieval/dataset_retrieval.py

@@ -426,7 +426,7 @@ class DatasetRetrieval:
                         retrieval_method=retrieval_model["search_method"],
                         dataset_id=dataset.id,
                         query=query,
-                        top_k=top_k,
+                        top_k=retrieval_model.get("top_k") or 2,
                         score_threshold=retrieval_model.get("score_threshold", 0.0)
                         if retrieval_model["score_threshold_enabled"]
                         else 0.0,

+ 5 - 2
api/core/tools/tool/dataset_retriever/dataset_multi_retriever_tool.py

@@ -165,7 +165,10 @@ class DatasetMultiRetrieverTool(DatasetRetrieverBaseTool):
             if dataset.indexing_technique == "economy":
                 # use keyword table query
                 documents = RetrievalService.retrieve(
-                    retrieval_method="keyword_search", dataset_id=dataset.id, query=query, top_k=self.top_k
+                    retrieval_method="keyword_search",
+                    dataset_id=dataset.id,
+                    query=query,
+                    top_k=retrieval_model.get("top_k") or 2,
                 )
                 if documents:
                     all_documents.extend(documents)
@@ -176,7 +179,7 @@ class DatasetMultiRetrieverTool(DatasetRetrieverBaseTool):
                         retrieval_method=retrieval_model["search_method"],
                         dataset_id=dataset.id,
                         query=query,
-                        top_k=self.top_k,
+                        top_k=retrieval_model.get("top_k") or 2,
                         score_threshold=retrieval_model.get("score_threshold", 0.0)
                         if retrieval_model["score_threshold_enabled"]
                         else 0.0,