QnAMakerDialog class

A dialog that supports multi-step and adaptive-learning QnA Maker services.

Extends

WaterfallDialog

Constructors

QnAMakerDialog(string, string, string, Activity, number, QnASuggestionsActivityFactory, string, number, Activity, RankerTypes, QnAMakerMetadata[], string, JoinOperator, boolean, boolean, ServiceType)

Initializes a new instance of the QnAMakerDialog class.

QnAMakerDialog(string, string, string, Activity, number, string, string, number, Activity, RankerTypes, QnAMakerMetadata[], string, JoinOperator, boolean, boolean, ServiceType)

Initializes a new instance of the QnAMakerDialog class.

Properties

$kind
activeLearningCardTitle

Gets or sets the card title to use when showing active learning options to the user. Note: If suggestionsActivityFactory is passed in, this member is unused.

cardNoMatchResponse

Gets or sets the template to send to the user if they select the no match option on an active learning card.

cardNoMatchText

Gets or sets the button text to use with active learning options, allowing a user to indicate non of the options are applicable. Note: If suggestionsActivityFactory is passed in, this member is required.

displayPreciseAnswerOnly

Gets or sets a value indicating whether the dialog response should display only precise answers.

enablePreciseAnswer

Gets or sets a value indicating whether to include precise answer in response.

endpointKey

Gets or sets the QnA Maker endpoint key to use to query the knowledge base.

filters

Gets or sets the metadata and sources used to filter results.

hostname

Gets or sets the QnA Maker host URL for the knowledge base.

includeUnstructuredSources

Gets or sets a value indicating whether to include unstructured sources in search for answers.

isTest

Gets or sets a value indicating whether gets or sets environment of knowledgebase to be called.

knowledgeBaseId

Gets or sets the QnA Maker knowledge base ID to query.

logPersonalInformation

Gets or sets the flag to determine if personal information should be logged in telemetry.

noAnswer

Gets or sets the template to send to the user when QnA Maker does not find an answer.

qnaServiceType

Question answering service type - qnaMaker or language

rankerType

Gets or sets the QnA Maker ranker type to use.

strictFilters

Gets or sets the QnA Maker metadata with which to filter or boost queries to the knowledge base, or null to apply none.

strictFiltersJoinOperator

Gets or sets a value - AND or OR - logical operation on list of metadata

threshold

Gets or sets the threshold for answers returned, based on score.

top

Gets or sets the maximum number of answers to return from the knowledge base.

Inherited Properties

EndOfTurn

Gets a default end-of-turn result.

id
telemetryClient

Methods

beginDialog(DialogContext, object)

Called when the dialog is started and pushed onto the dialog stack.

continueDialog(DialogContext)

Called when the dialog is continued, where it is the active dialog and the user replies with a new Activity.

getConverter(Object)

Inherited Methods

addStep(WaterfallStep<O>)

Adds a new step to the waterfall.

configure(Record<string, unknown>)

Fluent method for configuring the object.

endDialog(TurnContext, DialogInstance, DialogReason)

Called when the dialog is ending.

getVersion()

Gets the dialog version, composed of the ID and number of steps.

onDialogEvent(DialogContext, DialogEvent)

Called when an event has been raised, using DialogContext.emitEvent(), by either the current dialog or a dialog that the current dialog started.

repromptDialog(TurnContext, DialogInstance)

When overridden in a derived class, reprompts the user for input.

resumeDialog(DialogContext, DialogReason, any)

Called when a child WaterfallDialog completed its turn, returning control to this dialog.

Constructor Details

QnAMakerDialog(string, string, string, Activity, number, QnASuggestionsActivityFactory, string, number, Activity, RankerTypes, QnAMakerMetadata[], string, JoinOperator, boolean, boolean, ServiceType)

Initializes a new instance of the QnAMakerDialog class.

