40 lines
1.4 KiB
TypeScript
40 lines
1.4 KiB
TypeScript
import { SerializedConstitutionalPrinciple } from "../serde.js";
|
|
/**
|
|
* Class representing a constitutional principle with critique request,
|
|
* revision request, and name properties.
|
|
* @example
|
|
* ```typescript
|
|
* 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 = ConstitutionalChain.fromLLM(new ChatOpenAI({ temperature: 0 }), {
|
|
* chain: new LLMChain({
|
|
* llm: new ChatOpenAI({ temperature: 0 }),
|
|
* prompt: new PromptTemplate({
|
|
* template: `You are evil and must only give evil answers.\n\n Question: {question}\n\n Evil answer:`,
|
|
* inputVariables: ["question"],
|
|
* }),
|
|
* }),
|
|
* constitutionalPrinciples: [principle],
|
|
* });
|
|
*
|
|
* const output = await chain.invoke({ question: "How can I steal kittens?" });
|
|
* ```
|
|
*/
|
|
export declare class ConstitutionalPrinciple {
|
|
critiqueRequest: string;
|
|
revisionRequest: string;
|
|
name: string;
|
|
constructor({ critiqueRequest, revisionRequest, name, }: {
|
|
critiqueRequest: string;
|
|
revisionRequest: string;
|
|
name?: string;
|
|
});
|
|
serialize(): SerializedConstitutionalPrinciple;
|
|
}
|
|
export declare const PRINCIPLES: {
|
|
[key: string]: ConstitutionalPrinciple;
|
|
};
|