mirror of https://github.com/langgenius/dify.git
chore: move node run data to node hooks
This commit is contained in:
parent
9693d014ba
commit
55b5d76e0b
|
|
@ -2,14 +2,14 @@ import { useState } from 'react'
|
|||
import { useWorkflow } from '@/app/components/workflow/hooks'
|
||||
import type { CommonNodeType, InputVar, Variable } from '@/app/components/workflow/types'
|
||||
import { InputVarType } from '@/app/components/workflow/types'
|
||||
import { RETRIEVAL_OUTPUT_STRUCT } from '@/app/components/workflow/constants'
|
||||
|
||||
type Params<T> = {
|
||||
id: string
|
||||
data: CommonNodeType<T>
|
||||
defaultRunInputData: Record<string, any>
|
||||
}
|
||||
|
||||
const useOneStepRun = <T>({ id, data }: Params<T>) => {
|
||||
const useOneStepRun = <T>({ id, data, defaultRunInputData }: Params<T>) => {
|
||||
const { handleNodeDataUpdate } = useWorkflow()
|
||||
const isShowSingleRun = data._isSingleRun
|
||||
const hideSingleRun = () => {
|
||||
|
|
@ -24,15 +24,8 @@ const useOneStepRun = <T>({ id, data }: Params<T>) => {
|
|||
|
||||
const [runningStatus, setRunningStatus] = useState('un started')
|
||||
|
||||
// TODO: test
|
||||
const [inputVarValues, setInputVarValues] = useState<Record<string, any>>({
|
||||
name: 'Joel',
|
||||
age: '18',
|
||||
})
|
||||
|
||||
const [visionFiles, setVisionFiles] = useState<any[]>([])
|
||||
|
||||
const [contexts, setContexts] = useState<string[]>([RETRIEVAL_OUTPUT_STRUCT])
|
||||
// TODO: store to node
|
||||
const [runInputData, setRunInputData] = useState<Record<string, any>>(defaultRunInputData || {})
|
||||
|
||||
const toVarInputs = (variables: Variable[]): InputVar[] => {
|
||||
if (!variables)
|
||||
|
|
@ -58,12 +51,8 @@ const useOneStepRun = <T>({ id, data }: Params<T>) => {
|
|||
toVarInputs,
|
||||
runningStatus,
|
||||
setRunningStatus,
|
||||
inputVarValues,
|
||||
setInputVarValues,
|
||||
visionFiles,
|
||||
setVisionFiles,
|
||||
contexts,
|
||||
setContexts,
|
||||
runInputData,
|
||||
setRunInputData,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import { ModelFeatureEnum } from '@/app/components/header/account-setting/model-
|
|||
import useNodeCrud from '@/app/components/workflow/nodes/_base/hooks/use-node-crud'
|
||||
import useOneStepRun from '@/app/components/workflow/nodes/_base/hooks/use-one-step-run'
|
||||
import type { PromptItem } from '@/models/debug'
|
||||
import { RETRIEVAL_OUTPUT_STRUCT } from '@/app/components/workflow/constants'
|
||||
|
||||
const useConfig = (id: string, payload: LLMNodeType) => {
|
||||
const { inputs, setInputs } = useNodeCrud<LLMNodeType>(id, payload)
|
||||
|
|
@ -95,18 +96,53 @@ const useConfig = (id: string, payload: LLMNodeType) => {
|
|||
toVarInputs,
|
||||
runningStatus,
|
||||
setRunningStatus,
|
||||
inputVarValues,
|
||||
setInputVarValues,
|
||||
visionFiles,
|
||||
setVisionFiles,
|
||||
contexts,
|
||||
setContexts,
|
||||
runInputData,
|
||||
setRunInputData,
|
||||
} = useOneStepRun<LLMNodeType>({
|
||||
id,
|
||||
data: inputs,
|
||||
defaultRunInputData: {
|
||||
'name': 'Joel',
|
||||
'age': '18',
|
||||
'#context#': [RETRIEVAL_OUTPUT_STRUCT],
|
||||
'#vision#': [],
|
||||
},
|
||||
})
|
||||
|
||||
console.log(contexts)
|
||||
const inputVarValues = (() => {
|
||||
const vars: Record<string, any> = {}
|
||||
Object.keys(runInputData)
|
||||
.filter(key => !['#context#', '#vision#'].includes(key))
|
||||
.forEach((key) => {
|
||||
vars[key] = runInputData[key]
|
||||
})
|
||||
return vars
|
||||
})()
|
||||
|
||||
const setInputVarValues = useCallback((newPayload: Record<string, any>) => {
|
||||
const newVars = {
|
||||
...newPayload,
|
||||
'#context#': runInputData['#context#'],
|
||||
'#vision#': runInputData['#vision#'],
|
||||
}
|
||||
setRunInputData(newVars)
|
||||
}, [runInputData, setRunInputData])
|
||||
|
||||
const contexts = runInputData['#context#']
|
||||
const setContexts = useCallback((newContexts: string[]) => {
|
||||
setRunInputData({
|
||||
...runInputData,
|
||||
'#context#': newContexts,
|
||||
})
|
||||
}, [runInputData, setRunInputData])
|
||||
|
||||
const visionFiles = runInputData['#vision']
|
||||
const setVisionFiles = useCallback((newFiles: any[]) => {
|
||||
setRunInputData({
|
||||
...runInputData,
|
||||
'#vision#': newFiles,
|
||||
})
|
||||
}, [runInputData, setRunInputData])
|
||||
|
||||
const varInputs = toVarInputs(inputs.variables)
|
||||
const handleRun = () => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue