add analytic into Conversational Agent

This commit is contained in:
chungyau97
2023-09-13 16:15:57 +08:00
parent d19f72db6f
commit e9ed663d1f
@@ -5,6 +5,7 @@ import { BaseChatMemory } from 'langchain/memory'
import { getBaseClasses, mapChatHistory } from '../../../src/utils' import { getBaseClasses, mapChatHistory } from '../../../src/utils'
import { BaseLanguageModel } from 'langchain/base_language' import { BaseLanguageModel } from 'langchain/base_language'
import { flatten } from 'lodash' import { flatten } from 'lodash'
import { additionalCallbacks } from '../../../src/handler'
const DEFAULT_PREFIX = `Assistant is a large language model trained by OpenAI. const DEFAULT_PREFIX = `Assistant is a large language model trained by OpenAI.
@@ -91,13 +92,14 @@ class ConversationalAgent_Agents implements INode {
const executor = nodeData.instance as AgentExecutor const executor = nodeData.instance as AgentExecutor
const memory = nodeData.inputs?.memory as BaseChatMemory const memory = nodeData.inputs?.memory as BaseChatMemory
const callbacks = await additionalCallbacks(nodeData, options)
if (options && options.chatHistory) { if (options && options.chatHistory) {
memory.chatHistory = mapChatHistory(options) memory.chatHistory = mapChatHistory(options)
executor.memory = memory executor.memory = memory
} }
const result = await executor.call({ input }) const result = await executor.call({ input }, [...callbacks])
return result?.output return result?.output
} }
} }