Home / Class/ InMemoryChatMessageHistory Class — langchain Architecture

InMemoryChatMessageHistory Class — langchain Architecture

Architecture documentation for the InMemoryChatMessageHistory class in chat_history.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  172321af_58bf_4793_da29_9eb028a48761["InMemoryChatMessageHistory"]
  bafcb99b_bf29_77cc_2ba1_06c40c54e908["BaseChatMessageHistory"]
  172321af_58bf_4793_da29_9eb028a48761 -->|extends| bafcb99b_bf29_77cc_2ba1_06c40c54e908
  687526cf_ffa2_1910_ab90_1c73cc3410fb["chat_history.py"]
  172321af_58bf_4793_da29_9eb028a48761 -->|defined in| 687526cf_ffa2_1910_ab90_1c73cc3410fb
  e376169e_88f7_e872_3e59_e528f2adfd91["aget_messages()"]
  172321af_58bf_4793_da29_9eb028a48761 -->|method| e376169e_88f7_e872_3e59_e528f2adfd91
  31b6443f_d624_442f_5738_987241c0a35d["add_message()"]
  172321af_58bf_4793_da29_9eb028a48761 -->|method| 31b6443f_d624_442f_5738_987241c0a35d
  93ebcf9e_2aac_93a8_66e0_0aef15671f90["aadd_messages()"]
  172321af_58bf_4793_da29_9eb028a48761 -->|method| 93ebcf9e_2aac_93a8_66e0_0aef15671f90
  155354e7_2975_a5b8_c6f7_34c53a36f6f5["clear()"]
  172321af_58bf_4793_da29_9eb028a48761 -->|method| 155354e7_2975_a5b8_c6f7_34c53a36f6f5
  ab857f6e_1c4c_77ed_f91e_a23c51c57fd5["aclear()"]
  172321af_58bf_4793_da29_9eb028a48761 -->|method| ab857f6e_1c4c_77ed_f91e_a23c51c57fd5

Relationship Graph

Source Code

libs/core/langchain_core/chat_history.py lines 202–246

class InMemoryChatMessageHistory(BaseChatMessageHistory, BaseModel):
    """In memory implementation of chat message history.

    Stores messages in a memory list.
    """

    messages: list[BaseMessage] = Field(default_factory=list)
    """A list of messages stored in memory."""

    async def aget_messages(self) -> list[BaseMessage]:
        """Async version of getting messages.

        Can over-ride this method to provide an efficient async implementation.

        In general, fetching messages may involve IO to the underlying persistence
        layer.

        Returns:
            List of messages.
        """
        return self.messages

    def add_message(self, message: BaseMessage) -> None:
        """Add a self-created message to the store.

        Args:
            message: The message to add.
        """
        self.messages.append(message)

    async def aadd_messages(self, messages: Sequence[BaseMessage]) -> None:
        """Async add messages to the store.

        Args:
            messages: The messages to add.
        """
        self.add_messages(messages)

    def clear(self) -> None:
        """Clear all messages from the store."""
        self.messages = []

    async def aclear(self) -> None:
        """Async clear all messages from the store."""
        self.clear()

Frequently Asked Questions

What is the InMemoryChatMessageHistory class?
InMemoryChatMessageHistory is a class in the langchain codebase, defined in libs/core/langchain_core/chat_history.py.
Where is InMemoryChatMessageHistory defined?
InMemoryChatMessageHistory is defined in libs/core/langchain_core/chat_history.py at line 202.
What does InMemoryChatMessageHistory extend?
InMemoryChatMessageHistory extends BaseChatMessageHistory.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free