RunnableMap<RunInput extends Object> class
A RunnableMap allows you to run multiple Runnable objects in parallel on the same input returning a map of the results.
You can create a RunnableMap using the Runnable.fromMap static method.
When you call invoke on a RunnableMap, it will invoke each Runnable in the map in parallel, passing the same input to each one. The output of each Runnable is returned in a map, where the keys are the names of the outputs.
Example:
final openaiApiKey = Platform.environment['OPENAI_API_KEY'];
final model = ChatOpenAI(apiKey: openaiApiKey);
final promptTemplate1 = ChatPromptTemplate.fromTemplate(
'What is the city {person} is from?',
);
final promptTemplate2 = ChatPromptTemplate.fromTemplate(
'How old is {person}?',
);
final promptTemplate3 = ChatPromptTemplate.fromTemplate(
'Is {city} a good city for a {age} years old person?',
);
const stringOutputParser = StringOutputParser<ChatResult>();
final chain = Runnable.fromMap({
'city': promptTemplate1 | model | stringOutputParser,
'age': promptTemplate2 | model | stringOutputParser,
}) | promptTemplate3 | model | stringOutputParser;
final res = await chain.invoke({'person': 'Elon Musk'});
print(res);
// It is subjective to determine whether Pretoria, South Africa, is a good
// city for a 50-year-old person as it depends on individual preferences and needs.
- Inheritance
-
- Object
- Runnable<
RunInput, RunnableOptions, Map< String, dynamic> > - RunnableMap
Constructors
-
RunnableMap(Map<
String, Runnable< steps)RunInput, RunnableOptions, Object> > -
A RunnableMap allows you to run multiple Runnable objects in parallel
on the same input returning a map of the results.
const
Properties
- defaultOptions → RunnableOptions
-
The default options to use when invoking the Runnable.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
steps
→ Map<
String, Runnable< RunInput, RunnableOptions, Object> > -
The map of Runnable objects to run in parallel.
final
Methods
-
batch(
List< RunInput> inputs, {List<RunnableOptions> ? options}) → Future<List< Map< >String, dynamic> > -
Batches the invocation of the Runnable on the given
inputs
.inherited -
bind(
RunnableOptions options) → RunnableBinding< RunInput, RunnableOptions, Map< String, dynamic> > -
Binds the Runnable to the given
options
.inherited -
close(
) → void -
Cleans up any resources associated with it the Runnable.
override
-
getCompatibleOptions(
RunnableOptions? options) → RunnableOptions? -
Returns the given
options
if they are compatible with the Runnable, otherwise returnsnull
.inherited -
invoke(
RunInput input, {RunnableOptions? options}) → Future< Map< String, dynamic> > -
Invokes the RunnableMap on 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< Map< next) → RunnableSequence<String, dynamic> , NewCallOptions, NewRunOutput>RunInput, NewRunOutput> -
Pipes the output of this Runnable into another Runnable using a
RunnableSequence.
inherited
-
stream(
RunInput input, {RunnableOptions? options}) → Stream< Map< String, dynamic> > -
Streams the output of invoking the Runnable on the given
input
.override -
streamFromInputStream(
Stream< RunInput> inputStream, {RunnableOptions? options}) → Stream<Map< String, dynamic> > -
Streams the output of invoking the Runnable on the given
inputStream
.override -
toString(
) → String -
A string representation of this object.
inherited
-
withFallbacks(
List< Runnable< fallbacks) → RunnableWithFallback<RunInput, RunnableOptions, Map< >String, dynamic> >RunInput, Map< String, dynamic> > -
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<RunInput, Map< String, dynamic> > -
Adds retry logic to an existing runnable.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited