Home / Class/ CallbackManagerForChainGroup Class — langchain Architecture

CallbackManagerForChainGroup Class — langchain Architecture

Architecture documentation for the CallbackManagerForChainGroup class in manager.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  29a19b13_ef3d_f594_54ac_21da3c1a8030["CallbackManagerForChainGroup"]
  6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb["CallbackManager"]
  29a19b13_ef3d_f594_54ac_21da3c1a8030 -->|extends| 6d562bf2_4eaf_9d7e_e2d7_c0b64e8922fb
  35cf5db6_bcb1_b854_6ebb_5e0368e51b58["manager.py"]
  29a19b13_ef3d_f594_54ac_21da3c1a8030 -->|defined in| 35cf5db6_bcb1_b854_6ebb_5e0368e51b58
  0c32461d_1c81_5ba3_a956_2805b19ff9de["__init__()"]
  29a19b13_ef3d_f594_54ac_21da3c1a8030 -->|method| 0c32461d_1c81_5ba3_a956_2805b19ff9de
  425ad577_97d1_f61f_d840_885c0defb848["copy()"]
  29a19b13_ef3d_f594_54ac_21da3c1a8030 -->|method| 425ad577_97d1_f61f_d840_885c0defb848
  bd427c72_7003_97e4_a829_bcc4121bf201["merge()"]
  29a19b13_ef3d_f594_54ac_21da3c1a8030 -->|method| bd427c72_7003_97e4_a829_bcc4121bf201
  2f427cc2_2c7a_8975_55b4_cdba9d745912["on_chain_end()"]
  29a19b13_ef3d_f594_54ac_21da3c1a8030 -->|method| 2f427cc2_2c7a_8975_55b4_cdba9d745912
  4d4bcb4a_eb18_210d_e08a_0bc6f3c6eaf9["on_chain_error()"]
  29a19b13_ef3d_f594_54ac_21da3c1a8030 -->|method| 4d4bcb4a_eb18_210d_e08a_0bc6f3c6eaf9

Relationship Graph

Source Code

libs/core/langchain_core/callbacks/manager.py lines 1646–1774

class CallbackManagerForChainGroup(CallbackManager):
    """Callback manager for the chain group."""

    def __init__(
        self,
        handlers: list[BaseCallbackHandler],
        inheritable_handlers: list[BaseCallbackHandler] | None = None,
        parent_run_id: UUID | None = None,
        *,
        parent_run_manager: CallbackManagerForChainRun,
        **kwargs: Any,
    ) -> None:
        """Initialize the callback manager.

        Args:
            handlers: The list of handlers.
            inheritable_handlers: The list of inheritable handlers.
            parent_run_id: The ID of the parent run.
            parent_run_manager: The parent run manager.
            **kwargs: Additional keyword arguments.

        """
        super().__init__(
            handlers,
            inheritable_handlers,
            parent_run_id,
            **kwargs,
        )
        self.parent_run_manager = parent_run_manager
        self.ended = False

    @override
    def copy(self) -> CallbackManagerForChainGroup:
        return self.__class__(
            handlers=self.handlers.copy(),
            inheritable_handlers=self.inheritable_handlers.copy(),
            parent_run_id=self.parent_run_id,
            tags=self.tags.copy(),
            inheritable_tags=self.inheritable_tags.copy(),
            metadata=self.metadata.copy(),
            inheritable_metadata=self.inheritable_metadata.copy(),
            parent_run_manager=self.parent_run_manager,
        )

    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

Extends

Frequently Asked Questions

What is the CallbackManagerForChainGroup class?
CallbackManagerForChainGroup is a class in the langchain codebase, defined in libs/core/langchain_core/callbacks/manager.py.
Where is CallbackManagerForChainGroup defined?
CallbackManagerForChainGroup is defined in libs/core/langchain_core/callbacks/manager.py at line 1646.
What does CallbackManagerForChainGroup extend?
CallbackManagerForChainGroup extends CallbackManager.

Analyze Your Own Codebase

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

Try Supermodel Free