/** * @module teams-ai */ /** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ import { Plan } from '../planners'; import { TurnState } from '../TurnState'; import { TurnContext } from 'botbuilder'; import { OpenAIClient, CreateModerationResponseResultsInner } from '../internals'; import { Moderator } from './Moderator'; /** * Options for the OpenAI based moderator. */ export interface OpenAIModeratorOptions { /** * OpenAI API key */ apiKey: string; /** * Which parts of the conversation to moderate. */ moderate: 'input' | 'output' | 'both'; /** * Optional. OpenAI organization. */ organization?: string; /** * Optional. OpenAI endpoint. */ endpoint?: string; /** * Optional. OpenAI model to use. */ model?: string; /** * Optional. Azure Content Safety API version. */ apiVersion?: string; } /** * A moderator that uses OpenAI's moderation API to review prompts and plans for safety. * @remarks * This moderation can be configure to review the input from the user, output from the model, or both. * @template TState Optional. Type of the applications turn state. */ export declare class OpenAIModerator implements Moderator { private readonly _options; private readonly _client; /** * Creates a new instance of the OpenAI based moderator. * @param {OpenAIModeratorOptions} options Configuration options for the moderator. */ constructor(options: OpenAIModeratorOptions); /** * Reviews an incoming utterance for safety violations. * @param {TurnContext} context - Context for the current turn of conversation. * @param {TState} state - Application state for the current turn of conversation. * @returns {Promise} An undefined value to approve the prompt or a new plan to redirect to if not approved. */ reviewInput(context: TurnContext, state: TState): Promise; /** * Reviews the SAY commands generated by the planner for safety violations. * @param {TurnContext} context - Context for the current turn of conversation. * @param {TState} state - Application state for the current turn of conversation. * @param {Plan} plan - Plan generated by the planner. * @returns {Promise} The plan to execute. Either the current plan passed in for review or a new plan. */ reviewOutput(context: TurnContext, state: TState, plan: Plan): Promise; get options(): OpenAIModeratorOptions; protected createClient(options: OpenAIModeratorOptions): OpenAIClient; protected createModeration(input: string, model?: string): Promise; } //# sourceMappingURL=OpenAIModerator.d.ts.map