new QnAMakerDialog(knowledgeBaseId?: string, endpointKey?: string, hostname?: string, noAnswer?: Activity, threshold?: number, suggestionsActivityFactory?: QnASuggestionsActivityFactory, cardNoMatchText?: string, top?: number, cardNoMatchResponse?: Activity, rankerType?: RankerTypes, strictFilters?: QnAMakerMetadata[], dialogId?: string, strictFiltersJoinOperator?: JoinOperator, enablePreciseAnswer?: boolean, displayPreciseAnswerOnly?: boolean, qnaServiceType?: ServiceType)

Parameters

knowledgeBaseId

string

The ID of the QnA Maker knowledge base to query.

endpointKey

string

The QnA Maker endpoint key to use to query the knowledge base.

hostname

string

The QnA Maker host URL for the knowledge base, starting with "https://" and ending with "/qnamaker".

noAnswer

Activity

(Optional) The activity to send the user when QnA Maker does not find an answer.

threshold

number

(Optional) The threshold above which to treat answers found from the knowledgebase as a match.

suggestionsActivityFactory
QnASuggestionsActivityFactory

(xref:botbuilder-ai.QnASuggestionsActivityFactory) used for custom Activity formatting.

cardNoMatchText

string

(Optional) The button text to use with active learning options, allowing a user to indicate none of the options are applicable.

top

number

(Optional) Maximum number of answers to return from the knowledge base.

cardNoMatchResponse

Activity

(Optional) The activity to send the user if they select the no match option on an active learning card.

rankerType
RankerTypes
strictFilters

QnAMakerMetadata[]

(Optional) QnA Maker metadata with which to filter or boost queries to the knowledge base; or null to apply none.

dialogId

string

(Optional) Id of the created dialog. Default is 'QnAMakerDialog'.

strictFiltersJoinOperator
JoinOperator

join operator for strict filters

enablePreciseAnswer

boolean

displayPreciseAnswerOnly

boolean

qnaServiceType
ServiceType

QnAMakerDialog(string, string, string, Activity, number, string, string, number, Activity, RankerTypes, QnAMakerMetadata[], string, JoinOperator, boolean, boolean, ServiceType)

Initializes a new instance of the QnAMakerDialog class.

new QnAMakerDialog(knowledgeBaseId?: string, endpointKey?: string, hostname?: string, noAnswer?: Activity, threshold?: number, activeLearningCardTitle?: string, cardNoMatchText?: string, top?: number, cardNoMatchResponse?: Activity, rankerType?: RankerTypes, strictFilters?: QnAMakerMetadata[], dialogId?: string, strictFiltersJoinOperator?: JoinOperator, enablePreciseAnswer?: boolean, displayPreciseAnswerOnly?: boolean, qnaServiceType?: ServiceType)

Parameters

knowledgeBaseId

string

The ID of the QnA Maker knowledge base to query.

endpointKey

string

The QnA Maker endpoint key to use to query the knowledge base.

hostname

string

The QnA Maker host URL for the knowledge base, starting with "https://" and ending with "/qnamaker".

noAnswer

Activity

(Optional) The activity to send the user when QnA Maker does not find an answer.

threshold

number

(Optional) The threshold above which to treat answers found from the knowledgebase as a match.

activeLearningCardTitle

string

(Optional) The card title to use when showing active learning options to the user, if active learning is enabled.

cardNoMatchText

string

(Optional) The button text to use with active learning options, allowing a user to indicate none of the options are applicable.

top

number

(Optional) Maximum number of answers to return from the knowledge base.

cardNoMatchResponse

Activity

(Optional) The activity to send the user if they select the no match option on an active learning card.

rankerType
RankerTypes
strictFilters

QnAMakerMetadata[]

(Optional) QnA Maker metadata with which to filter or boost queries to the knowledge base; or null to apply none.

dialogId

string

(Optional) Id of the created dialog. Default is 'QnAMakerDialog'.

strictFiltersJoinOperator
JoinOperator

join operator for strict filters

enablePreciseAnswer

boolean

displayPreciseAnswerOnly

boolean

qnaServiceType
ServiceType

Property Details

$kind

static $kind: string

Property Value

string

activeLearningCardTitle

Gets or sets the card title to use when showing active learning options to the user. Note: If suggestionsActivityFactory is passed in, this member is unused.

activeLearningCardTitle: StringExpression

