botbuilder-dialogs package

ChoiceFactory

一组实用工具函数,用于帮助设置包含选项列表的“消息”活动的格式。

ComponentDialog

包含其他子对话的对话的基类。

Configurable

所有可配置类的基类。

Dialog

定义所有对话的核心行为。

DialogContainer

一组对话框的容器。

DialogContext

与特定 DialogSet 相关的当前对话轮次的上下文。

DialogContextError

包含额外对话上下文(包括对话堆栈)的错误。

DialogEvents

表示与对话的“生命周期”相关的事件。

DialogManager

运行对话系统的类。

DialogSet

可以相互调用的一组相关对话。

DialogTurnStateConstants

定义对话轮次状态常量。

DialogsBotComponent

机器人对话的机器人组件。

DialogsComponentRegistration

使对话框组件可用于系统注册功能。

DialogPath

定义可用对话的路径。

DialogStateManager

DialogStateManager 管理内存作用域和路径解析程序。

AliasPathResolver

Maps aliasXXX -> path.xxx ($foo => dialog.foo) 。

AtAtPathResolver

Maps @@ => turn.recognized.entitites.xxx 数组。

AtPathResolver

Maps @@ => turn.recognized.entitites.xxx[0]

DollarPathResolver

Maps $xxx => dialog.xxx

HashPathResolver

Maps #xxx => turn.recognized.intents.xxx

PercentPathResolver

Maps %xxx => class.xxx (aka activeDialog.properties.xxx)

ScopePath

定义可用范围的路径。

BotStateMemoryScope

基于 BotState 的内存范围的基类。

ClassMemoryScope

ClassMemoryScope 映射“class” -> dc.activeDialog.properties

ConversationMemoryScope

范围限定为当前会话的内存。

DialogClassMemoryScope

DialogClassMemoryScope 映射“dialogClass” -> dc.parent.activeDialog.properties

DialogContextMemoryScope

DialogContextMemoryScope 映射“dialogcontext”-> 属性。

DialogMemoryScope

DialogMemoryScope 映射“dialog”-> dc.parent.activeDialog.state || dc.activeDialog.state

MemoryScope

所有内存范围的抽象基类。

SettingsMemoryScope

SettingsMemoryScope 映射“settings” -> dc.context.turnState['settings']

ThisMemoryScope

ThisMemoryScope 映射“this” -> dc.activeDialog.state

TurnMemoryScope

TurnMemoryScope 表示作用域为当前轮次的内存。

UserMemoryScope

作用域为当前用户的内存。

ThisPath

定义传递到活动对话的路径。

TurnPath

定义可执行轮次的路径。

ActivityPrompt

等待收到活动。

AttachmentPrompt

提示用户上传图像等附件。

ChoicePrompt

提示用户从选项列表中选择。

ConfirmPrompt

提示用户使用“是”或“否”响应确认某些内容。

DateTimePrompt

提示用户输入日期/时间表达式。

NumberPrompt

提示用户输入数字。

OAuthPrompt

创建一个新提示,要求用户使用 Bot Frameworks 单一登录 (SSO) 服务登录。

Prompt

所有提示的基类。

PromptCultureModels

确认和选择提示中当前支持的区域性模型的类容器。

TextPrompt

提示用户输入一些文本。

Recognizer

识别器基类。

SkillDialog

一个专用对话,可以包装对技能的远程调用。

WaterfallDialog

瀑布式对话是经过优化的对话框,可提示用户提出一系列问题。

WaterfallStepContext

传入到 的 WaterfallStep上下文对象。

接口

BeginSkillDialogOptions

具有 SkillDialog 的对话框参数的类。

ChoiceFactoryOptions

用于调整选项列表格式的其他选项。

Choice

选项的实例,可用于向用户呈现选择或识别用户选取的内容。

FindChoicesOptions

用于控制 由 执行的识别的选项 findChoices()

FoundChoice

返回 findChoices()的结果。

FindValuesOptions

用于控制在用户话语中识别选项的方式的基本搜索选项。

FoundValue

INTERNAL:返回 findValues()的原始搜索结果。

SortedValue

INTERNAL:一个值,可进行排序,但仍引用其原始位置在源数组中。 函数 findChoices() 将传入的选项扩展到单个 SortedValue 实例,并将其传递给 findValues()Choice每个人都可能会导致多个应搜索的同义词,因此此数据结构允许我们传递每个同义词作为值进行搜索,同时维护值来自的选择的索引。

