ConversationChain class
Chain that carries on a conversation, loading context from memory and calling an LLM with it.
By default, the ConversationChain has a simple type of memory that remembers all previous inputs/outputs and adds them to the context that is passed to the LLM (see ConversationBufferMemory).
Example:
final chain = ConversationChain(llm: OpenAI(apiKey: '...'));
final res = await chain.run('Hello world!');
- prompt is the prompt that will be used to call the LLM.
- llm is the LLM that will be called.
- outputParser is the parser that will be used to parse the output.
- memory is the memory that will be used to store and load context.
- inputKey is the key of the value that needs to be passed to the chain. (e.g. if the prompt template has two input variables ('foo' and 'bar') and 'foo' is loaded from memory, then 'bar' is the input key).
- outputKey is the key in the returned map that contains the output of the chain execution.
- Inheritance
- Available Extensions
Constructors
-
ConversationChain({BasePromptTemplate prompt = const PromptTemplate(template: _defaultTemplate, inputVariables: {_memoryKey, 'input'}), required BaseLanguageModel<
Object, LanguageModelOptions, LanguageModelResult< llm, BaseOutputParser<Object> >Object?, OutputParserOptions, Object?> ? outputParser, BaseMemory? memory, String inputKey = 'input', String outputKey = 'response'}) - Chain that carries on a conversation, loading context from memory and calling an LLM with it.
Properties
- chainType → String
-
Return the string type key uniquely identifying this class of chain.
no setterinherited
- defaultOptions → ChainOptions
-
The default options to use when invoking the Runnable.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- inputKey → String
-
The key of the input value.
final
-
inputKeys
→ Set<
String> -
Input keys for this chain.
no setteroverride
-
llm
→ BaseLanguageModel<
Object, LanguageModelOptions, LanguageModelResult< Object> > -
Language model to call.
finalinherited
- llmOptions → LanguageModelOptions?
-
Options to pass to the language model.
finalinherited
- memory → BaseMemory?
-
Memory to use for this chain.
finalinherited
- outputKey → String
-
Key to use for output.
finalinherited
-
outputKeys
→ Set<
String> -
Output keys for this chain.
no setterinherited
-
outputParser
→ BaseOutputParser<
Object?, OutputParserOptions, Object?> ? -
OutputParser to use.
finalinherited
- prompt → BasePromptTemplate
-
Prompt object to use.
finalinherited
- returnFinalOnly → bool
-
Whether to return only the final parsed result.
If false, it will return a bunch of extra information about the
generation.
finalinherited
- 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.
inherited
-
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.
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
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited