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)
Defined In
Source
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