|
@@ -7,11 +7,13 @@ import {
|
|
|
useWorkflow,
|
|
|
} from '../../hooks'
|
|
|
import { useStore } from '../../store'
|
|
|
+import useAvailableVarList from '../_base/hooks/use-available-var-list'
|
|
|
import type { QuestionClassifierNodeType } from './types'
|
|
|
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 { useModelListAndDefaultModelAndCurrentProviderAndModel } from '@/app/components/header/account-setting/model-provider-page/hooks'
|
|
|
import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations'
|
|
|
+import { checkHasQueryBlock } from '@/app/components/base/prompt-editor/constants'
|
|
|
|
|
|
const useConfig = (id: string, payload: QuestionClassifierNodeType) => {
|
|
|
const { nodesReadOnly: readOnly } = useNodesReadOnly()
|
|
@@ -67,7 +69,6 @@ const useConfig = (id: string, payload: QuestionClassifierNodeType) => {
|
|
|
draft.query_variable_selector = newVar as ValueSelector
|
|
|
})
|
|
|
setInputs(newInputs)
|
|
|
- // console.log(newInputs.query_variable_selector)
|
|
|
}, [inputs, setInputs])
|
|
|
|
|
|
useEffect(() => {
|
|
@@ -93,6 +94,24 @@ const useConfig = (id: string, payload: QuestionClassifierNodeType) => {
|
|
|
setInputs(newInputs)
|
|
|
}, [inputs, setInputs])
|
|
|
|
|
|
+ const filterInputVar = useCallback((varPayload: Var) => {
|
|
|
+ return [VarType.number, VarType.string].includes(varPayload.type)
|
|
|
+ }, [])
|
|
|
+
|
|
|
+ const {
|
|
|
+ availableVars,
|
|
|
+ availableNodesWithParent,
|
|
|
+ } = useAvailableVarList(id, {
|
|
|
+ onlyLeafNodeVar: false,
|
|
|
+ filterVar: filterInputVar,
|
|
|
+ })
|
|
|
+
|
|
|
+ const hasSetBlockStatus = {
|
|
|
+ history: false,
|
|
|
+ query: isChatMode ? checkHasQueryBlock(inputs.instruction) : false,
|
|
|
+ context: false,
|
|
|
+ }
|
|
|
+
|
|
|
const handleInstructionChange = useCallback((instruction: string) => {
|
|
|
const newInputs = produce(inputs, (draft) => {
|
|
|
draft.instruction = instruction
|
|
@@ -111,6 +130,7 @@ const useConfig = (id: string, payload: QuestionClassifierNodeType) => {
|
|
|
const {
|
|
|
isShowSingleRun,
|
|
|
hideSingleRun,
|
|
|
+ getInputVars,
|
|
|
runningStatus,
|
|
|
handleRun,
|
|
|
handleStop,
|
|
@@ -133,6 +153,22 @@ const useConfig = (id: string, payload: QuestionClassifierNodeType) => {
|
|
|
})
|
|
|
}, [runInputData, setRunInputData])
|
|
|
|
|
|
+ const varInputs = getInputVars([inputs.instruction])
|
|
|
+ const inputVarValues = (() => {
|
|
|
+ const vars: Record<string, any> = {
|
|
|
+ query,
|
|
|
+ }
|
|
|
+ Object.keys(runInputData)
|
|
|
+ .forEach((key) => {
|
|
|
+ vars[key] = runInputData[key]
|
|
|
+ })
|
|
|
+ return vars
|
|
|
+ })()
|
|
|
+
|
|
|
+ const setInputVarValues = useCallback((newPayload: Record<string, any>) => {
|
|
|
+ setRunInputData(newPayload)
|
|
|
+ }, [setRunInputData])
|
|
|
+
|
|
|
const filterVar = useCallback((varPayload: Var) => {
|
|
|
return varPayload.type === VarType.string
|
|
|
}, [])
|
|
@@ -147,7 +183,13 @@ const useConfig = (id: string, payload: QuestionClassifierNodeType) => {
|
|
|
handleQueryVarChange,
|
|
|
filterVar,
|
|
|
handleTopicsChange: handleClassesChange,
|
|
|
+ hasSetBlockStatus,
|
|
|
+ availableVars,
|
|
|
+ availableNodesWithParent,
|
|
|
handleInstructionChange,
|
|
|
+ varInputs,
|
|
|
+ inputVarValues,
|
|
|
+ setInputVarValues,
|
|
|
handleMemoryChange,
|
|
|
isShowSingleRun,
|
|
|
hideSingleRun,
|