diff --git a/web/src/hooks/logic-hooks.ts b/web/src/hooks/logic-hooks.ts index bbf1b244b9..7c9da6d2c5 100644 --- a/web/src/hooks/logic-hooks.ts +++ b/web/src/hooks/logic-hooks.ts @@ -705,6 +705,12 @@ export const useSelectDerivedMessages = () => { const addPrologue = useCallback((prologue: string) => { setDerivedMessages((pre) => { + // The prologue is the conversation opener. Once the user has said + // something, the first message is real history — never overwrite or + // retro-inject the prologue into it. + if (pre.some((x) => x.role === MessageType.User)) { + return pre; + } if (pre.length > 0) { return [ { diff --git a/web/src/pages/agent/form/begin-form/index.tsx b/web/src/pages/agent/form/begin-form/index.tsx index 3d6ed2ea5b..7895bb2d5f 100644 --- a/web/src/pages/agent/form/begin-form/index.tsx +++ b/web/src/pages/agent/form/begin-form/index.tsx @@ -1,16 +1,10 @@ import { Collapse } from '@/components/collapse'; import { LayoutRecognizeFormField } from '@/components/layout-recognize-form-field'; +import { RAGFlowFormItem } from '@/components/ragflow-form'; +import { SwitchFormField } from '@/components/switch-fom-field'; import { Button } from '@/components/ui/button'; -import { - Form, - FormControl, - FormField, - FormItem, - FormLabel, - FormMessage, -} from '@/components/ui/form'; +import { Form, FormField } from '@/components/ui/form'; import { RAGFlowSelect } from '@/components/ui/select'; -import { Switch } from '@/components/ui/switch'; import { Textarea } from '@/components/ui/textarea'; import { FormTooltip } from '@/components/ui/tooltip'; import { zodResolver } from '@hookform/resolvers/zod'; @@ -101,70 +95,42 @@ function BeginForm({ node }: INextOperatorForm) { return (
- ( - - - {t('flow.mode')} - - - { - handleModeChange(val); - field.onChange(val); - }} - > - - - + + {(field) => ( + { + handleModeChange(val); + field.onChange(val); + }} + > )} - /> + {mode === AgentDialogueMode.Conversational && ( - ( - - - {t('flow.openingSwitch')} - - - - - - - )} + )} {mode === AgentDialogueMode.Conversational && enablePrologue && ( - ( - - - {t('flow.openingCopy')} - - - - - - - )} - /> + + + )} {mode === AgentDialogueMode.Webhook && } {mode !== AgentDialogueMode.Webhook && (