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/hooks/use-checklist.ts |  110 +++----------------------------------------------------
 1 files changed, 6 insertions(+), 104 deletions(-)

diff --git a/app/components/workflow/hooks/use-checklist.ts b/app/components/workflow/hooks/use-checklist.ts
index c1b0189..36201dd 100644
--- a/app/components/workflow/hooks/use-checklist.ts
+++ b/app/components/workflow/hooks/use-checklist.ts
@@ -1,12 +1,10 @@
 import {
   useCallback,
   useMemo,
-  useRef,
 } from 'react'
 import { useTranslation } from 'react-i18next'
 import { useStoreApi } from 'reactflow'
 import type {
-  CommonNodeType,
   Edge,
   Node,
 } from '../types'
@@ -26,13 +24,6 @@
 import { useToastContext } from '@/app/components/base/toast'
 import { CollectionType } from '@/app/components/tools/types'
 import { useGetLanguage } from '@/context/i18n'
-import type { AgentNodeType } from '../nodes/agent/types'
-import { useStrategyProviders } from '@/service/use-strategy'
-import { canFindTool } from '@/utils'
-import { useDatasetsDetailStore } from '../datasets-detail-store/store'
-import type { KnowledgeRetrievalNodeType } from '../nodes/knowledge-retrieval/types'
-import type { DataSet } from '@/models/datasets'
-import { fetchDatasets } from '@/service/datasets'
 
 export const useChecklist = (nodes: Node[], edges: Edge[]) => {
   const { t } = useTranslation()
@@ -42,25 +33,6 @@
   const buildInTools = useStore(s => s.buildInTools)
   const customTools = useStore(s => s.customTools)
   const workflowTools = useStore(s => s.workflowTools)
-  const { data: strategyProviders } = useStrategyProviders()
-  const datasetsDetail = useDatasetsDetailStore(s => s.datasetsDetail)
-
-  const getCheckData = useCallback((data: CommonNodeType<{}>) => {
-    let checkData = data
-    if (data.type === BlockEnum.KnowledgeRetrieval) {
-      const datasetIds = (data as CommonNodeType<KnowledgeRetrievalNodeType>).dataset_ids
-      const _datasets = datasetIds.reduce<DataSet[]>((acc, id) => {
-        if (datasetsDetail[id])
-          acc.push(datasetsDetail[id])
-        return acc
-      }, [])
-      checkData = {
-        ...data,
-        _datasets,
-      } as CommonNodeType<KnowledgeRetrievalNodeType>
-    }
-    return checkData
-  }, [datasetsDetail])
 
   const needWarningNodes = useMemo(() => {
     const list = []
@@ -76,7 +48,7 @@
 
         moreDataForCheckValid = getToolCheckParams(node.data as ToolNodeType, buildInTools, customTools, workflowTools, language)
         if (provider_type === CollectionType.builtIn)
-          toolIcon = buildInTools.find(tool => canFindTool(tool.id, node.data.provider_id || ''))?.icon
+          toolIcon = buildInTools.find(tool => tool.id === node.data.provider_id)?.icon
 
         if (provider_type === CollectionType.custom)
           toolIcon = customTools.find(tool => tool.id === node.data.provider_id)?.icon
@@ -85,22 +57,8 @@
           toolIcon = workflowTools.find(tool => tool.id === node.data.provider_id)?.icon
       }
 
-      if (node.data.type === BlockEnum.Agent) {
-        const data = node.data as AgentNodeType
-        const isReadyForCheckValid = !!strategyProviders
-        const provider = strategyProviders?.find(provider => provider.declaration.identity.name === data.agent_strategy_provider_name)
-        const strategy = provider?.declaration.strategies?.find(s => s.identity.name === data.agent_strategy_name)
-        moreDataForCheckValid = {
-          provider,
-          strategy,
-          language,
-          isReadyForCheckValid,
-        }
-      }
-
       if (node.type === CUSTOM_NODE) {
-        const checkData = getCheckData(node.data)
-        const { errorMessage } = nodesExtraData[node.data.type].checkValid(checkData, t, moreDataForCheckValid)
+        const { errorMessage } = nodesExtraData[node.data.type].checkValid(node.data, t, moreDataForCheckValid)
 
         if (errorMessage || !validNodes.find(n => n.id === node.id)) {
           list.push({
@@ -134,7 +92,7 @@
     }
 
     return list
-  }, [nodes, edges, isChatMode, buildInTools, customTools, workflowTools, language, nodesExtraData, t, strategyProviders, getCheckData])
+  }, [t, nodes, edges, nodesExtraData, buildInTools, customTools, workflowTools, language, isChatMode])
 
   return needWarningNodes
 }
