The BufferMemory class is a type of memory component used for storing and managing previous chat messages. It is a wrapper around ChatMessageHistory that extracts the messages into an input variable. This class is particularly useful in applications like chatbots where it is essential to remember previous interactions. Note: The memory instance represents the history of a single conversation. Therefore, it is not recommended to share the same history or memory instance between two different chains. If you deploy your LangChain app on a serverless environment, do not store memory instances in a variable, as your hosting provider may reset it by the next time the function is called.

// Initialize the memory to store chat history and set up the language model with a specific temperature.
const memory = new BufferMemory({ memoryKey: "chat_history" });
const model = new ChatOpenAI({ temperature: 0.9 });

// Create a prompt template for a friendly conversation between a human and an AI.
const prompt =
PromptTemplate.fromTemplate(`The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.

Current conversation:
{chat_history}
Human: {input}
AI:`);

// Set up the chain with the language model, prompt, and memory.
const chain = new LLMChain({ llm: model, prompt, memory });

// Example usage of the chain to continue the conversation.
// The `call` method sends the input to the model and returns the AI's response.
const res = await chain.call({ input: "Hi! I'm Jim." });
console.log({ res });

Hierarchy (view full)

Implements

Constructors

Properties

aiPrefix: string = "AI"
chatHistory: BaseChatMessageHistory
humanPrefix: string = "Human"
inputKey?: string
memoryKey: string = "history"
outputKey?: string
returnMessages: boolean = false

Accessors

Methods