Commit 49ce9d22 authored by Joel's avatar Joel

feat: http support debug and remove mock init debug data

parent c20c9b53
...@@ -42,7 +42,7 @@ const FormItem: FC<Props> = ({ ...@@ -42,7 +42,7 @@ const FormItem: FC<Props> = ({
}, [value, onChange]) }, [value, onChange])
return ( return (
<div className='flex justify-between items-start'> <div className='flex justify-between items-start'>
{type !== InputVarType.contexts && <div className='shrink-0 w-[96px] pr-1 h-8 leading-8 text-[13px] font-medium text-gray-700 capitalize truncate'>{payload.label}</div>} {type !== InputVarType.contexts && <div className='shrink-0 w-[96px] pr-1 h-8 leading-8 text-[13px] font-medium text-gray-700 truncate'>{payload.label}</div>}
<div className='w-0 grow'> <div className='w-0 grow'>
{ {
type === InputVarType.textInput && ( type === InputVarType.textInput && (
......
...@@ -7,10 +7,11 @@ type Params<T> = { ...@@ -7,10 +7,11 @@ type Params<T> = {
id: string id: string
data: CommonNodeType<T> data: CommonNodeType<T>
defaultRunInputData: Record<string, any> defaultRunInputData: Record<string, any>
isInvalid?: () => boolean
} }
const useOneStepRun = <T>({ id, data, defaultRunInputData }: Params<T>) => { const useOneStepRun = <T>({ id, data, defaultRunInputData, isInvalid = () => true }: Params<T>) => {
const { handleNodeDataUpdate } = useWorkflow() const { handleNodeDataUpdate }: { handleNodeDataUpdate: (data: any) => void } = useWorkflow()
const isShowSingleRun = data._isSingleRun const isShowSingleRun = data._isSingleRun
const hideSingleRun = () => { const hideSingleRun = () => {
handleNodeDataUpdate({ handleNodeDataUpdate({
...@@ -24,6 +25,9 @@ const useOneStepRun = <T>({ id, data, defaultRunInputData }: Params<T>) => { ...@@ -24,6 +25,9 @@ const useOneStepRun = <T>({ id, data, defaultRunInputData }: Params<T>) => {
const [runningStatus, setRunningStatus] = useState('un started') const [runningStatus, setRunningStatus] = useState('un started')
const handleRun = () => { const handleRun = () => {
if (isInvalid())
return
setRunningStatus('running') setRunningStatus('running')
} }
......
...@@ -45,10 +45,7 @@ const useConfig = (id: string, payload: CodeNodeType) => { ...@@ -45,10 +45,7 @@ const useConfig = (id: string, payload: CodeNodeType) => {
} = useOneStepRun<CodeNodeType>({ } = useOneStepRun<CodeNodeType>({
id, id,
data: inputs, data: inputs,
defaultRunInputData: { defaultRunInputData: {},
name: 'Joel',
age: '18',
},
}) })
const varInputs = toVarInputs(inputs.variables) const varInputs = toVarInputs(inputs.variables)
......
...@@ -14,6 +14,8 @@ import Split from '@/app/components/workflow/nodes/_base/components/split' ...@@ -14,6 +14,8 @@ import Split from '@/app/components/workflow/nodes/_base/components/split'
import OutputVars, { VarItem } from '@/app/components/workflow/nodes/_base/components/output-vars' import OutputVars, { VarItem } from '@/app/components/workflow/nodes/_base/components/output-vars'
import { Settings01 } from '@/app/components/base/icons/src/vender/line/general' import { Settings01 } from '@/app/components/base/icons/src/vender/line/general'
import type { NodePanelProps } from '@/app/components/workflow/types' import type { NodePanelProps } from '@/app/components/workflow/types'
import BeforeRunForm from '@/app/components/workflow/nodes/_base/components/before-run-form'
const i18nPrefix = 'workflow.nodes.http' const i18nPrefix = 'workflow.nodes.http'
const Panel: FC<NodePanelProps<HttpNodeType>> = ({ const Panel: FC<NodePanelProps<HttpNodeType>> = ({
...@@ -44,6 +46,15 @@ const Panel: FC<NodePanelProps<HttpNodeType>> = ({ ...@@ -44,6 +46,15 @@ const Panel: FC<NodePanelProps<HttpNodeType>> = ({
showAuthorization, showAuthorization,
hideAuthorization, hideAuthorization,
setAuthorization, setAuthorization,
// single run
isShowSingleRun,
hideSingleRun,
runningStatus,
handleRun,
handleStop,
varInputs,
inputVarValues,
setInputVarValues,
} = useConfig(id, data) } = useConfig(id, data)
return ( return (
...@@ -148,6 +159,22 @@ const Panel: FC<NodePanelProps<HttpNodeType>> = ({ ...@@ -148,6 +159,22 @@ const Panel: FC<NodePanelProps<HttpNodeType>> = ({
</> </>
</OutputVars> </OutputVars>
</div> </div>
{isShowSingleRun && (
<BeforeRunForm
nodeName={inputs.title}
onHide={hideSingleRun}
forms={[
{
inputs: varInputs,
values: inputVarValues,
onChange: setInputVarValues,
},
]}
runningStatus={runningStatus}
onRun={handleRun}
onStop={handleStop}
/>
)}
</div > </div >
) )
} }
......
...@@ -5,6 +5,7 @@ import useVarList from '../_base/hooks/use-var-list' ...@@ -5,6 +5,7 @@ import useVarList from '../_base/hooks/use-var-list'
import type { Authorization, Body, HttpNodeType, Method } from './types' import type { Authorization, Body, HttpNodeType, Method } from './types'
import useKeyValueList from './hooks/use-key-value-list' import useKeyValueList from './hooks/use-key-value-list'
import useNodeCrud from '@/app/components/workflow/nodes/_base/hooks/use-node-crud' 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'
const useConfig = (id: string, payload: HttpNodeType) => { const useConfig = (id: string, payload: HttpNodeType) => {
const { inputs, setInputs } = useNodeCrud<HttpNodeType>(id, payload) const { inputs, setInputs } = useNodeCrud<HttpNodeType>(id, payload)
...@@ -64,6 +65,36 @@ const useConfig = (id: string, payload: HttpNodeType) => { ...@@ -64,6 +65,36 @@ const useConfig = (id: string, payload: HttpNodeType) => {
setInputs(newInputs) setInputs(newInputs)
}, [inputs, setInputs]) }, [inputs, setInputs])
// single run
const {
isShowSingleRun,
hideSingleRun,
toVarInputs,
runningStatus,
handleRun,
handleStop,
runInputData,
setRunInputData,
} = useOneStepRun<HttpNodeType>({
id,
data: inputs,
defaultRunInputData: {},
})
const varInputs = toVarInputs(inputs.variables)
const inputVarValues = (() => {
const vars: Record<string, any> = {}
Object.keys(runInputData)
.forEach((key) => {
vars[key] = runInputData[key]
})
return vars
})()
const setInputVarValues = useCallback((newPayload: Record<string, any>) => {
setRunInputData(newPayload)
}, [runInputData, setRunInputData])
return { return {
inputs, inputs,
handleVarListChange, handleVarListChange,
...@@ -89,6 +120,15 @@ const useConfig = (id: string, payload: HttpNodeType) => { ...@@ -89,6 +120,15 @@ const useConfig = (id: string, payload: HttpNodeType) => {
showAuthorization, showAuthorization,
hideAuthorization, hideAuthorization,
setAuthorization, setAuthorization,
// single run
isShowSingleRun,
hideSingleRun,
runningStatus,
handleRun,
handleStop,
varInputs,
inputVarValues,
setInputVarValues,
} }
} }
......
...@@ -68,7 +68,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => { ...@@ -68,7 +68,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
id, id,
data: inputs, data: inputs,
defaultRunInputData: { defaultRunInputData: {
query: 'What is the capital of France?', query: '',
}, },
}) })
......
...@@ -103,8 +103,6 @@ const useConfig = (id: string, payload: LLMNodeType) => { ...@@ -103,8 +103,6 @@ const useConfig = (id: string, payload: LLMNodeType) => {
id, id,
data: inputs, data: inputs,
defaultRunInputData: { defaultRunInputData: {
'name': 'Joel',
'age': '18',
'#context#': [RETRIEVAL_OUTPUT_STRUCT], '#context#': [RETRIEVAL_OUTPUT_STRUCT],
'#vision#': [], '#vision#': [],
}, },
......
...@@ -66,7 +66,7 @@ const useConfig = (id: string, payload: QuestionClassifierNodeType) => { ...@@ -66,7 +66,7 @@ const useConfig = (id: string, payload: QuestionClassifierNodeType) => {
id, id,
data: inputs, data: inputs,
defaultRunInputData: { defaultRunInputData: {
query: 'Negative or positive sentiment?', query: '',
}, },
}) })
......
...@@ -32,10 +32,7 @@ const useConfig = (id: string, payload: TemplateTransformNodeType) => { ...@@ -32,10 +32,7 @@ const useConfig = (id: string, payload: TemplateTransformNodeType) => {
} = useOneStepRun<TemplateTransformNodeType>({ } = useOneStepRun<TemplateTransformNodeType>({
id, id,
data: inputs, data: inputs,
defaultRunInputData: { defaultRunInputData: {},
name: 'Joel',
age: '18',
},
}) })
const varInputs = toVarInputs(inputs.variables) const varInputs = toVarInputs(inputs.variables)
......
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