Class representing a chain for moderating text using the OpenAI Moderation API. It extends the BaseChain class and implements the OpenAIModerationChainInput interface.

const moderation = new ChatOpenAIModerationChain({ throwError: true });

const badString = "Bad naughty words from user";

try {
const { output: moderatedContent, results } = await moderation.call({
input: badString,
});

if (results[0].category_scores["harassment/threatening"] > 0.01) {
throw new Error("Harassment detected!");
}

const model = new OpenAI({ temperature: 0 });
const promptTemplate = "Hello, how are you today {person}?";
const prompt = new PromptTemplate({
template: promptTemplate,
inputVariables: ["person"],
});
const chain = new LLMChain({ llm: model, prompt });
const response = await chain.call({ person: moderatedContent });
console.log({ response });
} catch (error) {
console.error("Naughty words detected!");
}

Hierarchy (view full)

Implements

  • OpenAIModerationChainInput

Constructors

Properties

caller: AsyncCaller
client: OpenAIClient
clientConfig: ClientOptions
inputKey: string = "input"
outputKey: string = "output"
throwError: boolean
memory?: any
openAIApiKey?: string

Use "apiKey" instead.

openAIOrganization?: string

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.