ModelResult

实体识别器(如 recognizeChoices())返回的外部结果。

Token

返回 TokenizerFunction的单个标记。

Converter

转换器将对象从一种类型转换为另一种类型。

DialogConfiguration
DialogEvent
DialogInstance

包含堆栈上对话实例的状态信息。

DialogTurnResult

表示对话上下文尝试开始、继续或以其他方式操作一个或多个对话的结果。

DialogState

包含特定 DialogSet 的对话框状态(有关对话堆栈状态的信息)。

DialogManagerConfiguration
DialogManagerResult
DialogDependencies
ComponentMemoryScopes

用于枚举内存范围的接口。

ComponentPathResolvers

用于声明路径解析程序的接口。

DialogStateManagerConfiguration
PathResolver

版权所有 (c) Microsoft Corporation。 保留所有权利。 根据 MIT 许可证获得许可。

ChoiceDefaultsChoicePrompt
ChoiceDefaultsConfirmPrompt
DateTimeResolution

返回 DateTimePrompt的结果。

OAuthPromptSettings

用于配置实例的设置 OAuthPrompt

PromptOptions

所有提示都支持的基本配置选项。

PromptRecognizerResult

提示识别器函数返回的结果。

PromptValidatorContext

传递给自定义 PromptValidator的上下文信息。

PromptCultureModel
RecognizerConfiguration
SkillDialogOptions
TemplateInterface

定义用于将数据绑定到 T 的模板接口。

WaterfallStepInfo

传递给构造函数的值 WaterfallStepContext

类型别名

TokenizerFunction

可传递给 recognizeChoices()findChoices()findValues()的备用断字符的签名。

type TokenizerFunction = (text: string, locale?: string) => Token[];
ConverterFactory
PromptValidator

用于提供自定义提示验证器的函数签名。

type PromptValidator<T> = (prompt: PromptValidatorContext<T>) => Promise<boolean>;
WaterfallStep

单个瀑布步骤的函数签名。

type WaterfallStep<O extends object = {}> = (step: WaterfallStepContext<O>) => Promise<DialogTurnResult>;

枚举

DialogReason

指示调用对话方法的原因。

DialogTurnStatus

表示对话上下文尝试开始、继续或以其他方式操作一个或多个对话后对话堆栈的状态。 另请参阅

ListStyle

控制向用户显示 或 是/否 选项ConfirmPrompt的方式ChoicePrompt

函数

findChoices(string, string | Choice[], FindChoicesOptions)

用于识别话语中的选择的中级搜索函数。

findValues(string, SortedValue[], FindValuesOptions)

INTERNAL:低级别函数,用于搜索话语中的一组值。 更高级别的函数(如 findChoices()recognizeChoices() )在此函数之上分层。 在大多数情况下,它更容易只调用一个更高级别的函数,但此函数包含推动选择识别的模糊搜索算法。

recognizeChoices(string, string | Choice[], FindChoicesOptions)

用于识别用户话语中的选择的高级函数。

defaultTokenizer(string, string)

在空格和标点符号上中断的简单 tokenizer。

getActiveDialogContext(DialogContext)

以递归方式向上遍进 DC 堆栈以查找活动 DC。

internalRun(TurnContext, string, DialogContext, DialogStateManagerConfiguration)
isFromParentToSkill(TurnContext)

确定技能是否充当技能父级。

runDialog(Dialog, TurnContext, StatePropertyAccessor<DialogState>)

从给定上下文和访问器运行对话。

shouldSendEndOfConversationToParent(TurnContext, DialogTurnResult)

用于确定是否应向父级发送 EoC 的帮助程序。

isComponentMemoryScopes(unknown)

检查 ComponentRegistration 是否为 ComponentMemoryScopes

isComponentPathResolvers(unknown)

检查 ComponentRegistration 是否为 ComponentPathResolvers

createConnectorClient(TurnContext, string, ClaimsIdentity, string)
exchangeToken(TurnContext, OAuthPromptSettings, TokenExchangeRequest)
getSignInResource(TurnContext, OAuthPromptSettings)
getUserToken(TurnContext, OAuthPromptSettings, string)
signOutUser(TurnContext, OAuthPromptSettings)

函数详细信息

findChoices(string, string | Choice[], FindChoicesOptions)

用于识别话语中的选择的中级搜索函数。

