From ae197fb2ba344a06c3462b7114feb240ae409277 Mon Sep 17 00:00:00 2001 From: Joel Date: Wed, 20 Mar 2024 14:38:59 +0800 Subject: [PATCH] fix: switch provider call infinate --- .../workflow/nodes/knowledge-retrieval/use-config.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts b/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts index d34ed90260..04d617b2b0 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts +++ b/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts @@ -1,5 +1,6 @@ import { useCallback, useEffect, useRef, useState } from 'react' import produce from 'immer' +import { isEqual } from 'lodash-es' import type { ValueSelector, Var } from '../../types' import { BlockEnum, VarType } from '../../types' import { useIsChatMode, useWorkflow } from '../../hooks' @@ -72,6 +73,10 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => { }, [setInputs]) const handleCompletionParamsChange = useCallback((newParams: Record) => { + // inputRef.current.single_retrieval_config?.model is old when change the provider... + if (isEqual(newParams, inputRef.current.single_retrieval_config?.model.completion_params)) + return + const newInputs = produce(inputRef.current, (draft) => { if (!draft.single_retrieval_config) { draft.single_retrieval_config = { @@ -91,6 +96,12 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => { // set defaults models useEffect(() => { const inputs = inputRef.current + if (inputs.retrieval_mode === RETRIEVE_TYPE.multiWay && !inputs.multiple_retrieval_config?.reranking_model?.provider) + return + + if (inputs.retrieval_mode === RETRIEVE_TYPE.oneWay && !inputs.single_retrieval_config?.model?.provider) + return + const newInput = produce(inputs, (draft) => { if (currentProvider?.provider && currentModel?.model) { const hasSetModel = draft.single_retrieval_config?.model?.provider