parent
7d88183eca
commit
a6a0398074
|
|
@ -118,14 +118,16 @@ class BufferWindowMemoryExtended extends FlowiseWindowMemory implements MemoryMe
|
|||
sessionId: id,
|
||||
chatflowid: this.chatflowid
|
||||
},
|
||||
take: this.k + 1,
|
||||
order: {
|
||||
createdDate: 'DESC' // we get the latest top K
|
||||
createdDate: 'ASC'
|
||||
}
|
||||
})
|
||||
|
||||
// reverse the order of human and ai messages
|
||||
if (chatMessage.length) chatMessage.reverse()
|
||||
if (this.k <= 0) {
|
||||
chatMessage = []
|
||||
} else {
|
||||
chatMessage = chatMessage.slice(-this.k * 2)
|
||||
}
|
||||
|
||||
if (prependMessages?.length) {
|
||||
chatMessage.unshift(...prependMessages)
|
||||
|
|
|
|||
|
|
@ -10,9 +10,10 @@ import {
|
|||
} from '../../../src/Interface'
|
||||
import { getBaseClasses, mapChatMessageToBaseMessage } from '../../../src/utils'
|
||||
import { BaseLanguageModel } from '@langchain/core/language_models/base'
|
||||
import { BaseMessage, getBufferString } from '@langchain/core/messages'
|
||||
import { BaseMessage, getBufferString, HumanMessage } from '@langchain/core/messages'
|
||||
import { ConversationSummaryBufferMemory, ConversationSummaryBufferMemoryInput } from 'langchain/memory'
|
||||
import { DataSource } from 'typeorm'
|
||||
import { ChatAnthropic } from '../../chatmodels/ChatAnthropic/FlowiseChatAnthropic'
|
||||
|
||||
class ConversationSummaryBufferMemory_Memory implements INode {
|
||||
label: string
|
||||
|
|
@ -163,7 +164,12 @@ class ConversationSummaryBufferMemoryExtended extends FlowiseSummaryBufferMemory
|
|||
// ----------- Finished Pruning ---------------
|
||||
|
||||
if (this.movingSummaryBuffer) {
|
||||
baseMessages = [new this.summaryChatMessageClass(this.movingSummaryBuffer), ...baseMessages]
|
||||
// Anthropic doesn't support multiple system messages
|
||||
if (this.llm instanceof ChatAnthropic) {
|
||||
baseMessages = [new HumanMessage(`Below is the summarized conversation:\n\n${this.movingSummaryBuffer}`), ...baseMessages]
|
||||
} else {
|
||||
baseMessages = [new this.summaryChatMessageClass(this.movingSummaryBuffer), ...baseMessages]
|
||||
}
|
||||
}
|
||||
|
||||
if (returnBaseMessages) {
|
||||
|
|
|
|||
|
|
@ -10,9 +10,10 @@ import {
|
|||
} from '../../../src/Interface'
|
||||
import { getBaseClasses, mapChatMessageToBaseMessage } from '../../../src/utils'
|
||||
import { BaseLanguageModel } from '@langchain/core/language_models/base'
|
||||
import { BaseMessage, SystemMessage } from '@langchain/core/messages'
|
||||
import { BaseMessage, HumanMessage, SystemMessage } from '@langchain/core/messages'
|
||||
import { ConversationSummaryMemory, ConversationSummaryMemoryInput } from 'langchain/memory'
|
||||
import { DataSource } from 'typeorm'
|
||||
import { ChatAnthropic } from '../../chatmodels/ChatAnthropic/FlowiseChatAnthropic'
|
||||
|
||||
class ConversationSummaryMemory_Memory implements INode {
|
||||
label: string
|
||||
|
|
@ -135,7 +136,12 @@ class ConversationSummaryMemoryExtended extends FlowiseSummaryMemory implements
|
|||
}
|
||||
|
||||
if (returnBaseMessages) {
|
||||
return [new SystemMessage(this.buffer)]
|
||||
// Anthropic doesn't support multiple system messages
|
||||
if (this.llm instanceof ChatAnthropic) {
|
||||
return [new HumanMessage(`Below is the summarized conversation:\n\n${this.buffer}`)]
|
||||
} else {
|
||||
return [new SystemMessage(this.buffer)]
|
||||
}
|
||||
}
|
||||
|
||||
if (this.buffer) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue