Home / Class/ ChatMessageChunk Class — langchain Architecture

ChatMessageChunk Class — langchain Architecture

Architecture documentation for the ChatMessageChunk class in chat.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  1418b16b_02b1_1c29_ec3f_d2c27cadc13e["ChatMessageChunk"]
  8dbff724_1339_5b38_06af_657f7d68f5e3["ChatMessage"]
  1418b16b_02b1_1c29_ec3f_d2c27cadc13e -->|extends| 8dbff724_1339_5b38_06af_657f7d68f5e3
  d352e00a_ad20_d713_0d6d_0341e774180d["BaseMessageChunk"]
  1418b16b_02b1_1c29_ec3f_d2c27cadc13e -->|extends| d352e00a_ad20_d713_0d6d_0341e774180d
  1418b16b_02b1_1c29_ec3f_d2c27cadc13e["ChatMessageChunk"]
  1418b16b_02b1_1c29_ec3f_d2c27cadc13e -->|extends| 1418b16b_02b1_1c29_ec3f_d2c27cadc13e
  87a02077_bed8_d626_3a90_d6686ed5ab42["chat.py"]
  1418b16b_02b1_1c29_ec3f_d2c27cadc13e -->|defined in| 87a02077_bed8_d626_3a90_d6686ed5ab42
  34cb5a5b_2a5c_c35e_c787_ad9a6deabb75["__add__()"]
  1418b16b_02b1_1c29_ec3f_d2c27cadc13e -->|method| 34cb5a5b_2a5c_c35e_c787_ad9a6deabb75

Relationship Graph

Source Code

libs/core/langchain_core/messages/chat.py lines 25–64

class ChatMessageChunk(ChatMessage, BaseMessageChunk):
    """Chat Message chunk."""

    # Ignoring mypy re-assignment here since we're overriding the value
    # to make sure that the chunk variant can be discriminated from the
    # non-chunk variant.
    type: Literal["ChatMessageChunk"] = "ChatMessageChunk"  # type: ignore[assignment]
    """The type of the message (used during serialization)."""

    @override
    def __add__(self, other: Any) -> BaseMessageChunk:  # type: ignore[override]
        if isinstance(other, ChatMessageChunk):
            if self.role != other.role:
                msg = "Cannot concatenate ChatMessageChunks with different roles."
                raise ValueError(msg)

            return self.__class__(
                role=self.role,
                content=merge_content(self.content, other.content),
                additional_kwargs=merge_dicts(
                    self.additional_kwargs, other.additional_kwargs
                ),
                response_metadata=merge_dicts(
                    self.response_metadata, other.response_metadata
                ),
                id=self.id,
            )
        if isinstance(other, BaseMessageChunk):
            return self.__class__(
                role=self.role,
                content=merge_content(self.content, other.content),
                additional_kwargs=merge_dicts(
                    self.additional_kwargs, other.additional_kwargs
                ),
                response_metadata=merge_dicts(
                    self.response_metadata, other.response_metadata
                ),
                id=self.id,
            )
        return super().__add__(other)

Frequently Asked Questions

What is the ChatMessageChunk class?
ChatMessageChunk is a class in the langchain codebase, defined in libs/core/langchain_core/messages/chat.py.
Where is ChatMessageChunk defined?
ChatMessageChunk is defined in libs/core/langchain_core/messages/chat.py at line 25.
What does ChatMessageChunk extend?
ChatMessageChunk extends ChatMessage, BaseMessageChunk, ChatMessageChunk.

Analyze Your Own Codebase

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

Try Supermodel Free