@@ -149,32 +107,8 @@
   const isChatMode = useIsChatMode()
   const store = useStoreApi()
   const nodesExtraData = useNodesExtraData()
-  const { data: strategyProviders } = useStrategyProviders()
-  const updateDatasetsDetail = useDatasetsDetailStore(s => s.updateDatasetsDetail)
-  const updateTime = useRef(0)
 
-  const getCheckData = useCallback((data: CommonNodeType<{}>, datasets: DataSet[]) => {
-    let checkData = data
-    if (data.type === BlockEnum.KnowledgeRetrieval) {
-      const datasetIds = (data as CommonNodeType<KnowledgeRetrievalNodeType>).dataset_ids
-      const datasetsDetail = datasets.reduce<Record<string, DataSet>>((acc, dataset) => {
-        acc[dataset.id] = dataset
-        return acc
-      }, {})
-      const _datasets = datasetIds.reduce<DataSet[]>((acc, id) => {
-        if (datasetsDetail[id])
-          acc.push(datasetsDetail[id])
-        return acc
-      }, [])
-      checkData = {
-        ...data,
-        _datasets,
-      } as CommonNodeType<KnowledgeRetrievalNodeType>
-    }
-    return checkData
-  }, [])
-
-  const handleCheckBeforePublish = useCallback(async () => {
+  const handleCheckBeforePublish = useCallback(() => {
     const {
       getNodes,
       edges,
@@ -189,24 +123,6 @@
       notify({ type: 'error', message: t('workflow.common.maxTreeDepth', { depth: MAX_TREE_DEPTH }) })
       return false
     }
-    // Before publish, we need to fetch datasets detail, in case of the settings of datasets have been changed
-    const knowledgeRetrievalNodes = nodes.filter(node => node.data.type === BlockEnum.KnowledgeRetrieval)
-    const allDatasetIds = knowledgeRetrievalNodes.reduce<string[]>((acc, node) => {
-      return Array.from(new Set([...acc, ...(node.data as CommonNodeType<KnowledgeRetrievalNodeType>).dataset_ids]))
-    }, [])
-    let datasets: DataSet[] = []
-    if (allDatasetIds.length > 0) {
-      updateTime.current = updateTime.current + 1
-      const currUpdateTime = updateTime.current
-      const { data: datasetsDetail } = await fetchDatasets({ url: '/datasets', params: { page: 1, ids: allDatasetIds } })
-      if (datasetsDetail && datasetsDetail.length > 0) {
-        // avoid old data to overwrite the new data
-        if (currUpdateTime < updateTime.current)
-          return false
-        datasets = datasetsDetail
-        updateDatasetsDetail(datasetsDetail)
-      }
-    }
 
     for (let i = 0; i < nodes.length; i++) {
       const node = nodes[i]
@@ -214,21 +130,7 @@
       if (node.data.type === BlockEnum.Tool)
         moreDataForCheckValid = getToolCheckParams(node.data as ToolNodeType, buildInTools, customTools, workflowTools, language)
 
-      if (node.data.type === BlockEnum.Agent) {
-        const data = node.data as AgentNodeType
-        const isReadyForCheckValid = !!strategyProviders
-        const provider = strategyProviders?.find(provider => provider.declaration.identity.name === data.agent_strategy_provider_name)
-        const strategy = provider?.declaration.strategies?.find(s => s.identity.name === data.agent_strategy_name)
-        moreDataForCheckValid = {
-          provider,
-          strategy,
-          language,
-          isReadyForCheckValid,
-        }
-      }
-
-      const checkData = getCheckData(node.data, datasets)
-      const { errorMessage } = nodesExtraData[node.data.type as BlockEnum].checkValid(checkData, t, moreDataForCheckValid)
+      const { errorMessage } = nodesExtraData[node.data.type as BlockEnum].checkValid(node.data, t, moreDataForCheckValid)
 
       if (errorMessage) {
         notify({ type: 'error', message: `[${node.data.title}] ${errorMessage}` })
@@ -252,7 +154,7 @@
     }
 
     return true
-  }, [store, isChatMode, notify, t, buildInTools, customTools, workflowTools, language, nodesExtraData, strategyProviders, updateDatasetsDetail, getCheckData])
+  }, [nodesExtraData, notify, t, store, isChatMode, buildInTools, customTools, workflowTools, language])
 
   return {
     handleCheckBeforePublish,

--
Gitblit v1.8.0