mirror of
https://github.com/langgenius/dify.git
synced 2026-05-06 02:18:08 +08:00
feat: other nodes support rename and fix knonw set var bug
This commit is contained in:
@ -216,7 +216,7 @@ export const useWorkflow = () => {
|
|||||||
const { getNodes, setNodes } = store.getState()
|
const { getNodes, setNodes } = store.getState()
|
||||||
const afterNodes = getAfterNodesInSameBranch(nodeId)
|
const afterNodes = getAfterNodesInSameBranch(nodeId)
|
||||||
const effectNodes = findUsedVarNodes(oldValeSelector, afterNodes)
|
const effectNodes = findUsedVarNodes(oldValeSelector, afterNodes)
|
||||||
console.log(effectNodes)
|
// console.log(effectNodes)
|
||||||
if (effectNodes.length > 0) {
|
if (effectNodes.length > 0) {
|
||||||
// debugger
|
// debugger
|
||||||
const newNodes = getNodes().map((node) => {
|
const newNodes = getNodes().map((node) => {
|
||||||
|
|||||||
@ -336,6 +336,84 @@ export const updateNodeVars = (oldNode: Node, oldVarSelector: ValueSelector, new
|
|||||||
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
case BlockEnum.KnowledgeRetrieval: {
|
||||||
|
const payload = data as KnowledgeRetrievalNodeType
|
||||||
|
if (payload.query_variable_selector.join('.') === oldVarSelector.join('.'))
|
||||||
|
payload.query_variable_selector = newVarSelector
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case BlockEnum.IfElse: {
|
||||||
|
const payload = data as IfElseNodeType
|
||||||
|
if (payload.conditions) {
|
||||||
|
payload.conditions = payload.conditions.map((c) => {
|
||||||
|
if (c.variable_selector.join('.') === oldVarSelector.join('.'))
|
||||||
|
c.variable_selector = newVarSelector
|
||||||
|
return c
|
||||||
|
})
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case BlockEnum.Code: {
|
||||||
|
const payload = data as CodeNodeType
|
||||||
|
if (payload.variables) {
|
||||||
|
payload.variables = payload.variables.map((v) => {
|
||||||
|
if (v.value_selector.join('.') === oldVarSelector.join('.'))
|
||||||
|
v.value_selector = newVarSelector
|
||||||
|
return v
|
||||||
|
})
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case BlockEnum.TemplateTransform: {
|
||||||
|
const payload = data as TemplateTransformNodeType
|
||||||
|
if (payload.variables) {
|
||||||
|
payload.variables = payload.variables.map((v: any) => {
|
||||||
|
if (v.value_selector.join('.') === oldVarSelector.join('.'))
|
||||||
|
v.value_selector = newVarSelector
|
||||||
|
return v
|
||||||
|
})
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case BlockEnum.QuestionClassifier: {
|
||||||
|
const payload = data as QuestionClassifierNodeType
|
||||||
|
if (payload.query_variable_selector.join('.') === oldVarSelector.join('.'))
|
||||||
|
payload.query_variable_selector = newVarSelector
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case BlockEnum.HttpRequest: {
|
||||||
|
const payload = data as HttpNodeType
|
||||||
|
if (payload.variables) {
|
||||||
|
payload.variables = payload.variables.map((v) => {
|
||||||
|
if (v.value_selector.join('.') === oldVarSelector.join('.'))
|
||||||
|
v.value_selector = newVarSelector
|
||||||
|
return v
|
||||||
|
})
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case BlockEnum.Tool: {
|
||||||
|
const payload = data as ToolNodeType
|
||||||
|
if (payload.tool_parameters) {
|
||||||
|
payload.tool_parameters = payload.tool_parameters.map((v) => {
|
||||||
|
if (v.value_selector?.join('.') === oldVarSelector.join('.'))
|
||||||
|
v.value_selector = newVarSelector
|
||||||
|
return v
|
||||||
|
})
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case BlockEnum.VariableAssigner: {
|
||||||
|
const payload = data as VariableAssignerNodeType
|
||||||
|
if (payload.variables) {
|
||||||
|
payload.variables = payload.variables.map((v) => {
|
||||||
|
if (v.join('.') === oldVarSelector.join('.'))
|
||||||
|
v = newVarSelector
|
||||||
|
return v
|
||||||
|
})
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return newNode
|
return newNode
|
||||||
|
|||||||
@ -182,6 +182,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
|
|||||||
const [selectedDatasets, setSelectedDatasets] = useState<DataSet[]>([])
|
const [selectedDatasets, setSelectedDatasets] = useState<DataSet[]>([])
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
(async () => {
|
(async () => {
|
||||||
|
const inputs = inputRef.current
|
||||||
const datasetIds = inputs.dataset_ids
|
const datasetIds = inputs.dataset_ids
|
||||||
if (datasetIds?.length > 0) {
|
if (datasetIds?.length > 0) {
|
||||||
const { data: dataSetsWithDetail } = await fetchDatasets({ url: '/datasets', params: { page: 1, ids: datasetIds } })
|
const { data: dataSetsWithDetail } = await fetchDatasets({ url: '/datasets', params: { page: 1, ids: datasetIds } })
|
||||||
@ -196,7 +197,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
|
|||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
let query_variable_selector: ValueSelector = []
|
let query_variable_selector: ValueSelector = inputs.query_variable_selector
|
||||||
if (isChatMode && inputs.query_variable_selector.length === 0 && startNodeId)
|
if (isChatMode && inputs.query_variable_selector.length === 0 && startNodeId)
|
||||||
query_variable_selector = [startNodeId, 'sys.query']
|
query_variable_selector = [startNodeId, 'sys.query']
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user