@microsoft/botbuilder-m365
Version:
M365 extensions for Microsoft BotBuilder, Alpha release.
74 lines • 3.82 kB
TypeScript
/**
* @module botbuilder-m365
*/
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
import { TurnContext } from 'botbuilder';
import { DefaultTurnState } from './DefaultTurnStateManager';
import { Moderator } from './Moderator';
import { PredictedDoCommand, Planner } from './Planner';
import { PromptManager, PromptTemplate } from './Prompts';
import { TurnState } from './TurnState';
export declare type PromptSelector<TState extends TurnState> = (Context: TurnContext, state: TState) => Promise<string | PromptTemplate>;
export interface PredictedDoCommandAndHandler<TState> extends PredictedDoCommand {
handler: (context: TurnContext, state: TState, data?: Record<string, any>, action?: string) => Promise<boolean>;
}
export interface AIOptions<TState extends TurnState> {
planner: Planner<TState>;
promptManager: PromptManager<TState>;
moderator?: Moderator<TState>;
prompt?: string | PromptTemplate | PromptSelector<TState>;
history?: Partial<AIHistoryOptions>;
}
export interface AIHistoryOptions {
trackHistory: boolean;
maxTurns: number;
maxTokens: number;
lineSeparator: string;
userPrefix: string;
assistantPrefix: string;
assistantHistoryType: 'text' | 'planObject';
}
export interface ConfiguredAIOptions<TState extends TurnState> {
planner: Planner<TState>;
promptManager: PromptManager<TState>;
moderator: Moderator<TState>;
prompt?: string | PromptTemplate | ((Context: TurnContext, state: TState) => Promise<string | PromptTemplate>);
history: AIHistoryOptions;
}
export declare class AI<TState extends TurnState = DefaultTurnState> {
private readonly _actions;
private readonly _options;
static readonly UnknownActionName = "___UnknownAction___";
static readonly FlaggedInputActionName = "___FlaggedInput___";
static readonly FlaggedOutputActionName = "___FlaggedOutput___";
static readonly RateLimitedActionName = "___RateLimited___";
static readonly PlanReadyActionName = "___PlanReady___";
static readonly DoCommandActionName = "___DO___";
static readonly SayCommandActionName = "___SAY___";
constructor(options: AIOptions<TState>);
get moderator(): Moderator<TState>;
get options(): ConfiguredAIOptions<TState>;
get planner(): Planner<TState>;
get prompts(): PromptManager<TState>;
/**
* Registers a handler for a named action.
*
*
* Actions can be triggered by a planner returning a DO command.
*
* @param {string | string[]} name Unique name of the action.
* @param {Promise<boolean>} handler Function to call when the action is triggered.
* @param {boolean} allowOverrides Optional. If true, default and/or existing handlers can be overridden.
* @returns {this} The application instance for chaining purposes.
*/
action<TEntities extends Record<string, any> | undefined>(name: string | string[], handler: (context: TurnContext, state: TState, entities: TEntities, action?: string) => Promise<boolean>, allowOverrides?: boolean): this;
chain(context: TurnContext, state: TState, prompt?: string | PromptTemplate, options?: Partial<AIOptions<TState>>): Promise<boolean>;
completePrompt(context: TurnContext, state: TState, prompt: string | PromptTemplate, options?: Partial<AIOptions<TState>>): Promise<string | undefined>;
createSemanticFunction(name: string, template?: PromptTemplate, options?: Partial<AIOptions<TState>>): (context: TurnContext, state: TState) => Promise<any>;
doAction<TData = Record<string, any>>(context: TurnContext, state: TState, action: string, data?: TData): Promise<boolean>;
private configureOptions;
}
//# sourceMappingURL=AI.d.ts.map