@langchain/core
Version:
Core LangChain.js abstractions and schemas
126 lines (124 loc) • 4.1 kB
JavaScript
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
const require_load_serializable = require('./load/serializable.cjs');
const require_ai = require('./messages/ai.cjs');
const require_human = require('./messages/human.cjs');
require('./messages/index.cjs');
//#region src/chat_history.ts
var chat_history_exports = {};
require_rolldown_runtime.__export(chat_history_exports, {
BaseChatMessageHistory: () => BaseChatMessageHistory,
BaseListChatMessageHistory: () => BaseListChatMessageHistory,
InMemoryChatMessageHistory: () => InMemoryChatMessageHistory
});
/**
* Base class for all chat message histories. All chat message histories
* should extend this class.
*/
var BaseChatMessageHistory = class extends require_load_serializable.Serializable {
/**
* Add a list of messages.
*
* Implementations should override this method to handle bulk addition of messages
* in an efficient manner to avoid unnecessary round-trips to the underlying store.
*
* @param messages - A list of BaseMessage objects to store.
*/
async addMessages(messages) {
for (const message of messages) await this.addMessage(message);
}
};
/**
* Base class for all list chat message histories. All list chat message
* histories should extend this class.
*/
var BaseListChatMessageHistory = class extends require_load_serializable.Serializable {
/**
* This is a convenience method for adding a human message string to the store.
* Please note that this is a convenience method. Code should favor the
* bulk addMessages interface instead to save on round-trips to the underlying
* persistence layer.
* This method may be deprecated in a future release.
*/
addUserMessage(message) {
return this.addMessage(new require_human.HumanMessage(message));
}
/**
* This is a convenience method for adding an AI message string to the store.
* Please note that this is a convenience method. Code should favor the bulk
* addMessages interface instead to save on round-trips to the underlying
* persistence layer.
* This method may be deprecated in a future release.
*/
addAIMessage(message) {
return this.addMessage(new require_ai.AIMessage(message));
}
/**
* Add a list of messages.
*
* Implementations should override this method to handle bulk addition of messages
* in an efficient manner to avoid unnecessary round-trips to the underlying store.
*
* @param messages - A list of BaseMessage objects to store.
*/
async addMessages(messages) {
for (const message of messages) await this.addMessage(message);
}
/**
* Remove all messages from the store.
*/
clear() {
throw new Error("Not implemented.");
}
};
/**
* Class for storing chat message history in-memory. It extends the
* BaseListChatMessageHistory class and provides methods to get, add, and
* clear messages.
*/
var InMemoryChatMessageHistory = class extends BaseListChatMessageHistory {
lc_namespace = [
"langchain",
"stores",
"message",
"in_memory"
];
messages = [];
constructor(messages) {
super(...arguments);
this.messages = messages ?? [];
}
/**
* Method to get all the messages stored in the ChatMessageHistory
* instance.
* @returns Array of stored BaseMessage instances.
*/
async getMessages() {
return this.messages;
}
/**
* Method to add a new message to the ChatMessageHistory instance.
* @param message The BaseMessage instance to add.
* @returns A promise that resolves when the message has been added.
*/
async addMessage(message) {
this.messages.push(message);
}
/**
* Method to clear all the messages from the ChatMessageHistory instance.
* @returns A promise that resolves when all messages have been cleared.
*/
async clear() {
this.messages = [];
}
};
//#endregion
exports.BaseChatMessageHistory = BaseChatMessageHistory;
exports.BaseListChatMessageHistory = BaseListChatMessageHistory;
exports.InMemoryChatMessageHistory = InMemoryChatMessageHistory;
Object.defineProperty(exports, 'chat_history_exports', {
enumerable: true,
get: function () {
return chat_history_exports;
}
});
//# sourceMappingURL=chat_history.cjs.map