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 full)

Implements

Constructors

Properties

chain: LLMChain<string, any>
constitutionalPrinciples: ConstitutionalPrinciple[]
critiqueChain: LLMChain<string, any>
revisionChain: LLMChain<string, any>
memory?: any

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.