Skip to content

Latest commit

 

History

History
130 lines (90 loc) · 3.42 KB

File metadata and controls

130 lines (90 loc) · 3.42 KB

Dialog Prompts

This is a (currently experimental) suite of dialog prompts that uses Microsoft's recognizer text suite to recognize certain types of input during a dialog prompt. Microsoft's Bot Framework team has implemented a handful of prompts using recognizers from the recognizer text suite. This library is meant to fill the gaps.

Installation

You can install this library via PIP:

pip install botbuilder-community-dialogs-prompts

You can then import required types, for example:

   from botbuilder.community.dialogs.prompts import NumberWithUnitPrompt, NumberWithUnitPromptType

Number with Unit

The number with unit prompt allows you to prompt for four different unit types:

  • Currency
  • Temperature
  • Age
  • Dimension (eg. miles / meters)
self._dialogs.add(NumberWithUnitPrompt('numberPrompt',NumberWithUnitPromptType.Currency))

Then, you can call the bot by specifying your PromptOptions and calling PromptAsync.

options = PromptOptions(
                    prompt = Activity(
                        type = ActivityTypes.message, 
                        text = "Enter the curreny info"
                        )
                )
        await step_context.prompt("numberprompt",options)
		

The prompt will return a NumberWithUnitResult.The object contains a value and unit type. For example, if a user enters "twenty three dollars" when you are using the Currency prompt type, the resulting NumberWithUnitResult object will have Unit: "Dollar", Value: "23". Below is an example of how you might use this result.

result = f"currency : {turn_context.result.value} and unit : {turn_context.result.unit}"
await turn_context.send_activity(result)

Number with Type

Number with type allows you to accept numbers from the follow type enum:

  • Ordinal
  • Percentage
self._dialogs.add(NumberWithTypePrompt(numberunit,NumberWithTypePromptType.Ordinal))

The prompt will a return a result based on the NumberWithTypePromptType type. For example , If user enters “eleventh” Ordinal type return the result as 11. Below is an example of how you might use this result.

result = step_context.result
await turn_context.send_activity(result)

Phone Number

The PhoneNumberPrompt will extract a phone number from a message from the user.

self._dialogs.add(PhoneNumberPrompt('phprompt'))

Example

User : My phone number is 1 (877) 609-2233
PhoneNumberPrompt return as 1 (877) 609-2233

Email Address

The EmailPrompt will extract an email address from a message from the user.

self._dialogs.add(EmailPrompt('eprompt'))

Example

User : My email id is r.vinoth@live.com
EmailPrompt return as r.vinoth@live.com

Internet Protocols

The InternetProtocolPrompt will extract one of the following types based on which InternetProtocolPromptType enum value is passed in:

  • IPAddress
  • URL
self._dialogs.add(InternetProtocolPrompt('urlprompt',InternetProtocolPromptType.URL))

Example

User : My favorite web site is http://rvinothrajendran.github.io/
InternetProtocolPrompt return as http://rvinothrajendran.github.io/

GUID

The GUIDPrompt will extract a GUID from a message from the user.

self._dialogs.add(GuidPrompt('gprompt'))

Example

User : my azure id is "7d7b0205-9411-4a29-89ac-b9cd905886fa"
GUIDPrompt return as "7d7b0205-9411-4a29-89ac-b9cd905886fa"