From ab24af9c947e95941a930e54ae4f3b35a21c3809 Mon Sep 17 00:00:00 2001 From: twwu Date: Mon, 15 Sep 2025 21:42:35 +0800 Subject: [PATCH] feat: Implement reranking model enable/disable functionality in knowledge base panel --- .../retrieval-setting/reranking-model-selector.tsx | 4 ++-- .../retrieval-setting/search-method-option.tsx | 12 +++++++----- .../nodes/knowledge-base/hooks/use-config.ts | 11 +++++++++++ .../workflow/nodes/knowledge-base/panel.tsx | 3 +++ 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/reranking-model-selector.tsx b/web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/reranking-model-selector.tsx index 81e131b2a2..e1eccaf309 100644 --- a/web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/reranking-model-selector.tsx +++ b/web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/reranking-model-selector.tsx @@ -19,8 +19,8 @@ const RerankingModelSelector = ({ readonly = false, }: RerankingModelSelectorProps) => { const { - modelList: rerankModelList, - } = useModelListAndDefaultModel(ModelTypeEnum.rerank) + modelList: rerankModelList, + } = useModelListAndDefaultModel(ModelTypeEnum.rerank) const rerankModel = useMemo(() => { if (!rerankingModel) return undefined diff --git a/web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/search-method-option.tsx b/web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/search-method-option.tsx index 74629f47ae..40d44f3135 100644 --- a/web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/search-method-option.tsx +++ b/web/app/components/workflow/nodes/knowledge-base/components/retrieval-setting/search-method-option.tsx @@ -178,11 +178,13 @@ const SearchMethodOption = ({ ) } - + {rerankingModelEnabled && ( + + )} ) } diff --git a/web/app/components/workflow/nodes/knowledge-base/hooks/use-config.ts b/web/app/components/workflow/nodes/knowledge-base/hooks/use-config.ts index 215ef85559..d5c810cbc4 100644 --- a/web/app/components/workflow/nodes/knowledge-base/hooks/use-config.ts +++ b/web/app/components/workflow/nodes/knowledge-base/hooks/use-config.ts @@ -114,6 +114,16 @@ export const useConfig = (id: string) => { }) }, [getNodeData, handleNodeDataUpdate]) + const handleRerankingModelEnabledChange = useCallback((rerankingModelEnabled: boolean) => { + const nodeData = getNodeData() + handleNodeDataUpdate({ + retrieval_model: { + ...nodeData?.data.retrieval_model, + reranking_enable: rerankingModelEnabled, + }, + }) + }, [getNodeData, handleNodeDataUpdate]) + const handleWeighedScoreChange = useCallback((weightedScore: { value: number[] }) => { const nodeData = getNodeData() handleNodeDataUpdate({ @@ -190,6 +200,7 @@ export const useConfig = (id: string) => { handleEmbeddingModelChange, handleRetrievalSearchMethodChange, handleHybridSearchModeChange, + handleRerankingModelEnabledChange, handleWeighedScoreChange, handleRerankingModelChange, handleTopKChange, diff --git a/web/app/components/workflow/nodes/knowledge-base/panel.tsx b/web/app/components/workflow/nodes/knowledge-base/panel.tsx index 7014e12558..9eaf4ef39f 100644 --- a/web/app/components/workflow/nodes/knowledge-base/panel.tsx +++ b/web/app/components/workflow/nodes/knowledge-base/panel.tsx @@ -39,6 +39,7 @@ const Panel: FC> = ({ handleEmbeddingModelChange, handleRetrievalSearchMethodChange, handleHybridSearchModeChange, + handleRerankingModelEnabledChange, handleWeighedScoreChange, handleRerankingModelChange, handleTopKChange, @@ -150,6 +151,8 @@ const Panel: FC> = ({ onHybridSearchModeChange={handleHybridSearchModeChange} weightedScore={data.retrieval_model.weights} onWeightedScoreChange={handleWeighedScoreChange} + rerankingModelEnabled={data.retrieval_model.reranking_enable} + onRerankingModelEnabledChange={handleRerankingModelEnabledChange} rerankingModel={data.retrieval_model.reranking_model} onRerankingModelChange={handleRerankingModelChange} topK={data.retrieval_model.top_k}