Class for storing chat message history with Cosmos DB NoSQL. It extends the BaseListChatMessageHistory class and provides methods to get, add, and clear messages.

 const model = new ChatOpenAI({
model: "gpt-3.5-turbo",
temperature: 0,
});
const prompt = ChatPromptTemplate.fromMessages([
[
"system",
"You are a helpful assistant. Answer all questions to the best of your ability.",
],
new MessagesPlaceholder("chat_history"),
["human", "{input}"],
]);

const chain = prompt.pipe(model).pipe(new StringOutputParser());
const chainWithHistory = new RunnableWithMessageHistory({
runnable: chain,
inputMessagesKey: "input",
historyMessagesKey: "chat_history",
getMessageHistory: async (sessionId) => {
const chatHistory = new AzureCosmsosDBNoSQLChatMessageHistory({
sessionId: sessionId,
userId: "user-id",
databaseName: "DATABASE_NAME",
containerName: "CONTAINER_NAME",
})
return chatHistory;
},
});
await chainWithHistory.invoke(
{ input: "What did I just say my name was?" },
{ configurable: { sessionId: "session-id" } }
);

Hierarchy

  • BaseListChatMessageHistory
    • AzureCosmsosDBNoSQLChatMessageHistory

Constructors

Methods

  • Parameters

    • message: string

    Returns Promise<void>

    Use addAIMessage instead

  • 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.

    Parameters

    • message: string

    Returns Promise<void>

  • 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.

    Parameters

    • messages: BaseMessage[]

      A list of BaseMessage objects to store.

    Returns Promise<void>

  • 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.

    Parameters

    • message: string

    Returns Promise<void>

  • Returns Serialized