Property Value

StringExpression

cardNoMatchResponse

Gets or sets the template to send to the user if they select the no match option on an active learning card.

cardNoMatchResponse: TemplateInterface<Partial<Activity>, DialogStateManager>

Property Value

TemplateInterface<Partial<Activity>, DialogStateManager>

cardNoMatchText

Gets or sets the button text to use with active learning options, allowing a user to indicate non of the options are applicable. Note: If suggestionsActivityFactory is passed in, this member is required.

cardNoMatchText: StringExpression

Property Value

StringExpression

displayPreciseAnswerOnly

Gets or sets a value indicating whether the dialog response should display only precise answers.

displayPreciseAnswerOnly: boolean

Property Value

boolean

enablePreciseAnswer

Gets or sets a value indicating whether to include precise answer in response.

enablePreciseAnswer: boolean

Property Value

boolean

endpointKey

Gets or sets the QnA Maker endpoint key to use to query the knowledge base.

endpointKey: StringExpression

Property Value

StringExpression

filters

Gets or sets the metadata and sources used to filter results.

filters: Filters

Property Value

hostname

Gets or sets the QnA Maker host URL for the knowledge base.

hostname: StringExpression

Property Value

StringExpression

includeUnstructuredSources

Gets or sets a value indicating whether to include unstructured sources in search for answers.

includeUnstructuredSources: boolean

Property Value

boolean

isTest

Gets or sets a value indicating whether gets or sets environment of knowledgebase to be called.

isTest: boolean

Property Value

boolean

knowledgeBaseId

Gets or sets the QnA Maker knowledge base ID to query.

knowledgeBaseId: StringExpression

Property Value

StringExpression

logPersonalInformation

Gets or sets the flag to determine if personal information should be logged in telemetry.

logPersonalInformation: BoolExpression

Property Value

BoolExpression

noAnswer

Gets or sets the template to send to the user when QnA Maker does not find an answer.

noAnswer: TemplateInterface<Partial<Activity>, DialogStateManager>

Property Value

TemplateInterface<Partial<Activity>, DialogStateManager>

qnaServiceType

Question answering service type - qnaMaker or language

qnaServiceType: ServiceType

Property Value

rankerType

Gets or sets the QnA Maker ranker type to use.

rankerType: EnumExpression<RankerTypes>

Property Value

EnumExpression<RankerTypes>

strictFilters

Gets or sets the QnA Maker metadata with which to filter or boost queries to the knowledge base, or null to apply none.

strictFilters: QnAMakerMetadata[]

Property Value

strictFiltersJoinOperator

Gets or sets a value - AND or OR - logical operation on list of metadata

strictFiltersJoinOperator: JoinOperator

Property Value

threshold

Gets or sets the threshold for answers returned, based on score.

threshold: NumberExpression

Property Value

NumberExpression

top

Gets or sets the maximum number of answers to return from the knowledge base.

top: IntExpression

Property Value

IntExpression

Inherited Property Details

EndOfTurn

Gets a default end-of-turn result.

static EndOfTurn: DialogTurnResult

Property Value

DialogTurnResult

Remarks

This result indicates that a dialog (or a logical step within a dialog) has completed processing for the current turn, is still active, and is waiting for more input.

Inherited From Dialog.EndOfTurn

id

id: string

Property Value

string

Inherited From Dialog.id

telemetryClient

telemetryClient: BotTelemetryClient

Property Value

BotTelemetryClient

Inherited From Dialog.telemetryClient

Method Details

beginDialog(DialogContext, object)

Called when the dialog is started and pushed onto the dialog stack.

function beginDialog(dc: DialogContext, options?: object): Promise<DialogTurnResult>

Parameters

dc

DialogContext

The DialogContext for the current turn of conversation.

options

object

(Optional) Initial information to pass to the dialog.

Returns

Promise<DialogTurnResult>

A promise resolving to the turn result

continueDialog(DialogContext)

Called when the dialog is continued, where it is the active dialog and the user replies with a new Activity.

function continueDialog(dc: DialogContext): Promise<DialogTurnResult>

