diff --git a/web/app/components/app/configuration/dataset-config/index.tsx b/web/app/components/app/configuration/dataset-config/index.tsx index dfa243b8aa..f960ea7edb 100644 --- a/web/app/components/app/configuration/dataset-config/index.tsx +++ b/web/app/components/app/configuration/dataset-config/index.tsx @@ -256,6 +256,7 @@ const DatasetConfig: FC = () => {
{ const { t } = useTranslation() const [open, setOpen] = useState(false) const conditions = metadataFilteringConditions?.conditions || [] + const metadataList = unionBy(originalMetadataList, 'name').sort(a => a.id === 'built-in' ? 1 : -1) useEffect(() => { - conditions.forEach((condition) => { - if (!metadataList.find(metadata => metadata.name === condition.name)) - handleRemoveCondition(condition.name) - }) + if (selectedDatasetsLoaded) { + conditions.forEach((condition) => { + if (!metadataList.find(metadata => metadata.name === condition.name)) + handleRemoveCondition(condition.name) + }) + } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [metadataList, handleRemoveCondition]) + }, [metadataList, handleRemoveCondition, selectedDatasetsLoaded]) return ( > = ({ handleRetrievalModeChange, handleMultipleRetrievalConfigChange, selectedDatasets, + selectedDatasetsLoaded, handleOnDatasetsChange, isShowSingleRun, hideSingleRun, @@ -130,6 +131,7 @@ const Panel: FC> = ({
void export type MetadataShape = { metadataList?: MetadataInDoc[] + selectedDatasetsLoaded?: boolean metadataFilteringConditions?: MetadataFilteringConditions handleAddCondition: HandleAddCondition handleRemoveCondition: HandleRemoveCondition 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 c0454e1bba..b6abe878ed 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts +++ b/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts @@ -211,6 +211,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => { setInputs(newInputs) }, [inputs, setInputs, selectedDatasets, currentRerankModel, currentRerankProvider]) + const [selectedDatasetsLoaded, setSelectedDatasetsLoaded] = useState(false) // datasets useEffect(() => { (async () => { @@ -225,6 +226,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => { draft._datasets = selectedDatasets }) setInputs(newInputs) + setSelectedDatasetsLoaded(true) })() // eslint-disable-next-line react-hooks/exhaustive-deps }, []) @@ -418,6 +420,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => { handleModelChanged, handleCompletionParamsChange, selectedDatasets: selectedDatasets.filter(d => d.name), + selectedDatasetsLoaded, handleOnDatasetsChange, isShowSingleRun, hideSingleRun,