From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001
From: wwf <yearningwang@iqtogether.com>
Date: 星期三, 04 六月 2025 15:17:49 +0800
Subject: [PATCH] 初始化

---
 app/components/workflow/nodes/knowledge-retrieval/use-config.ts |  150 ++------------------------------------------------
 1 files changed, 6 insertions(+), 144 deletions(-)

diff --git a/app/components/workflow/nodes/knowledge-retrieval/use-config.ts b/app/components/workflow/nodes/knowledge-retrieval/use-config.ts
index 42aa7de..6b09c61 100644
--- a/app/components/workflow/nodes/knowledge-retrieval/use-config.ts
+++ b/app/components/workflow/nodes/knowledge-retrieval/use-config.ts
@@ -6,28 +6,13 @@
 } from 'react'
 import produce from 'immer'
 import { isEqual } from 'lodash-es'
-import { v4 as uuid4 } from 'uuid'
 import type { ValueSelector, Var } from '../../types'
 import { BlockEnum, VarType } from '../../types'
 import {
-  useIsChatMode,
-  useNodesReadOnly,
+  useIsChatMode, useNodesReadOnly,
   useWorkflow,
 } from '../../hooks'
-import type {
-  HandleAddCondition,
-  HandleRemoveCondition,
-  HandleToggleConditionLogicalOperator,
-  HandleUpdateCondition,
-  KnowledgeRetrievalNodeType,
-  MetadataFilteringModeEnum,
-  MultipleRetrievalConfig,
-} from './types'
-import {
-  ComparisonOperator,
-  LogicalOperator,
-  MetadataFilteringVariableType,
-} from './types'
+import type { KnowledgeRetrievalNodeType, MultipleRetrievalConfig } from './types'
 import {
   getMultipleRetrievalConfig,
   getSelectedDatasetsMode,
@@ -40,8 +25,6 @@
 import useOneStepRun from '@/app/components/workflow/nodes/_base/hooks/use-one-step-run'
 import { useCurrentProviderAndModel, useModelListAndDefaultModelAndCurrentProviderAndModel } from '@/app/components/header/account-setting/model-provider-page/hooks'
 import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations'
-import useAvailableVarList from '@/app/components/workflow/nodes/_base/hooks/use-available-var-list'
-import { useDatasetsDetailStore } from '../../datasets-detail-store/store'
 
 const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
   const { nodesReadOnly: readOnly } = useNodesReadOnly()
@@ -50,7 +33,6 @@
   const startNode = getBeforeNodesInSameBranch(id).find(node => node.data.type === BlockEnum.Start)
   const startNodeId = startNode?.id
   const { inputs, setInputs: doSetInputs } = useNodeCrud<KnowledgeRetrievalNodeType>(id, payload)
-  const updateDatasetsDetail = useDatasetsDetailStore(s => s.updateDatasetsDetail)
 
   const inputRef = useRef(inputs)
 
@@ -214,21 +196,20 @@
     setInputs(newInputs)
   }, [inputs, setInputs, selectedDatasets, currentRerankModel, currentRerankProvider])
 
-  const [selectedDatasetsLoaded, setSelectedDatasetsLoaded] = useState(false)
   // datasets
   useEffect(() => {
     (async () => {
       const inputs = inputRef.current
       const datasetIds = inputs.dataset_ids
       if (datasetIds?.length > 0) {
-        const { data: dataSetsWithDetail } = await fetchDatasets({ url: '/datasets', params: { page: 1, ids: datasetIds } as any })
+        const { data: dataSetsWithDetail } = await fetchDatasets({ url: '/datasets', params: { page: 1, ids: datasetIds } })
         setSelectedDatasets(dataSetsWithDetail)
       }
       const newInputs = produce(inputs, (draft) => {
         draft.dataset_ids = datasetIds
+        draft._datasets = selectedDatasets
       })
       setInputs(newInputs)
-      setSelectedDatasetsLoaded(true)
     })()
   // eslint-disable-next-line react-hooks/exhaustive-deps
   }, [])
@@ -255,6 +236,7 @@
     } = getSelectedDatasetsMode(newDatasets)
     const newInputs = produce(inputs, (draft) => {
       draft.dataset_ids = newDatasets.map(d => d.id)
+      draft._datasets = newDatasets
 
       if (payload.retrieval_mode === RETRIEVE_TYPE.multiWay && newDatasets.length > 0) {
         const multipleRetrievalConfig = draft.multiple_retrieval_config
@@ -264,7 +246,6 @@
         })
       }
     })
-    updateDatasetsDetail(newDatasets)
     setInputs(newInputs)
     setSelectedDatasets(newDatasets)
 
@@ -274,7 +255,7 @@
       || allExternal
     )
       setRerankModelOpen(true)
-  }, [inputs, setInputs, payload.retrieval_mode, selectedDatasets, currentRerankModel, currentRerankProvider, updateDatasetsDetail])
+  }, [inputs, setInputs, payload.retrieval_mode, selectedDatasets, currentRerankModel, currentRerankProvider])
 
   const filterVar = useCallback((varPayload: Var) => {
     return varPayload.type === VarType.string
@@ -306,113 +287,6 @@
     })
   }, [runInputData, setRunInputData])
 
