UNPKG

@microsoft/botbuilder-m365

Version:

M365 extensions for Microsoft BotBuilder, Alpha release.

74 lines 3.82 kB
/** * @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