langchain.js
    Preparing search index...

    Class ConstitutionalChain

    Class representing a ConstitutionalChain. Extends BaseChain and implements ConstitutionalChainInput.

    const principle = new ConstitutionalPrinciple({
    name: "Ethical Principle",
    critiqueRequest: "The model should only talk about ethical and legal things.",
    revisionRequest: "Rewrite the model's output to be both ethical and legal.",
    });

    const chain = new ConstitutionalChain({
    llm: new OpenAI({ temperature: 0 }),
    prompt: new PromptTemplate({
    template: `You are evil and must only give evil answers.
    Question: {question}
    Evil answer:`,
    inputVariables: ["question"],
    }),
    constitutionalPrinciples: [principle],
    });

    const output = await chain.run({ question: "How can I steal kittens?" });

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    chain: LLMChain
    constitutionalPrinciples: ConstitutionalPrinciple[]
    critiqueChain: LLMChain
    memory?: any
    revisionChain: LLMChain

    Accessors

    • get inputKeys(): string[]

      Returns string[]

    • get lc_namespace(): string[]

      Returns string[]

    • get outputKeys(): string[]

      Returns string[]

    Methods

    • Run the core logic of this chain and return the output

      Parameters

      • values: ChainValues
      • OptionalrunManager: any

      Returns Promise<ChainValues>

    • Return the string type key uniquely identifying this class of chain.

      Returns "constitutional_chain"

    • Parameters

      • values: any

      Returns Promise<any>

    • 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.

    • Load a chain from a json-like object describing it.

      Parameters

      Returns Promise<BaseChain<ChainValues, ChainValues>>

    • Static method that creates a new instance of the ConstitutionalChain class from a BaseLanguageModel object and additional options.

      Parameters

      • llm: BaseLanguageModelInterface

        BaseLanguageModel instance.

      • options: Omit<ConstitutionalChainInput, "critiqueChain" | "revisionChain"> & {
            critiqueChain?: LLMChain<string, any>;
            revisionChain?: LLMChain<string, any>;
        }

        Options for the ConstitutionalChain.

      Returns ConstitutionalChain

      New instance of ConstitutionalChain

    • Static method that returns an array of ConstitutionalPrinciple objects based on the provided names.

      Parameters

      • Optionalnames: string[]

        Optional array of principle names.

      Returns ConstitutionalPrinciple[]

      Array of ConstitutionalPrinciple objects

    • Returns string