merge() — langchain Function Reference
Architecture documentation for the merge() function in manager.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 9afe8ec3_6265_0bfd_b9aa_231ee6084fa3["merge()"] b12567d8_81a9_52c3_3096_d524d1371c83["CallbackManagerForChainGroup"] 9afe8ec3_6265_0bfd_b9aa_231ee6084fa3 -->|defined in| b12567d8_81a9_52c3_3096_d524d1371c83 40baea86_dfe8_0c6b_cff8_57b3fde6c2ee["merge()"] 40baea86_dfe8_0c6b_cff8_57b3fde6c2ee -->|calls| 9afe8ec3_6265_0bfd_b9aa_231ee6084fa3 40baea86_dfe8_0c6b_cff8_57b3fde6c2ee["merge()"] 9afe8ec3_6265_0bfd_b9aa_231ee6084fa3 -->|calls| 40baea86_dfe8_0c6b_cff8_57b3fde6c2ee e694e06d_9c3a_9620_74b6_743814a492ce["trace_as_chain_group()"] 9afe8ec3_6265_0bfd_b9aa_231ee6084fa3 -->|calls| e694e06d_9c3a_9620_74b6_743814a492ce style 9afe8ec3_6265_0bfd_b9aa_231ee6084fa3 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/langchain_core/callbacks/manager.py lines 1690–1748
def merge(
self: CallbackManagerForChainGroup, other: BaseCallbackManager
) -> CallbackManagerForChainGroup:
"""Merge the group callback manager with another callback manager.
Overwrites the merge method in the base class to ensure that the parent run
manager is preserved. Keeps the `parent_run_manager` from the current object.
Returns:
A copy of the current object with the handlers, tags, and other attributes
merged from the other 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(type(merged_manager))
# <class 'langchain_core.callbacks.manager.CallbackManagerForChainGroup'>
print(merged_manager.handlers)
# [
# <langchain_core.callbacks.stdout.LangChainTracer object at ...>,
# <langchain_core.callbacks.streaming_stdout.StdOutCallbackHandler object at ...>,
# ]
print(merged_manager.tags)
# ['tag2', 'tag1']
```
""" # noqa: E501
manager = self.__class__(
parent_run_id=self.parent_run_id or other.parent_run_id,
handlers=[],
inheritable_handlers=[],
tags=list(set(self.tags + other.tags)),
inheritable_tags=list(set(self.inheritable_tags + other.inheritable_tags)),
metadata={
**self.metadata,
**other.metadata,
},
parent_run_manager=self.parent_run_manager,
)
handlers = self.handlers + other.handlers
inheritable_handlers = self.inheritable_handlers + other.inheritable_handlers
for handler in handlers:
manager.add_handler(handler)
for handler in inheritable_handlers:
manager.add_handler(handler, inherit=True)
return manager
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does merge() do?
merge() is a function in the langchain codebase, defined in libs/core/langchain_core/callbacks/manager.py.
Where is merge() defined?
merge() is defined in libs/core/langchain_core/callbacks/manager.py at line 1690.
What does merge() call?
merge() calls 2 function(s): merge, trace_as_chain_group.
What calls merge()?
merge() is called by 1 function(s): merge.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free