Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion src/langmem/short_term/summarization.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import warnings
from dataclasses import dataclass
from typing import Any, Callable, Iterable, cast
from typing import Any, Callable, Iterable, Optional, cast

from langchain_core.language_models import LanguageModelLike
from langchain_core.messages import (
Expand All @@ -11,6 +11,7 @@
SystemMessage,
ToolMessage,
)
from langchain_core.messages.ai import UsageMetadata
from langchain_core.messages.utils import count_tokens_approximately, trim_messages
from langchain_core.prompts.chat import ChatPromptTemplate, ChatPromptValue
from langgraph.graph.message import REMOVE_ALL_MESSAGES
Expand Down Expand Up @@ -65,6 +66,9 @@ class RunningSummary:
last_summarized_message_id: str | None
"""The ID of the last message that was summarized."""

usage_metadata: Optional[UsageMetadata]
"""Usage metadata of the summarization LLM call."""


@dataclass
class SummarizationResult:
Expand Down Expand Up @@ -485,6 +489,7 @@ def call_model(state):
last_summarized_message_id=preprocessed_messages.messages_to_summarize[
-1
].id,
usage_metadata=summary_response.usage_metadata if hasattr(summary_response, "usage_metadata") else None,
)

return _prepare_summarization_result(
Expand Down Expand Up @@ -646,6 +651,7 @@ async def call_model(state):
last_summarized_message_id=preprocessed_messages.messages_to_summarize[
-1
].id,
usage_metadata=summary_response.usage_metadata if hasattr(summary_response, "usage_metadata") else None,
)

return _prepare_summarization_result(
Expand Down