BaseChain<MemoryType extends BaseMemory> class
abstract
Base class for creating structured sequences of calls to components.
Chains should be used to encode a sequence of calls to components like models, document retrievers, other chains, etc., and provide a simple interface to this sequence.
The BaseChain interface makes it easy to create apps that are:
- Stateful: add Memory to any Chain to give it state.
- Observable: pass Callbacks to a Chain to execute additional functionality, like logging, outside the main sequence of component calls.
- Composable: the Chain API is flexible enough that it is easy to combine Chains with other components, including other Chains.
The main methods exposed by chains are:
- Inheritance
-
- Object
- Runnable<
ChainValues, ChainOptions, ChainValues> - BaseLangChain<
ChainValues, ChainOptions, ChainValues> - BaseChain
- Implementers
Constructors
- BaseChain({MemoryType? memory, ChainOptions? defaultOptions})
-
Base class for creating structured sequences of calls to components.
const
Properties
- chainType → String
-
Return the string type key uniquely identifying this class of chain.
no setter
- 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.
no setter
- memory → MemoryType?
-
Memory to use for this chain.
final
-
outputKeys
→ Set<
String> -
Output keys for this chain.
no setter
- runOutputKey → String
-
Output key from where the run method needs to take the return value.
no setter
- 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.
-
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.
-
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.
-
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 returnsnull
.inherited -
invoke(
ChainValues input, {ChainOptions? options}) → Future< ChainValues> -
Runs the core logic of this chain with the given input.
override
-
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.
-
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< fallbacks) → RunnableWithFallback<ChainValues, RunnableOptions, ChainValues> >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
Constants
- defaultInputKey → const String
- Default input key for the input of the chain.
- defaultOutputKey → const String
- Default output key for the output of the chain.