ToolsOutputParser class
A parser that returns the list of tool calls returned by the model.
When streaming, the parser attempts to “auto-complete” the partial json from each chunk into a valid state.
Example:
const tool = ToolSpec(
name: 'joke',
description: 'A joke',
inputJsonSchema: {
'type': 'object',
'properties': {
'setup': {
'type': 'string',
'description': 'The setup for the joke',
},
'punchline': {
'type': 'string',
'description': 'The punchline to the joke',
},
},
'required': ['location', 'punchline'],
},
);
final promptTemplate = ChatPromptTemplate.fromTemplate(
'tell me a long joke about {foo}',
);
final chat = ChatOpenAI(
apiKey: openaiApiKey,
defaultOptions: ChatOpenAIOptions(
temperature: 0,
),
).bind(
ChatOpenAIOptions(
tools: [tool],
toolChoice: ChatToolChoice.forced(name: 'joke'),
),
);
final outputParser = ToolsOutputParser();
final chain = promptTemplate.pipe(chat).pipe(outputParser);
final res = await chain.invoke({'foo': 'bears'});
print(res);
// [ParsedToolCall{
// id: call_5TU1iYgYO3Z81eAuTe7J23f7,
// name: joke,
// arguments: {
// setup: Why don't bears like fast food restaurants?,
// punchline: Because they can't bear the wait!
// },
// }]
- Inheritance
-
- Object
- Runnable<
ChatResult, OutputParserOptions, List< ParsedToolCall> > - BaseOutputParser<
ChatResult, OutputParserOptions, List< ParsedToolCall> > - ToolsOutputParser
Constructors
- ToolsOutputParser({bool reduceOutputStream = false})
- A parser that returns the list of tool calls returned by the model.
Properties
- defaultOptions → OutputParserOptions
-
The default options to use when invoking the Runnable.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- reduceOutputStream → bool
-
When invoking this parser with Runnable.stream, every item from the
input stream will be parsed and emitted by default.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
batch(
List< ChatResult> inputs, {List<OutputParserOptions> ? options}) → Future<List< List< >ParsedToolCall> > -
Batches the invocation of the Runnable on the given
inputs
.inherited -
bind(
OutputParserOptions options) → RunnableBinding< ChatResult, OutputParserOptions, List< ParsedToolCall> > -
Binds the Runnable to the given
options
.inherited -
close(
) → void -
Cleans up any resources associated with it the Runnable.
inherited
-
getCompatibleOptions(
RunnableOptions? options) → OutputParserOptions? -
Returns the given
options
if they are compatible with the Runnable, otherwise returnsnull
.inherited -
invoke(
ChatResult input, {OutputParserOptions? options}) → Future< List< ParsedToolCall> > -
Invokes the output parser 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< List< next) → RunnableSequence<ParsedToolCall> , NewCallOptions, NewRunOutput>ChatResult, NewRunOutput> -
Pipes the output of this Runnable into another Runnable using a
RunnableSequence.
inherited
-
stream(
ChatResult input, {OutputParserOptions? options}) → Stream< List< ParsedToolCall> > -
Streams the output of invoking the Runnable on the given
input
.override -
streamFromInputStream(
Stream< ChatResult> inputStream, {OutputParserOptions? options}) → Stream<List< ParsedToolCall> > -
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<ChatResult, RunnableOptions, List< >ParsedToolCall> >ChatResult, List< ParsedToolCall> > -
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<ChatResult, List< ParsedToolCall> > -
Adds retry logic to an existing runnable.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited