SequentialChain class

Chain that combines multiple chains where the output of the one chain is the input of the next chain.

If you don't provide inputKeys and outputKeys, they will be inferred from the chains.

Example:

final chain1 = FakeChain(
  inputVariables: {'foo', 'test'},
  outputVariables: {'bar'},
);
final chain2 = FakeChain(
  inputVariables: {'bar', 'foo'},
  outputVariables: {'baz'},
);
final chain = SequentialChain(chains: [chain1, chain2]);
final output = await chain({'foo': '123', 'test': '456'});

If all the chains have only one input and one output, you can use SimpleSequentialChain instead.

Inheritance

Constructors

SequentialChain.new({required List<BaseChain<BaseMemory>> chains, BaseMemory? memory, Set<String>? inputKeys, Set<String>? outputKeys, bool returnIntermediateOutputs = false})
Chain that combines multiple chains where the output of the one chain is the input of the next chain.

Properties

chains List<BaseChain<BaseMemory>>
The chains to run sequentially.
final
chainType String
Return the string type key uniquely identifying this class of chain.
no setteroverride
defaultOptions ChainOptions
The default options to use when invoking the Runnable.
finalinherited
hashCode int
The hash code for this object.
no setterinherited
inputKeys Set<String>
Input keys for this chain.
getter/setter pairoverride-getter
memory BaseMemory?
Memory to use for this chain.
finalinherited
outputKeys Set<String>
Output keys for this chain.
getter/setter pairoverride-getter
returnIntermediateOutputs bool
Whether the chain should return all intermediate outputs or just the final output. By default, only the final output of the chain is returned. Setting it to true can be useful if you want to see the outputs of each step in the chain for debugging or analysis purposes.
getter/setter pair
runOutputKey String
Output key from where the run method needs to take the return value.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

apply(List<ChainValues> inputs) Future<List<ChainValues>>
Call the chain on all inputs in the list.
inherited
batch(List<ChainValues> inputs, {List<ChainOptions>? options}) Future<List<ChainValues>>
Batches the invocation of the Runnable on the given inputs.
inherited
bind(ChainOptions options) RunnableBinding<ChainValues, ChainOptions, ChainValues>
Binds the Runnable to the given options.
inherited
call(dynamic input, {bool returnOnlyOutputs = false}) Future<ChainValues>
Runs the core logic of this chain with the given values. If memory is not null, it will be used to load and save values.
inherited
callInternal(ChainValues inputs) Future<ChainValues>
Call method to be implemented by subclasses (called by call). This is where the core logic of the chain should be implemented.
override
close() → void
Cleans up any resources associated with it the Runnable.
inherited
getCompatibleOptions(RunnableOptions? options) ChainOptions?
Returns the given options if they are compatible with the Runnable, otherwise returns null.
inherited
invoke(ChainValues input, {ChainOptions? options}) Future<ChainValues>
Runs the core logic of this chain with the given input.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pipe<NewRunOutput extends Object?, NewCallOptions extends RunnableOptions>(Runnable<ChainValues, NewCallOptions, NewRunOutput> next) RunnableSequence<ChainValues, NewRunOutput>
Pipes the output of this Runnable into another Runnable using a RunnableSequence.
inherited
run(dynamic input) Future<String>
Convenience method for executing chain when there's a single string output.
inherited
stream(ChainValues input, {ChainOptions? options}) Stream<ChainValues>
Streams the output of invoking the Runnable on the given input.
inherited
streamFromInputStream(Stream<ChainValues> inputStream, {ChainOptions? options}) Stream<ChainValues>
Streams the output of invoking the Runnable on the given inputStream.
inherited
toString() String
A string representation of this object.
inherited
withFallbacks(List<Runnable<ChainValues, RunnableOptions, ChainValues>> fallbacks) RunnableWithFallback<ChainValues, ChainValues>
Adds fallback runnables to be invoked if the primary runnable fails.
inherited
withRetry({int maxRetries = 3, FutureOr<bool> retryIf(Object e)?, List<Duration?>? delayDurations, bool addJitter = false}) RunnableRetry<ChainValues, ChainValues>
Adds retry logic to an existing runnable.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited