Chain where the outputs of one chain feed directly into next.

const promptTemplate = new PromptTemplate({
template: `You are a playwright. Given the title of play and the era it is set in, it is your job to write a synopsis for that title.
Title: {title}
Era: {era}
Playwright: This is a synopsis for the above play:`,
inputVariables: ["title", "era"],
});

const reviewPromptTemplate = new PromptTemplate({
template: `You are a play critic from the New York Times. Given the synopsis of play, it is your job to write a review for that play.

Play Synopsis:
{synopsis}
Review from a New York Times play critic of the above play:`,
inputVariables: ["synopsis"],
});

const overallChain = new SequentialChain({
chains: [
new LLMChain({
llm: new ChatOpenAI({ temperature: 0 }),
prompt: promptTemplate,
outputKey: "synopsis",
}),
new LLMChain({
llm: new OpenAI({ temperature: 0 }),
prompt: reviewPromptTemplate,
outputKey: "review",
}),
],
inputVariables: ["era", "title"],
outputVariables: ["synopsis", "review"],
verbose: true,
});

const chainExecutionResult = await overallChain.call({
title: "Tragedy at sunset on the beach",
era: "Victorian England",
});
console.log(chainExecutionResult);

Switch to expression language. Will be removed in 0.2.0

Hierarchy (view full)

Implements

Constructors

Properties

chains: BaseChain<ChainValues, ChainValues>[]

Array of chains to run as a sequence. The chains are run in order they appear in the array.

inputVariables: string[]

Defines which variables should be passed as initial input to the first chain.

outputVariables: string[]

Which variables should be returned as a result of executing the chain. If not specified, output of the last of the chains is used.

memory?: any
returnAll?: boolean

Whether or not to return all intermediate outputs and variables (excluding initial input variables).

Accessors

Methods

  • Parameters

    • inputs: ChainValues[]
    • Optionalconfig: any[]

    Returns Promise<ChainValues[]>

    Use .batch() instead. Will be removed in 0.2.0.

    Call the chain on all inputs in the list

  • Parameters

    • values: any
    • Optionalconfig: any
    • Optionaltags: string[]

    Returns Promise<ChainValues>

    Use .invoke() instead. Will be removed in 0.2.0.

    Run the core logic of this chain and add to output if desired.

    Wraps _call and handles memory.

  • Invoke the chain with the provided input and returns the output.

    Parameters

    • input: ChainValues

      Input values for the chain run.

    • Optionaloptions: any

    Returns Promise<ChainValues>

    Promise that resolves with the output of the chain run.

  • Parameters

    • inputs: Record<string, unknown>
    • outputs: Record<string, unknown>
    • returnOnlyOutputs: boolean = false

    Returns Promise<Record<string, unknown>>

  • Parameters

    • input: any
    • Optionalconfig: any

    Returns Promise<string>

    Use .invoke() instead. Will be removed in 0.2.0.