Commit 55b5d76e authored by Joel's avatar Joel

chore: move node run data to node hooks

parent 9693d014
......@@ -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 = () => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment