@ -6,6 +6,7 @@ import pytest
from langchain . callbacks . manager import CallbackManagerForChainRun
from langchain . callbacks . manager import CallbackManagerForChainRun
from langchain . chains . base import Chain
from langchain . chains . base import Chain
from langchain . chains . sequential import SequentialChain , SimpleSequentialChain
from langchain . chains . sequential import SequentialChain , SimpleSequentialChain
from langchain . memory import ConversationBufferMemory
from langchain . memory . simple import SimpleMemory
from langchain . memory . simple import SimpleMemory
@ -81,6 +82,21 @@ def test_sequential_usage_memory() -> None:
)
)
def test_sequential_internal_chain_use_memory ( ) - > None :
""" Test sequential usage with memory for one of the internal chains. """
memory = ConversationBufferMemory ( memory_key = " bla " )
memory . save_context ( { " input " : " yo " } , { " output " : " ya " } )
chain_1 = FakeChain (
input_variables = [ " foo " , " bla " ] , output_variables = [ " bar " ] , memory = memory
)
chain_2 = FakeChain ( input_variables = [ " bar " ] , output_variables = [ " baz " ] )
chain = SequentialChain ( chains = [ chain_1 , chain_2 ] , input_variables = [ " foo " ] )
output = chain ( { " foo " : " 123 " } )
print ( " HEYYY OUTPUT " , output )
expected_output = { " foo " : " 123 " , " baz " : " 123 Human: yo \n AI: yafoofoo " }
assert output == expected_output
def test_sequential_usage_multiple_outputs ( ) - > None :
def test_sequential_usage_multiple_outputs ( ) - > None :
""" Test sequential usage on multiple output chains. """
""" Test sequential usage on multiple output chains. """
chain_1 = FakeChain ( input_variables = [ " foo " ] , output_variables = [ " bar " , " test " ] )
chain_1 = FakeChain ( input_variables = [ " foo " ] , output_variables = [ " bar " , " test " ] )