function findChoices(utterance: string, choices: string | Choice[], options?: FindChoicesOptions): ModelResult<FoundChoice>[]

参数

utterance

string

要搜索的文本或用户话语。 对于传入的“message”活动,只需使用 context.activity.text即可。

choices

string | Choice[]

要搜索的选项列表。

options
FindChoicesOptions

(用于调整所执行的搜索的可选) 选项。

返回

找到的选项的列表,按最相关的第一个排序。

注解

此函数分层在上面 findValues() ,只需确定在调用 findValues() 以执行实际搜索之前应搜索的所有同义词。 函数 recognizeChoices() 分层在此函数之上,并添加了按索引或列表中的序号位置选择选项的功能。 如果不希望通过 recognizeChoices()执行索引和序号位置识别,则调用此特定函数非常有用。

const { findChoices } = require('botbuilder-choices');

const choices = ['red', 'green', 'blue'];
const utterance = context.activity.text;
const results = findChoices(utterance, choices);
if (results.length == 1) {
    await context.sendActivity(`I like ${results[0].resolution.value} too!`);
} else if (results.length > 1) {
    const ambiguous = results.map((r) => r.resolution.value);
    await context.sendActivity(ChoiceFactory.forChannel(context, ambiguous, `Which one?`));
} else {
    await context.sendActivity(ChoiceFactory.forChannel(context, choices, `I didn't get that... Which color?`));
}

findValues(string, SortedValue[], FindValuesOptions)

INTERNAL:低级别函数,用于搜索话语中的一组值。 更高级别的函数(如 findChoices()recognizeChoices() )在此函数之上分层。 在大多数情况下,它更容易只调用一个更高级别的函数,但此函数包含推动选择识别的模糊搜索算法。

function findValues(utterance: string, values: SortedValue[], options?: FindValuesOptions): ModelResult<FoundValue>[]

参数

utterance

string

要搜索的文本或用户话语。

values

SortedValue[]

要搜索的值的列表。

options
FindValuesOptions

(用于调整所执行的搜索的可选) 选项。

返回

找到的值的列表。

recognizeChoices(string, string | Choice[], FindChoicesOptions)

用于识别用户话语中的选择的高级函数。

function recognizeChoices(utterance: string, choices: string | Choice[], options?: FindChoicesOptions): ModelResult<FoundChoice>[]

参数

utterance

string

要搜索的文本或用户话语。 对于传入的“message”活动,只需使用 context.activity.text即可。

choices

string | Choice[]

要搜索的选项列表。

options
FindChoicesOptions

(用于调整所执行的搜索的可选) 选项。

返回

找到的选项的列表,按最相关的第一个排序。

注解

这在 函数之上 findChoices() 分层,并添加了逻辑,让用户按索引 (可以说出“一个”来选取 choice[0]) 或序号位置, (他们可以说出“第二个”来选取 choice[1]。) 按以下顺序识别用户话语:

  • 使用 findChoices()按名称。
  • 按 1 的基于序号位置。
  • 按 1 的基于索引位置。
const { recognizeChoices } = require('botbuilder-choices');

const choices = ['red', 'green', 'blue'];
const utterance = context.activity.text;
const results = recognizeChoices(utterance, choices);
if (results.length == 1) {
    await context.sendActivity(`I like ${results[0].resolution.value} too!`);
} else if (results.length > 1) {
    const ambiguous = results.map((r) => r.resolution.value);
    await context.sendActivity(ChoiceFactory.forChannel(context, ambiguous, `Which one?`));
} else {
    await context.sendActivity(ChoiceFactory.forChannel(context, choices, `I didn't get that... Which color?`));
}

defaultTokenizer(string, string)

在空格和标点符号上中断的简单 tokenizer。

function defaultTokenizer(text: string, _locale?: string): Token[]

参数

text

string

输入文本。

_locale

string

可选,用于标识输入文本的区域设置。

返回

Token[]

标记列表。

注解

唯一的规范化是标记小写。 开发人员可以使用自己的函数包装此 tokenizer,以执行其他规范化,例如 词干化

const { recognizeChoices, defaultTokenizer } = require('botbuilder-choices');
const stemmer = require('stemmer');

function customTokenizer(text, locale) {
   const tokens = defaultTokenizer(text, locale);
   tokens.forEach((t) => {
       t.normalized = stemmer(t.normalized);
   });
   return tokens;
}

