From 7e9375ce7e3e6847a65bb0466cec36c335642ee6 Mon Sep 17 00:00:00 2001 From: zxhlyh Date: Tue, 23 Sep 2025 10:45:05 +0800 Subject: [PATCH] fix --- .../llm/components/memory-system/hooks.ts | 25 ++++++++++--------- .../llm/components/memory-system/index.tsx | 5 ++-- .../memory-system/memory-selector.tsx | 7 +++--- .../components/workflow/nodes/llm/panel.tsx | 9 ++++--- web/app/components/workflow/types.ts | 8 +++++- 5 files changed, 33 insertions(+), 21 deletions(-) diff --git a/web/app/components/workflow/nodes/llm/components/memory-system/hooks.ts b/web/app/components/workflow/nodes/llm/components/memory-system/hooks.ts index afd242da3d..000749cfa0 100644 --- a/web/app/components/workflow/nodes/llm/components/memory-system/hooks.ts +++ b/web/app/components/workflow/nodes/llm/components/memory-system/hooks.ts @@ -9,6 +9,7 @@ import { MEMORY_DEFAULT, } from './linear-memory' import type { Memory } from '@/app/components/workflow/types' +import { MemoryMode } from '@/app/components/workflow/types' export const useMemory = ( id: string, @@ -31,7 +32,7 @@ export const useMemory = ( const nodeData = getNodeData() const { memory: memoryData = {} } = nodeData as any - if (value === 'disabled') { + if (value === MemoryMode.disabled) { setCollapsed(true) handleNodeDataUpdate({ memory: { @@ -41,25 +42,25 @@ export const useMemory = ( }, }) } - if (value === 'linear') { + if (value === MemoryMode.linear) { setCollapsed(false) handleNodeDataUpdate({ memory: { ...memoryData, enabled: true, - mode: 'linear', + mode: MemoryMode.linear, window: memoryData?.window || MEMORY_DEFAULT.window, query_prompt_template: memoryData?.query_prompt_template || MEMORY_DEFAULT.query_prompt_template, }, }) } - if (value === 'block') { + if (value === MemoryMode.block) { setCollapsed(false) handleNodeDataUpdate({ memory: { ...memoryData, enabled: true, - mode: 'block', + mode: MemoryMode.block, block_id: memoryData?.block_id || [], query_prompt_template: memoryData?.query_prompt_template || MEMORY_DEFAULT.query_prompt_template, }, @@ -75,19 +76,19 @@ export const useMemory = ( const memoryType = useMemo(() => { if (!memory) - return 'disabled' + return MemoryMode.disabled if (!('enabled' in memory)) - return 'linear' + return MemoryMode.linear if (memory.enabled) { - if (memory.mode === 'linear') - return 'linear' - if (memory.mode === 'block') - return 'block' + if (memory.mode === MemoryMode.linear) + return MemoryMode.linear + if (memory.mode === MemoryMode.block) + return MemoryMode.block } else { - return 'disabled' + return MemoryMode.disabled } }, [memory]) diff --git a/web/app/components/workflow/nodes/llm/components/memory-system/index.tsx b/web/app/components/workflow/nodes/llm/components/memory-system/index.tsx index fc163b393b..180a491f75 100644 --- a/web/app/components/workflow/nodes/llm/components/memory-system/index.tsx +++ b/web/app/components/workflow/nodes/llm/components/memory-system/index.tsx @@ -15,6 +15,7 @@ import type { Memory } from '@/app/components/workflow/types' import type { LLMNodeType } from '../../types' import { useMemory } from './hooks' import Split from '@/app/components/workflow/nodes/_base/components/split' +import { MemoryMode } from '@/app/components/workflow/types' type MemoryProps = Pick & { readonly?: boolean @@ -58,7 +59,7 @@ const MemorySystem = ({ /> {collapseIcon} { - memoryType === 'block' && ( + memoryType === MemoryMode.block && ( <>
e.stopPropagation()}> @@ -78,7 +79,7 @@ const MemorySystem = ({ > <> { - memoryType === 'linear' && !collapsed && ( + memoryType === MemoryMode.linear && !collapsed && ( > = ({ handleReasoningFormatChange, memoryVarSortFn, } = useConfig(id, data) + const { memoryType } = useMemory(id, data) const model = inputs.model @@ -177,7 +180,7 @@ const Panel: FC> = ({ )} {/* Memory put place examples. */} - {isChatMode && isChatModel && !!inputs.memory?.enabled && ( + {isChatMode && isChatModel && (memoryType === MemoryMode.linear || memoryType === MemoryMode.block) && (
@@ -201,7 +204,7 @@ const Panel: FC> = ({ triggerClassName='w-4 h-4' />
} - value={inputs.memory.query_prompt_template || '{{#sys.query#}}'} + value={inputs.memory?.query_prompt_template || '{{#sys.query#}}'} onChange={handleSyeQueryChange} readOnly={readOnly} isShowContext={false} @@ -214,7 +217,7 @@ const Panel: FC> = ({ instanceId={`${id}-chat-workflow-llm-prompt-editor-user`} /> - {inputs.memory.query_prompt_template && !inputs.memory.query_prompt_template.includes('{{#sys.query#}}') && ( + {inputs.memory?.query_prompt_template && !inputs.memory.query_prompt_template.includes('{{#sys.query#}}') && (
{t(`${i18nPrefix}.sysQueryInUser`)}
)}
diff --git a/web/app/components/workflow/types.ts b/web/app/components/workflow/types.ts index 225793b2f7..555731a9c1 100644 --- a/web/app/components/workflow/types.ts +++ b/web/app/components/workflow/types.ts @@ -273,6 +273,12 @@ export type RolePrefix = { assistant: string } +export enum MemoryMode { + linear = 'linear', + block = 'block', + disabled = 'disabled', +} + export type Memory = { enabled?: boolean role_prefix?: RolePrefix @@ -282,7 +288,7 @@ export type Memory = { } query_prompt_template: string block_id?: string[] - mode?: 'linear' | 'block' + mode?: MemoryMode } export enum VarType {