Spaces:
Runtime error
Runtime error
const CustomAgent = require('./CustomAgent'); | |
const { CustomOutputParser } = require('./outputParser'); | |
const { AgentExecutor } = require('langchain/agents'); | |
const { LLMChain } = require('langchain/chains'); | |
const { BufferMemory, ChatMessageHistory } = require('langchain/memory'); | |
const { | |
ChatPromptTemplate, | |
SystemMessagePromptTemplate, | |
HumanMessagePromptTemplate, | |
} = require('langchain/prompts'); | |
const initializeCustomAgent = async ({ | |
tools, | |
model, | |
pastMessages, | |
currentDateString, | |
...rest | |
}) => { | |
let prompt = CustomAgent.createPrompt(tools, { currentDateString, model: model.modelName }); | |
const chatPrompt = ChatPromptTemplate.fromPromptMessages([ | |
new SystemMessagePromptTemplate(prompt), | |
HumanMessagePromptTemplate.fromTemplate(`{chat_history} | |
Query: {input} | |
{agent_scratchpad}`), | |
]); | |
const outputParser = new CustomOutputParser({ tools }); | |
const memory = new BufferMemory({ | |
chatHistory: new ChatMessageHistory(pastMessages), | |
// returnMessages: true, // commenting this out retains memory | |
memoryKey: 'chat_history', | |
humanPrefix: 'User', | |
aiPrefix: 'Assistant', | |
inputKey: 'input', | |
outputKey: 'output', | |
}); | |
const llmChain = new LLMChain({ | |
prompt: chatPrompt, | |
llm: model, | |
}); | |
const agent = new CustomAgent({ | |
llmChain, | |
outputParser, | |
allowedTools: tools.map((tool) => tool.name), | |
}); | |
return AgentExecutor.fromAgentAndTools({ agent, tools, memory, ...rest }); | |
}; | |
module.exports = initializeCustomAgent; | |