feat: other nodes support rename and fix knonw set var bug

This commit is contained in:
Joel 2024-03-21 16:06:35 +08:00
parent 524b19bb3a
commit 8e0d8fdb3f
3 changed files with 81 additions and 2 deletions

View File

@ -216,7 +216,7 @@ export const useWorkflow = () => {
const { getNodes, setNodes } = store.getState()
const afterNodes = getAfterNodesInSameBranch(nodeId)
const effectNodes = findUsedVarNodes(oldValeSelector, afterNodes)
console.log(effectNodes)
// console.log(effectNodes)
if (effectNodes.length > 0) {
// debugger
const newNodes = getNodes().map((node) => {

View File

@ -336,6 +336,84 @@ export const updateNodeVars = (oldNode: Node, oldVarSelector: ValueSelector, new
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

View File

@ -182,6 +182,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
const [selectedDatasets, setSelectedDatasets] = useState<DataSet[]>([])
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 } })
@ -196,7 +197,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
}, [])
useEffect(() => {
let query_variable_selector: ValueSelector = []
let query_variable_selector: ValueSelector = inputs.query_variable_selector
if (isChatMode && inputs.query_variable_selector.length === 0 && startNodeId)
query_variable_selector = [startNodeId, 'sys.query']