-  const handleMetadataFilterModeChange = useCallback((newMode: MetadataFilteringModeEnum) => {
-    setInputs(produce(inputRef.current, (draft) => {
-      draft.metadata_filtering_mode = newMode
-    }))
-  }, [setInputs])
-
-  const handleAddCondition = useCallback<HandleAddCondition>(({ name, type }) => {
-    let operator: ComparisonOperator = ComparisonOperator.is
-
-    if (type === MetadataFilteringVariableType.number)
-      operator = ComparisonOperator.equal
-
-    const newCondition = {
-      id: uuid4(),
-      name,
-      comparison_operator: operator,
-    }
-
-    const newInputs = produce(inputRef.current, (draft) => {
-      if (draft.metadata_filtering_conditions) {
-        draft.metadata_filtering_conditions.conditions.push(newCondition)
-      }
-      else {
-        draft.metadata_filtering_conditions = {
-          logical_operator: LogicalOperator.and,
-          conditions: [newCondition],
-        }
-      }
-    })
-    setInputs(newInputs)
-  }, [setInputs])
-
-  const handleRemoveCondition = useCallback<HandleRemoveCondition>((id) => {
-    const conditions = inputRef.current.metadata_filtering_conditions?.conditions || []
-    const index = conditions.findIndex(c => c.id === id)
-    const newInputs = produce(inputRef.current, (draft) => {
-      if (index > -1)
-        draft.metadata_filtering_conditions?.conditions.splice(index, 1)
-    })
-    setInputs(newInputs)
-  }, [setInputs])
-
-  const handleUpdateCondition = useCallback<HandleUpdateCondition>((id, newCondition) => {
-    const conditions = inputRef.current.metadata_filtering_conditions?.conditions || []
-    const index = conditions.findIndex(c => c.id === id)
-    const newInputs = produce(inputRef.current, (draft) => {
-      if (index > -1)
-        draft.metadata_filtering_conditions!.conditions[index] = newCondition
-    })
-    setInputs(newInputs)
-  }, [setInputs])
-
-  const handleToggleConditionLogicalOperator = useCallback<HandleToggleConditionLogicalOperator>(() => {
-    const oldLogicalOperator = inputRef.current.metadata_filtering_conditions?.logical_operator
-    const newLogicalOperator = oldLogicalOperator === LogicalOperator.and ? LogicalOperator.or : LogicalOperator.and
-    const newInputs = produce(inputRef.current, (draft) => {
-      draft.metadata_filtering_conditions!.logical_operator = newLogicalOperator
-    })
-    setInputs(newInputs)
-  }, [setInputs])
-
-  const handleMetadataModelChange = useCallback((model: { provider: string; modelId: string; mode?: string }) => {
-    const newInputs = produce(inputRef.current, (draft) => {
-      draft.metadata_model_config = {
-        provider: model.provider,
-        name: model.modelId,
-        mode: model.mode || 'chat',
-        completion_params: draft.metadata_model_config?.completion_params || { temperature: 0.7 },
-      }
-    })
-    setInputs(newInputs)
-  }, [setInputs])
-
-  const handleMetadataCompletionParamsChange = useCallback((newParams: Record<string, any>) => {
-    const newInputs = produce(inputRef.current, (draft) => {
-      draft.metadata_model_config = {
-        ...draft.metadata_model_config!,
-        completion_params: newParams,
-      }
-    })
-    setInputs(newInputs)
-  }, [setInputs])
-
-  const filterStringVar = useCallback((varPayload: Var) => {
-    return [VarType.string].includes(varPayload.type)
-  }, [])
-
-  const {
-    availableVars: availableStringVars,
-    availableNodesWithParent: availableStringNodesWithParent,
-  } = useAvailableVarList(id, {
-    onlyLeafNodeVar: false,
-    filterVar: filterStringVar,
-  })
-
-  const filterNumberVar = useCallback((varPayload: Var) => {
-    return [VarType.number].includes(varPayload.type)
-  }, [])
-
-  const {
-    availableVars: availableNumberVars,
-    availableNodesWithParent: availableNumberNodesWithParent,
-  } = useAvailableVarList(id, {
-    onlyLeafNodeVar: false,
-    filterVar: filterNumberVar,
-  })
-
   return {
     readOnly,
     inputs,
@@ -423,7 +297,6 @@
     handleModelChanged,
     handleCompletionParamsChange,
     selectedDatasets: selectedDatasets.filter(d => d.name),
-    selectedDatasetsLoaded,
     handleOnDatasetsChange,
     isShowSingleRun,
     hideSingleRun,
@@ -435,17 +308,6 @@
     runResult,
     rerankModelOpen,
     setRerankModelOpen,
-    handleMetadataFilterModeChange,
-    handleUpdateCondition,
-    handleAddCondition,
-    handleRemoveCondition,
-    handleToggleConditionLogicalOperator,
-    handleMetadataModelChange,
-    handleMetadataCompletionParamsChange,
-    availableStringVars,
-    availableStringNodesWithParent,
-    availableNumberVars,
-    availableNumberNodesWithParent,
   }
 }
 

--
Gitblit v1.8.0