(
chatflowid: string,
sessionId: string,
memoryNode: IReactFlowNode,
componentNodes: IComponentNodes,
appDataSource: DataSource,
databaseEntities: IDatabaseEntity,
logger: any,
prependMessages?: IMessage[]
)
| 1867 | * @returns {IMessage[]} |
| 1868 | */ |
| 1869 | export const getSessionChatHistory = async ( |
| 1870 | chatflowid: string, |
| 1871 | sessionId: string, |
| 1872 | memoryNode: IReactFlowNode, |
| 1873 | componentNodes: IComponentNodes, |
| 1874 | appDataSource: DataSource, |
| 1875 | databaseEntities: IDatabaseEntity, |
| 1876 | logger: any, |
| 1877 | prependMessages?: IMessage[] |
| 1878 | ): Promise<IMessage[]> => { |
| 1879 | const nodeInstanceFilePath = componentNodes[memoryNode.data.name].filePath as string |
| 1880 | const nodeModule = await import(nodeInstanceFilePath) |
| 1881 | const newNodeInstance = new nodeModule.nodeClass() |
| 1882 | |
| 1883 | // Replace memory's sessionId/chatId |
| 1884 | if (memoryNode.data.inputs) { |
| 1885 | memoryNode.data.inputs.sessionId = sessionId |
| 1886 | } |
| 1887 | |
| 1888 | const initializedInstance: FlowiseMemory = await newNodeInstance.init(memoryNode.data, '', { |
| 1889 | chatflowid, |
| 1890 | appDataSource, |
| 1891 | databaseEntities, |
| 1892 | logger |
| 1893 | }) |
| 1894 | |
| 1895 | return (await initializedInstance.getChatMessages(sessionId, undefined, prependMessages)) as IMessage[] |
| 1896 | } |
| 1897 | |
| 1898 | /** |
| 1899 | * Method that find memory that is connected within chatflow |
no test coverage detected