diff --git a/packages/components/nodes/chains/ConversationChain/ConversationChain.ts b/packages/components/nodes/chains/ConversationChain/ConversationChain.ts index f0d3de7aa55..7a0459328bd 100644 --- a/packages/components/nodes/chains/ConversationChain/ConversationChain.ts +++ b/packages/components/nodes/chains/ConversationChain/ConversationChain.ts @@ -24,7 +24,8 @@ import { INodeData, INodeParams, MessageContentImageUrl, - IServerSideEventStreamer + IServerSideEventStreamer, + IMessage } from '../../../src/Interface' import { ConsoleCallbackHandler, CustomChainHandler, additionalCallbacks } from '../../../src/handler' import { getBaseClasses, handleEscapeCharacters, transformBracesWithColon } from '../../../src/utils' @@ -260,8 +261,14 @@ const prepareChain = async (nodeData: INodeData, options: ICommonObject, session const conversationChain = RunnableSequence.from([ { [inputKey]: (input: { input: string }) => input.input, - [memoryKey]: async () => { - const history = await memory.getChatMessages(sessionId, true, prependMessages) + [memoryKey]: async (input: { input: string }) => { + const currentMessages = [ + { + message: input.input, + type: 'userMessage' + } + ] as IMessage[] + const history = await memory.getChatMessages(sessionId, true, prependMessages, currentMessages) return history }, ...promptVariables diff --git a/packages/components/nodes/memory/Mem0/Mem0.ts b/packages/components/nodes/memory/Mem0/Mem0.ts index ba7960163dc..4f425dabaff 100644 --- a/packages/components/nodes/memory/Mem0/Mem0.ts +++ b/packages/components/nodes/memory/Mem0/Mem0.ts @@ -290,7 +290,8 @@ class Mem0MemoryExtended extends BaseMem0Memory implements MemoryMethods { async getChatMessages( overrideUserId = '', returnBaseMessages = false, - prependMessages?: IMessage[] + prependMessages?: IMessage[], + currentMessages?: IMessage[] ): Promise { const flowiseSessionId = overrideUserId if (!flowiseSessionId) { @@ -322,7 +323,12 @@ class Mem0MemoryExtended extends BaseMem0Memory implements MemoryMethods { } if (returnBaseMessages) { - const memoryVariables = await this.loadMemoryVariables({}, overrideUserId) + const memoryVariables = await this.loadMemoryVariables( + { + [this.inputKey]: currentMessages?.[0]?.message ?? '' + }, + overrideUserId + ) const mem0History = memoryVariables[this.memoryKey] if (mem0History && typeof mem0History === 'string') { diff --git a/packages/components/src/Interface.ts b/packages/components/src/Interface.ts index 194e83582f7..9c0317e25a9 100644 --- a/packages/components/src/Interface.ts +++ b/packages/components/src/Interface.ts @@ -347,7 +347,8 @@ export abstract class FlowiseMemory extends BufferMemory implements MemoryMethod abstract getChatMessages( overrideSessionId?: string, returnBaseMessages?: boolean, - prependMessages?: IMessage[] + prependMessages?: IMessage[], + currentMessages?: IMessage[] ): Promise abstract addChatMessages(msgArray: { text: string; type: MessageType }[], overrideSessionId?: string): Promise abstract clearChatMessages(overrideSessionId?: string): Promise