merge() — langchain Function Reference
Architecture documentation for the merge() function in base.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 5a1be959_a33e_5d3a_2ad4_0ce88cdcf3b2["merge()"] 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41["BaseCallbackManager"] 5a1be959_a33e_5d3a_2ad4_0ce88cdcf3b2 -->|defined in| 24bc19d6_d1f4_bd59_6fc4_6ef5b08a4d41 style 5a1be959_a33e_5d3a_2ad4_0ce88cdcf3b2 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/langchain_core/callbacks/base.py lines 945–998
def merge(self, other: BaseCallbackManager) -> Self:
"""Merge the callback manager with another callback manager.
May be overwritten in subclasses.
Primarily used internally within `merge_configs`.
Returns:
The merged callback manager of the same type as the current object.
Example:
```python
# Merging two callback managers`
from langchain_core.callbacks.manager import (
CallbackManager,
trace_as_chain_group,
)
from langchain_core.callbacks.stdout import StdOutCallbackHandler
manager = CallbackManager(handlers=[StdOutCallbackHandler()], tags=["tag2"])
with trace_as_chain_group("My Group Name", tags=["tag1"]) as group_manager:
merged_manager = group_manager.merge(manager)
print(merged_manager.handlers)
# [
# <langchain_core.callbacks.stdout.StdOutCallbackHandler object at ...>,
# <langchain_core.callbacks.streaming_stdout.StreamingStdOutCallbackHandler object at ...>,
# ]
print(merged_manager.tags)
# ['tag2', 'tag1']
```
""" # noqa: E501
# Combine handlers and inheritable_handlers separately, using sets
# to deduplicate (order not preserved)
combined_handlers = list(set(self.handlers) | set(other.handlers))
combined_inheritable = list(
set(self.inheritable_handlers) | set(other.inheritable_handlers)
)
return self.__class__(
parent_run_id=self.parent_run_id or other.parent_run_id,
handlers=combined_handlers,
inheritable_handlers=combined_inheritable,
tags=list(set(self.tags + other.tags)),
inheritable_tags=list(set(self.inheritable_tags + other.inheritable_tags)),
metadata={
**self.metadata,
**other.metadata,
},
inheritable_metadata={
**self.inheritable_metadata,
**other.inheritable_metadata,
},
)
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does merge() do?
merge() is a function in the langchain codebase, defined in libs/core/langchain_core/callbacks/base.py.
Where is merge() defined?
merge() is defined in libs/core/langchain_core/callbacks/base.py at line 945.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free