From 8e1f8a0c4897067c2f7ba7dcd8a1bbd841c326a1 Mon Sep 17 00:00:00 2001 From: balibabu Date: Fri, 27 Jun 2025 18:53:13 +0800 Subject: [PATCH] Feat: Fixed the issue where the begin operator parameters could not be submitted during debugging #3221 (#8539) ### What problem does this PR solve? Feat: Fixed the issue where the begin operator parameters could not be submitted during debugging #3221 ### Type of change - [x] New Feature (non-breaking change which adds functionality) --- web/src/hooks/use-send-message.ts | 1 + web/src/pages/agent/chat/hooks.ts | 2 - web/src/pages/agent/constant.tsx | 1 + web/src/pages/agent/debug-content/index.tsx | 1 - .../agent/form/components/query-variable.tsx | 6 +- web/src/pages/agent/run-sheet/index.tsx | 58 ++++++++++++------- 6 files changed, 44 insertions(+), 25 deletions(-) diff --git a/web/src/hooks/use-send-message.ts b/web/src/hooks/use-send-message.ts index 0253f29bf..7fdf1e21b 100644 --- a/web/src/hooks/use-send-message.ts +++ b/web/src/hooks/use-send-message.ts @@ -11,6 +11,7 @@ export enum MessageEventType { Message = 'message', MessageEnd = 'message_end', WorkflowFinished = 'workflow_finished', + UserInputs = 'user_inputs', } export interface IAnswerEvent { diff --git a/web/src/pages/agent/chat/hooks.ts b/web/src/pages/agent/chat/hooks.ts index d9e220cc0..bff0f4720 100644 --- a/web/src/pages/agent/chat/hooks.ts +++ b/web/src/pages/agent/chat/hooks.ts @@ -83,8 +83,6 @@ export const useSendNextMessage = () => { loading, derivedMessages, ref, - addNewestQuestion, - addNewestAnswer, removeLatestMessage, removeMessageById, addNewestOneQuestion, diff --git a/web/src/pages/agent/constant.tsx b/web/src/pages/agent/constant.tsx index 3697f9188..7fe79978b 100644 --- a/web/src/pages/agent/constant.tsx +++ b/web/src/pages/agent/constant.tsx @@ -852,6 +852,7 @@ export const RestrictedUpstreamMap = { [Operator.Agent]: [Operator.Begin], [Operator.TavilySearch]: [Operator.Begin], [Operator.StringTransform]: [Operator.Begin], + [Operator.UserFillUp]: [Operator.Begin], }; export const NodeMap = { diff --git a/web/src/pages/agent/debug-content/index.tsx b/web/src/pages/agent/debug-content/index.tsx index 377c53e04..2c71d8ea1 100644 --- a/web/src/pages/agent/debug-content/index.tsx +++ b/web/src/pages/agent/debug-content/index.tsx @@ -263,7 +263,6 @@ const DebugContent = ({ const onSubmit = useCallback( (values: z.infer) => { console.log('🚀 ~ values:', values); - return values; const nextValues = Object.entries(values).map(([key, value]) => { const item = parameters[Number(key)]; let nextValue = value; diff --git a/web/src/pages/agent/form/components/query-variable.tsx b/web/src/pages/agent/form/components/query-variable.tsx index 9b33a87ae..fc13d3f22 100644 --- a/web/src/pages/agent/form/components/query-variable.tsx +++ b/web/src/pages/agent/form/components/query-variable.tsx @@ -6,6 +6,7 @@ import { FormLabel, FormMessage, } from '@/components/ui/form'; +import { toLower } from 'lodash'; import { ReactNode, useMemo } from 'react'; import { useFormContext } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; @@ -31,7 +32,10 @@ export function QueryVariable({ const finalOptions = useMemo(() => { return type ? nextOptions.map((x) => { - return { ...x, options: x.options.filter((y) => y.type === type) }; + return { + ...x, + options: x.options.filter((y) => toLower(y.type).startsWith(type)), + }; }) : nextOptions; }, [nextOptions, type]); diff --git a/web/src/pages/agent/run-sheet/index.tsx b/web/src/pages/agent/run-sheet/index.tsx index 26adedda1..072b45107 100644 --- a/web/src/pages/agent/run-sheet/index.tsx +++ b/web/src/pages/agent/run-sheet/index.tsx @@ -1,5 +1,11 @@ +import { + Sheet, + SheetContent, + SheetHeader, + SheetTitle, +} from '@/components/ui/sheet'; import { IModalProps } from '@/interfaces/common'; -import { Drawer } from 'antd'; +import { cn } from '@/lib/utils'; import { useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { BeginId } from '../constant'; @@ -8,14 +14,13 @@ import { useGetBeginNodeDataQuery } from '../hooks/use-get-begin-query'; import { useSaveGraphBeforeOpeningDebugDrawer } from '../hooks/use-save-graph'; import { BeginQuery } from '../interface'; import useGraphStore from '../store'; -import { getDrawerWidth } from '../utils'; const RunSheet = ({ hideModal, showModal: showChatModal, }: IModalProps) => { const { t } = useTranslation(); - const updateNodeForm = useGraphStore((state) => state.updateNodeForm); + const { updateNodeForm, getNode } = useGraphStore((state) => state); const getBeginNodeDataQuery = useGetBeginNodeDataQuery(); const query: BeginQuery[] = getBeginNodeDataQuery(); @@ -25,12 +30,26 @@ const RunSheet = ({ ); const handleRunAgent = useCallback( - (nextValues: Record) => { - const currentNodes = updateNodeForm(BeginId, nextValues, ['query']); + (nextValues: BeginQuery[]) => { + const beginNode = getNode(BeginId); + const inputs: Record = beginNode?.data.form.inputs; + + const nextInputs = Object.keys(inputs).reduce>( + (pre, key) => { + const item = nextValues.find((x) => x.key === key); + if (item) { + pre[key] = { ...item }; + } + return pre; + }, + {}, + ); + + const currentNodes = updateNodeForm(BeginId, nextInputs, ['inputs']); handleRun(currentNodes); hideModal?.(); }, - [handleRun, hideModal, updateNodeForm], + [getNode, handleRun, hideModal, updateNodeForm], ); const onOk = useCallback( @@ -41,21 +60,18 @@ const RunSheet = ({ ); return ( - - - + + + + {t('flow.testRun')} + + + + ); };