Home / File/ test_summary_buffer_memory.py — langchain Source File

test_summary_buffer_memory.py — langchain Source File

Architecture documentation for test_summary_buffer_memory.py, a python file in the langchain codebase. 2 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  dccf7ecc_1c53_876a_de81_3e01e7a633e6["test_summary_buffer_memory.py"]
  83265fcb_f239_126b_4b58_47636471c382["langchain_classic.memory.summary_buffer"]
  dccf7ecc_1c53_876a_de81_3e01e7a633e6 --> 83265fcb_f239_126b_4b58_47636471c382
  7e88f5ce_ff41_7d87_8fb2_f355489a149e["tests.unit_tests.llms.fake_llm"]
  dccf7ecc_1c53_876a_de81_3e01e7a633e6 --> 7e88f5ce_ff41_7d87_8fb2_f355489a149e
  style dccf7ecc_1c53_876a_de81_3e01e7a633e6 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Test memory functionality."""

from langchain_classic.memory.summary_buffer import ConversationSummaryBufferMemory
from tests.unit_tests.llms.fake_llm import FakeLLM


def test_summary_buffer_memory_no_buffer_yet() -> None:
    """Test ConversationSummaryBufferMemory when no inputs put in buffer yet."""
    memory = ConversationSummaryBufferMemory(llm=FakeLLM(), memory_key="baz")
    output = memory.load_memory_variables({})
    assert output == {"baz": ""}


async def test_summary_buffer_memory_no_buffer_yet_async() -> None:
    """Test ConversationSummaryBufferMemory when no inputs put in buffer yet."""
    memory = ConversationSummaryBufferMemory(llm=FakeLLM(), memory_key="baz")
    output = await memory.aload_memory_variables({})
    assert output == {"baz": ""}


def test_summary_buffer_memory_buffer_only() -> None:
    """Test ConversationSummaryBufferMemory when only buffer."""
    memory = ConversationSummaryBufferMemory(llm=FakeLLM(), memory_key="baz")
    memory.save_context({"input": "bar"}, {"output": "foo"})
    assert memory.buffer == "Human: bar\nAI: foo"
    output = memory.load_memory_variables({})
    assert output == {"baz": "Human: bar\nAI: foo"}


async def test_summary_buffer_memory_buffer_only_async() -> None:
    """Test ConversationSummaryBufferMemory when only buffer."""
    memory = ConversationSummaryBufferMemory(llm=FakeLLM(), memory_key="baz")
    await memory.asave_context({"input": "bar"}, {"output": "foo"})
    assert memory.buffer == "Human: bar\nAI: foo"
    output = await memory.aload_memory_variables({})
    assert output == {"baz": "Human: bar\nAI: foo"}


def test_summary_buffer_memory_summary() -> None:
    """Test ConversationSummaryBufferMemory when only buffer."""
    llm = FakeLLM(queries={0: "summary"}, sequential_responses=True)
    memory = ConversationSummaryBufferMemory(
        llm=llm,
        memory_key="baz",
        max_token_limit=5,
    )
    memory.save_context({"input": "bar"}, {"output": "foo"})
    memory.save_context({"input": "bar1"}, {"output": "foo1"})
    assert memory.buffer == "System: summary\nHuman: bar1\nAI: foo1"
    output = memory.load_memory_variables({})
    assert output == {"baz": "System: summary\nHuman: bar1\nAI: foo1"}


async def test_summary_buffer_memory_summary_async() -> None:
    """Test ConversationSummaryBufferMemory when only buffer."""
    llm = FakeLLM(queries={0: "summary"}, sequential_responses=True)
    memory = ConversationSummaryBufferMemory(
        llm=llm,
        memory_key="baz",
        max_token_limit=5,
    )
    await memory.asave_context({"input": "bar"}, {"output": "foo"})
    await memory.asave_context({"input": "bar1"}, {"output": "foo1"})
    assert memory.buffer == "System: summary\nHuman: bar1\nAI: foo1"
    output = await memory.aload_memory_variables({})
    assert output == {"baz": "System: summary\nHuman: bar1\nAI: foo1"}

Subdomains

Dependencies

  • langchain_classic.memory.summary_buffer
  • tests.unit_tests.llms.fake_llm

Frequently Asked Questions

What does test_summary_buffer_memory.py do?
test_summary_buffer_memory.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, RunnableInterface subdomain.
What functions are defined in test_summary_buffer_memory.py?
test_summary_buffer_memory.py defines 6 function(s): test_summary_buffer_memory_buffer_only, test_summary_buffer_memory_buffer_only_async, test_summary_buffer_memory_no_buffer_yet, test_summary_buffer_memory_no_buffer_yet_async, test_summary_buffer_memory_summary, test_summary_buffer_memory_summary_async.
What does test_summary_buffer_memory.py depend on?
test_summary_buffer_memory.py imports 2 module(s): langchain_classic.memory.summary_buffer, tests.unit_tests.llms.fake_llm.
Where is test_summary_buffer_memory.py in the architecture?
test_summary_buffer_memory.py is located at libs/langchain/tests/unit_tests/chains/test_summary_buffer_memory.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/langchain/tests/unit_tests/chains).

Analyze Your Own Codebase

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

Try Supermodel Free