Home / Function/ merge() — langchain Function Reference

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

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