const choices = ['red', 'green', 'blue'];
const utterance = context.activity.text;
const results = recognizeChoices(utterance, choices, { tokenizer: customTokenizer });

getActiveDialogContext(DialogContext)

以递归方式向上遍进 DC 堆栈以查找活动 DC。

function getActiveDialogContext(dialogContext: DialogContext): DialogContext

参数

dialogContext
DialogContext

(xref:botbuilder-dialogs。DialogContext) 当前轮次与用户的对话。

返回

活动 DialogContext

internalRun(TurnContext, string, DialogContext, DialogStateManagerConfiguration)

function internalRun(context: TurnContext, dialogId: string, dialogContext: DialogContext, dialogStateManagerConfiguration?: DialogStateManagerConfiguration): Promise<DialogTurnResult>

参数

context

TurnContext

轮次的 TurnContext

dialogId

string

对话框 ID。

dialogContext
DialogContext

当前会话轮次的 DialogContext

dialogStateManagerConfiguration
DialogStateManagerConfiguration

对话框状态管理器的配置。

返回

Promise<DialogTurnResult>

解析为对话轮次结果的承诺。

isFromParentToSkill(TurnContext)

确定技能是否充当技能父级。

function isFromParentToSkill(context: TurnContext): boolean

参数

context

TurnContext

(xref:botbuilder-core。TurnContext) 与用户当前轮次聊天的对象。

返回

boolean

一个布尔值,表示技能是否充当技能父级。

runDialog(Dialog, TurnContext, StatePropertyAccessor<DialogState>)

从给定上下文和访问器运行对话。

function runDialog(dialog: Dialog, context: TurnContext, accessor: StatePropertyAccessor<DialogState>): Promise<void>

参数

dialog
Dialog

要运行的 对话框

context

TurnContext

(xref:botbuilder-core。TurnContext) 与用户当前轮次聊天的对象。

accessor

StatePropertyAccessor<DialogState>

用于访问 BotState 对象中创建的状态属性的已定义方法。

返回

Promise<void>

shouldSendEndOfConversationToParent(TurnContext, DialogTurnResult)

用于确定是否应向父级发送 EoC 的帮助程序。

function shouldSendEndOfConversationToParent(context: TurnContext, turnResult: DialogTurnResult): boolean

参数

context

TurnContext

轮次的 TurnContext

turnResult
DialogTurnResult

对话框轮次结果。

返回

boolean

如果应发送 EoC,则为 True,否则为 false。

isComponentMemoryScopes(unknown)

检查 ComponentRegistration 是否为 ComponentMemoryScopes

function isComponentMemoryScopes(component: unknown): boolean

参数

component

unknown

组件注册。

返回

boolean

键入检查结果。

isComponentPathResolvers(unknown)

检查 ComponentRegistration 是否为 ComponentPathResolvers

function isComponentPathResolvers(component: unknown): boolean

参数

component

unknown

组件注册。

返回

boolean

键入检查结果。

createConnectorClient(TurnContext, string, ClaimsIdentity, string)

function createConnectorClient(context: TurnContext, serviceUrl: string, claimsIdentity: ClaimsIdentity, audience: string): Promise<ConnectorClient>

参数

context

TurnContext

serviceUrl

string

claimsIdentity

ClaimsIdentity

audience

string

返回

Promise<ConnectorClient>

exchangeToken(TurnContext, OAuthPromptSettings, TokenExchangeRequest)

function exchangeToken(context: TurnContext, settings: OAuthPromptSettings, tokenExchangeRequest: TokenExchangeRequest): Promise<TokenResponse>

参数

context

TurnContext

tokenExchangeRequest

TokenExchangeRequest

返回

Promise<TokenResponse>

getSignInResource(TurnContext, OAuthPromptSettings)

function getSignInResource(context: TurnContext, settings: OAuthPromptSettings): Promise<SignInUrlResponse>

参数

context

TurnContext

返回

Promise<SignInUrlResponse>

getUserToken(TurnContext, OAuthPromptSettings, string)

function getUserToken(context: TurnContext, settings: OAuthPromptSettings, magicCode: string): Promise<TokenResponse>

参数

context

TurnContext

magicCode

string

返回

Promise<TokenResponse>

signOutUser(TurnContext, OAuthPromptSettings)

function signOutUser(context: TurnContext, settings: OAuthPromptSettings): Promise<void>

参数

context

TurnContext

返回

Promise<void>