A class that represents a multi-prompt chain in the LangChain framework. It extends the MultiRouteChain class and provides additional functionality specific to multi-prompt chains.


const multiPromptChain = MultiPromptChain.fromLLMAndPrompts(new ChatOpenAI(), {
promptNames: ["physics", "math", "history"],
promptDescriptions: [
"Good for answering questions about physics",
"Good for answering math questions",
"Good for answering questions about history",
promptTemplates: [
`You are a very smart physics professor. Here is a question:\n{input}\n`,
`You are a very good mathematician. Here is a question:\n{input}\n`,
`You are a very smart history professor. Here is a question:\n{input}\n`,
const result = await multiPromptChain.call({
input: "What is the speed of light?",

Hierarchy (view full)



defaultChain: BaseChain<ChainValues, ChainValues>
destinationChains: {
    [name: string]: BaseChain;

Type declaration

routerChain: RouterChain
silentErrors: boolean = false
memory?: any



  • Parameters

    • inputs: ChainValues[]
    • Optional config: any[]

    Returns Promise<ChainValues[]>

    ⚠️ Deprecated ⚠️

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

    This feature is deprecated and will be removed in the future.

    It is not recommended for use.

    Call the chain on all inputs in the list

  • Parameters

    • values: any
    • Optional config: any
    • Optional tags: 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.


    • input: ChainValues

      Input values for the chain run.

    • Optional options: 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>>

  • A static method that creates an instance of MultiPromptChain from a BaseLanguageModel and a set of prompts. It takes in optional parameters for the default chain and additional options.


    • llm: BaseLanguageModelInterface

      A BaseLanguageModel instance.

    • __namedParameters: {
          promptDescriptions: string[];
          promptNames: string[];
          promptTemplates: string[] | PromptTemplate[];
          conversationChainOpts?: Omit<LLMChainInput<string, any>, "llm" | "outputKey">;
          defaultChain?: BaseChain<ChainValues, ChainValues>;
          llmChainOpts?: Omit<LLMChainInput<string, any>, "llm" | "prompt">;
          multiRouteChainOpts?: Omit<MultiRouteChainInput, "defaultChain">;
      • promptDescriptions: string[]
      • promptNames: string[]
      • promptTemplates: string[] | PromptTemplate[]
      • Optional conversationChainOpts?: Omit<LLMChainInput<string, any>, "llm" | "outputKey">
      • Optional defaultChain?: BaseChain<ChainValues, ChainValues>
      • Optional llmChainOpts?: Omit<LLMChainInput<string, any>, "llm" | "prompt">
      • Optional multiRouteChainOpts?: Omit<MultiRouteChainInput, "defaultChain">

    Returns MultiPromptChain

    An instance of MultiPromptChain.

Generated using TypeDoc