Merge pull request #1131 from FlowiseAI/bugfix/RedisBackedChatMessage

Bugfix/Fix RedisChat SessionId
This commit is contained in:
Henry Heng
2023-10-25 17:53:50 +01:00
committed by GitHub
@@ -119,27 +119,26 @@ const initalizeRedis = async (nodeData: INodeData, options: ICommonObject): Prom
const redisChatMessageHistory = new RedisChatMessageHistory(obj) const redisChatMessageHistory = new RedisChatMessageHistory(obj)
redisChatMessageHistory.getMessages = async (): Promise<BaseMessage[]> => { redisChatMessageHistory.getMessages = async (): Promise<BaseMessage[]> => {
const rawStoredMessages = await client.lrange(sessionId ? sessionId : chatId, 0, -1) const rawStoredMessages = await client.lrange((redisChatMessageHistory as any).sessionId, 0, -1)
const orderedMessages = rawStoredMessages.reverse().map((message) => JSON.parse(message)) const orderedMessages = rawStoredMessages.reverse().map((message) => JSON.parse(message))
return orderedMessages.map(mapStoredMessageToChatMessage) return orderedMessages.map(mapStoredMessageToChatMessage)
} }
redisChatMessageHistory.addMessage = async (message: BaseMessage): Promise<void> => { redisChatMessageHistory.addMessage = async (message: BaseMessage): Promise<void> => {
const messageToAdd = [message].map((msg) => msg.toDict()) const messageToAdd = [message].map((msg) => msg.toDict())
await client.lpush(sessionId ? sessionId : chatId, JSON.stringify(messageToAdd[0])) await client.lpush((redisChatMessageHistory as any).sessionId, JSON.stringify(messageToAdd[0]))
if (sessionTTL) { if (sessionTTL) {
await client.expire(sessionId ? sessionId : chatId, sessionTTL) await client.expire((redisChatMessageHistory as any).sessionId, sessionTTL)
} }
} }
redisChatMessageHistory.clear = async (): Promise<void> => { redisChatMessageHistory.clear = async (): Promise<void> => {
await client.del(sessionId ? sessionId : chatId) await client.del((redisChatMessageHistory as any).sessionId)
} }
const memory = new BufferMemoryExtended({ const memory = new BufferMemoryExtended({
memoryKey, memoryKey,
chatHistory: redisChatMessageHistory, chatHistory: redisChatMessageHistory,
returnMessages: true,
isSessionIdUsingChatMessageId isSessionIdUsingChatMessageId
}) })
return memory return memory