test_summarization_middleware_full_workflow_async() — langchain Function Reference
Architecture documentation for the test_summarization_middleware_full_workflow_async() function in test_summarization.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 7c5eba78_3a66_627e_2877_b3d1027e0dea["test_summarization_middleware_full_workflow_async()"] 1911a463_b67d_0301_5ef1_5c535dafc14a["test_summarization.py"] 7c5eba78_3a66_627e_2877_b3d1027e0dea -->|defined in| 1911a463_b67d_0301_5ef1_5c535dafc14a c1b92040_ddc8_a816_8b38_cb1c2aa76183["_agenerate()"] 7c5eba78_3a66_627e_2877_b3d1027e0dea -->|calls| c1b92040_ddc8_a816_8b38_cb1c2aa76183 style 7c5eba78_3a66_627e_2877_b3d1027e0dea fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_summarization.py lines 468–527
async def test_summarization_middleware_full_workflow_async() -> None:
"""Test SummarizationMiddleware complete summarization workflow."""
class MockModel(BaseChatModel):
@override
def _generate(
self,
messages: list[BaseMessage],
stop: list[str] | None = None,
run_manager: CallbackManagerForLLMRun | None = None,
**kwargs: Any,
) -> ChatResult:
return ChatResult(generations=[ChatGeneration(message=AIMessage(content="Blep"))])
@override
async def _agenerate(
self,
messages: list[BaseMessage],
stop: list[str] | None = None,
run_manager: AsyncCallbackManagerForLLMRun | None = None,
**kwargs: Any,
) -> ChatResult:
return ChatResult(generations=[ChatGeneration(message=AIMessage(content="Blip"))])
@property
def _llm_type(self) -> str:
return "mock"
middleware = SummarizationMiddleware(
model=MockModel(), trigger=("tokens", 1000), keep=("messages", 2)
)
# Mock high token count to trigger summarization
def mock_token_counter(_: Iterable[MessageLikeRepresentation]) -> int:
return 1500 # Above threshold
middleware.token_counter = mock_token_counter
messages: list[AnyMessage] = [
HumanMessage(content="1"),
HumanMessage(content="2"),
HumanMessage(content="3"),
HumanMessage(content="4"),
HumanMessage(content="5"),
]
state = AgentState[Any](messages=messages)
result = await middleware.abefore_model(state, Runtime())
assert result is not None
assert "messages" in result
assert len(result["messages"]) > 0
expected_types = ["remove", "human", "human", "human"]
actual_types = [message.type for message in result["messages"]]
assert actual_types == expected_types
assert [message.content for message in result["messages"][2:]] == ["4", "5"]
summary_message = result["messages"][1]
assert "Blip" in summary_message.text
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does test_summarization_middleware_full_workflow_async() do?
test_summarization_middleware_full_workflow_async() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_summarization.py.
Where is test_summarization_middleware_full_workflow_async() defined?
test_summarization_middleware_full_workflow_async() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_summarization.py at line 468.
What does test_summarization_middleware_full_workflow_async() call?
test_summarization_middleware_full_workflow_async() calls 1 function(s): _agenerate.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free