diff --git a/packages/components/nodes/memory/ConversationSummaryMemory/ConversationSummaryMemory.ts b/packages/components/nodes/memory/ConversationSummaryMemory/ConversationSummaryMemory.ts new file mode 100644 index 00000000000..3c055e8e76f --- /dev/null +++ b/packages/components/nodes/memory/ConversationSummaryMemory/ConversationSummaryMemory.ts @@ -0,0 +1,61 @@ +import { INode, INodeData, INodeParams } from '../../../src/Interface' +import { getBaseClasses } from '../../../src/utils' +import { ConversationSummaryMemory, ConversationSummaryMemoryInput } from 'langchain/memory' +import { BaseLanguageModel } from 'langchain/base_language' + +class ConversationSummaryMemory_Memory implements INode { + label: string + name: string + description: string + type: string + icon: string + category: string + baseClasses: string[] + inputs: INodeParams[] + + constructor() { + this.label = 'Conversation Summary Memory' + this.name = 'conversationSummaryMemory' + this.type = 'ConversationSummaryMemory' + this.icon = 'memory.svg' + this.category = 'Memory' + this.description = 'Summarizes the conversation and stores the current summary in memory' + this.baseClasses = [this.type, ...getBaseClasses(ConversationSummaryMemory)] + this.inputs = [ + { + label: 'Chat Model', + name: 'model', + type: 'BaseChatModel' + }, + { + label: 'Memory Key', + name: 'memoryKey', + type: 'string', + default: 'chat_history' + }, + { + label: 'Input Key', + name: 'inputKey', + type: 'string', + default: 'input' + } + ] + } + + async init(nodeData: INodeData): Promise { + const model = nodeData.inputs?.model as BaseLanguageModel + const memoryKey = nodeData.inputs?.memoryKey as string + const inputKey = nodeData.inputs?.inputKey as string + + const obj: ConversationSummaryMemoryInput = { + llm: model, + returnMessages: true, + memoryKey, + inputKey + } + + return new ConversationSummaryMemory(obj) + } +} + +module.exports = { nodeClass: ConversationSummaryMemory_Memory } diff --git a/packages/components/nodes/memory/ConversationSummaryMemory/memory.svg b/packages/components/nodes/memory/ConversationSummaryMemory/memory.svg new file mode 100644 index 00000000000..ca8e17da1c8 --- /dev/null +++ b/packages/components/nodes/memory/ConversationSummaryMemory/memory.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file