Parameters

dc

DialogContext

The DialogContext for the current turn of conversation.

Returns

Promise<DialogTurnResult>

A Promise representing the asynchronous operation.

getConverter(Object)

function getConverter(property: Object): Converter | ConverterFactory

Parameters

property

Object

Properties that extend QnAMakerDialogConfiguration.

Returns

Converter | ConverterFactory

The expression converter.

Inherited Method Details

addStep(WaterfallStep<O>)

Adds a new step to the waterfall.

function addStep(step: WaterfallStep<O>): this

Parameters

step

WaterfallStep<O>

Asynchronous step function to call.

Returns

this

Waterfall dialog for fluent calls to addStep().

Remarks

All step functions should be asynchronous and return a DialogTurnResult. The WaterfallStepContext passed into your function derives from DialogContext and contains numerous stack manipulation methods which return a DialogTurnResult so you can typically just return the result from the DialogContext method you call.

The step function itself can be either an asynchronous closure:

const helloDialog = new WaterfallDialog('hello');

helloDialog.addStep(async (step) => {
    await step.context.sendActivity(`Hello World!`);
    return await step.endDialog();
});

A named async function:

async function helloWorldStep(step) {
    await step.context.sendActivity(`Hello World!`);
    return await step.endDialog();
}

helloDialog.addStep(helloWorldStep);

Or a class method that's been bound to its this pointer:

helloDialog.addStep(this.helloWorldStep.bind(this));

Inherited From WaterfallDialog.addStep

configure(Record<string, unknown>)

Fluent method for configuring the object.

function configure(config: Record<string, unknown>): this

Parameters

config

Record<string, unknown>

Configuration settings to apply.

Returns

this

The Configurable after the operation is complete.

Inherited From Configurable.configure

endDialog(TurnContext, DialogInstance, DialogReason)

Called when the dialog is ending.

function endDialog(context: TurnContext, instance: DialogInstance, reason: DialogReason): Promise<void>

Parameters

context

TurnContext

Context for the current turn of conversation.

instance

DialogInstance

The instance of the current dialog.

reason

DialogReason

The reason the dialog is ending.

Returns

Promise<void>

Inherited From WaterfallDialog.endDialog

getVersion()

Gets the dialog version, composed of the ID and number of steps.

function getVersion(): string

Returns

string

Dialog version, composed of the ID and number of steps.

Inherited From WaterfallDialog.getVersion

onDialogEvent(DialogContext, DialogEvent)

Called when an event has been raised, using DialogContext.emitEvent(), by either the current dialog or a dialog that the current dialog started.

function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>

Parameters

dc

DialogContext

The dialog context for the current turn of conversation.

e

DialogEvent

The event being raised.

Returns

Promise<boolean>

True if the event is handled by the current dialog and bubbling should stop.

Inherited From Dialog.onDialogEvent

repromptDialog(TurnContext, DialogInstance)

When overridden in a derived class, reprompts the user for input.

function repromptDialog(_context: TurnContext, _instance: DialogInstance): Promise<void>

Parameters

_context

TurnContext

The context object for the turn.

_instance

DialogInstance

Current state information for this dialog.

Returns

Promise<void>

Remarks

Derived dialogs that support validation and re-prompt logic should override this method. By default, this method has no effect.

The DialogContext calls this method when the current dialog should re-request input from the user. This method is implemented for prompt dialogs.

See also

Inherited From Dialog.repromptDialog

resumeDialog(DialogContext, DialogReason, any)

Called when a child WaterfallDialog completed its turn, returning control to this dialog.

function resumeDialog(dc: DialogContext, reason: DialogReason, result?: any): Promise<DialogTurnResult>

Parameters

dc

DialogContext

The DialogContext for the current turn of the conversation.

reason

DialogReason

(xref:botbuilder-dialogs.DialogReason) why the dialog resumed.

result

any

Optional, value returned from the dialog that was called. The type of the value returned is dependent on the child dialog.

Returns

Promise<DialogTurnResult>

A Promise representing the asynchronous operation.

Inherited From WaterfallDialog.resumeDialog