Home / Function/ __init__() — langchain Function Reference

__init__() — langchain Function Reference

Architecture documentation for the __init__() function in summarization.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  27600a06_3568_45a8_ef8e_efda7e6f1a1a["__init__()"]
  a622f56b_f697_966d_5bc7_095699ccca34["SummarizationMiddleware"]
  27600a06_3568_45a8_ef8e_efda7e6f1a1a -->|defined in| a622f56b_f697_966d_5bc7_095699ccca34
  6a479650_75aa_0aa7_e9b5_b9a03e6639cf["_validate_context_size()"]
  27600a06_3568_45a8_ef8e_efda7e6f1a1a -->|calls| 6a479650_75aa_0aa7_e9b5_b9a03e6639cf
  65ce74ec_3821_4fcb_dac2_deac6f30763f["_get_profile_limits()"]
  27600a06_3568_45a8_ef8e_efda7e6f1a1a -->|calls| 65ce74ec_3821_4fcb_dac2_deac6f30763f
  1c1e5e7f_dd6a_7ef9_53fd_a81f47694626["_get_approximate_token_counter()"]
  27600a06_3568_45a8_ef8e_efda7e6f1a1a -->|calls| 1c1e5e7f_dd6a_7ef9_53fd_a81f47694626
  style 27600a06_3568_45a8_ef8e_efda7e6f1a1a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/langchain/agents/middleware/summarization.py lines 161–290

    def __init__(
        self,
        model: str | BaseChatModel,
        *,
        trigger: ContextSize | list[ContextSize] | None = None,
        keep: ContextSize = ("messages", _DEFAULT_MESSAGES_TO_KEEP),
        token_counter: TokenCounter = count_tokens_approximately,
        summary_prompt: str = DEFAULT_SUMMARY_PROMPT,
        trim_tokens_to_summarize: int | None = _DEFAULT_TRIM_TOKEN_LIMIT,
        **deprecated_kwargs: Any,
    ) -> None:
        """Initialize summarization middleware.

        Args:
            model: The language model to use for generating summaries.
            trigger: One or more thresholds that trigger summarization.

                Provide a single
                [`ContextSize`][langchain.agents.middleware.summarization.ContextSize]
                tuple or a list of tuples, in which case summarization runs when any
                threshold is met.

                !!! example

                    ```python
                    # Trigger summarization when 50 messages is reached
                    ("messages", 50)

                    # Trigger summarization when 3000 tokens is reached
                    ("tokens", 3000)

                    # Trigger summarization either when 80% of model's max input tokens
                    # is reached or when 100 messages is reached (whichever comes first)
                    [("fraction", 0.8), ("messages", 100)]
                    ```

                    See [`ContextSize`][langchain.agents.middleware.summarization.ContextSize]
                    for more details.
            keep: Context retention policy applied after summarization.

                Provide a [`ContextSize`][langchain.agents.middleware.summarization.ContextSize]
                tuple to specify how much history to preserve.

                Defaults to keeping the most recent `20` messages.

                Does not support multiple values like `trigger`.

                !!! example

                    ```python
                    # Keep the most recent 20 messages
                    ("messages", 20)

                    # Keep the most recent 3000 tokens
                    ("tokens", 3000)

                    # Keep the most recent 30% of the model's max input tokens
                    ("fraction", 0.3)
                    ```
            token_counter: Function to count tokens in messages.
            summary_prompt: Prompt template for generating summaries.
            trim_tokens_to_summarize: Maximum tokens to keep when preparing messages for
                the summarization call.

                Pass `None` to skip trimming entirely.
        """
        # Handle deprecated parameters
        if "max_tokens_before_summary" in deprecated_kwargs:
            value = deprecated_kwargs["max_tokens_before_summary"]
            warnings.warn(
                "max_tokens_before_summary is deprecated. Use trigger=('tokens', value) instead.",
                DeprecationWarning,
                stacklevel=2,
            )
            if trigger is None and value is not None:
                trigger = ("tokens", value)

        if "messages_to_keep" in deprecated_kwargs:
            value = deprecated_kwargs["messages_to_keep"]
            warnings.warn(
                "messages_to_keep is deprecated. Use keep=('messages', value) instead.",

Domain

Subdomains

Frequently Asked Questions

What does __init__() do?
__init__() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/middleware/summarization.py.
Where is __init__() defined?
__init__() is defined in libs/langchain_v1/langchain/agents/middleware/summarization.py at line 161.
What does __init__() call?
__init__() calls 3 function(s): _get_approximate_token_counter, _get_profile_limits, _validate_context_size.

Analyze Your Own Codebase

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

Try Supermodel Free