All Projects → martinkearn → Bot Banko

martinkearn / Bot Banko

Licence: mit
Sample for using Luis with Bot Framework V4 in a simple banking scenario

Projects that are alternatives of or similar to Bot Banko

Holobot
HoloLens bot demo
Stars: ✭ 26 (-7.14%)
Mutual labels:  bot-framework, cognitive-services
Mr Realtime Translator
Real-time translation services in Mixed Reality. Core pieces to get audio from the mic in Unity and stream over a websocket to the Azure Translator API and process the responses - as you speak!
Stars: ✭ 22 (-21.43%)
Mutual labels:  cognitive-services
Poshbot
Powershell-based bot framework
Stars: ✭ 410 (+1364.29%)
Mutual labels:  bot-framework
Opsdroid
🤖 An open source chat-ops bot framework
Stars: ✭ 563 (+1910.71%)
Mutual labels:  bot-framework
Botbuilder Python
The Microsoft Bot Framework provides what you need to build and connect intelligent bots that interact naturally wherever your users are talking, from text/sms to Skype, Slack, Office 365 mail and other popular services.
Stars: ✭ 457 (+1532.14%)
Mutual labels:  bot-framework
Botman
A framework agnostic PHP library to build chat bots
Stars: ✭ 5,538 (+19678.57%)
Mutual labels:  bot-framework
Chat Bubble
Simple chatbot UI for the Web with JSON scripting 👋🤖🤙
Stars: ✭ 370 (+1221.43%)
Mutual labels:  bot-framework
Speechtotext Websockets Java
SDK & Sample to do speech recognition using websockets in Java
Stars: ✭ 11 (-60.71%)
Mutual labels:  cognitive-services
Azure Sdk For Java
This repository is for active development of the Azure SDK for Java. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/en-us/java/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-java.
Stars: ✭ 834 (+2878.57%)
Mutual labels:  cognitive-services
Python Poloniex
Poloniex API wrapper for Python 2.7 & 3
Stars: ✭ 557 (+1889.29%)
Mutual labels:  bot-framework
Slacker
Slack Bot Framework
Stars: ✭ 495 (+1667.86%)
Mutual labels:  bot-framework
Botbuilder Js
Welcome to the Bot Framework SDK for JavaScript repository, which is the home for the libraries and packages that enable developers to build sophisticated bot applications using JavaScript.
Stars: ✭ 469 (+1575%)
Mutual labels:  bot-framework
Botbuilder Dotnet
Welcome to the Bot Framework SDK for .NET repository, which is the home for the libraries and packages that enable developers to build sophisticated bot applications using .NET.
Stars: ✭ 631 (+2153.57%)
Mutual labels:  bot-framework
Discord Akairo
A bot framework for Discord.js.
Stars: ✭ 433 (+1446.43%)
Mutual labels:  bot-framework
C4bot
Chat bot that plays Connect Four with you
Stars: ✭ 21 (-25%)
Mutual labels:  bot-framework
Botbuilder Tools
Welcome to the Bot Framework Tools repository, which is the home for a set of tools for developers building bots with the Microsoft Bot Framework
Stars: ✭ 402 (+1335.71%)
Mutual labels:  bot-framework
Stealth
An open source Ruby framework for text and voice chatbots. 🤖
Stars: ✭ 481 (+1617.86%)
Mutual labels:  bot-framework
Node Telegram Bot Api
Telegram Bot API for NodeJS
Stars: ✭ 5,782 (+20550%)
Mutual labels:  bot-framework
Cog
Bringing the power of the command line to chat
Stars: ✭ 910 (+3150%)
Mutual labels:  bot-framework
Cadscenario personalisation
This is a end to end Personalisation business scenario
Stars: ✭ 10 (-64.29%)
Mutual labels:  cognitive-services

Banko

This repo is based on a preview version of the Bot Framework and is not a good reference right now. Work is underway to upgrade to the final version and this message will be removed when that work is complete. Use the official samples in the meantime: https://github.com/Microsoft/BotBuilder-Samples

This is a very simple bot used to demonstrate several Cognitive Services Luis capabilities with the C# Bot Framework V4 SDK and Azure Bot Service.

This was written in July 2018 whilst the V4 SDK is still 'preview' so may not be accurate in the future.

This sample demonstrates:

  • Luis Intent detection
    • Using LuisRecognizer not LuisRecognizerMiddleware
    • Using Luis in middleware means every single message will go via Luis which is not necessary and costly in this scenario because once we have the intent and initial entities we no longer require Luis
  • Luis entity extraction; getting the entities we have from the initial Luis utterance
  • Entity completion; using bot dialogs to complete entities that were missing from initial Luis utterance
  • Basic bot dialogs with waterfall steps

This sample leans heavily on the ContosoCafe-5-DialogsWithLUISEntities example but simplifies it and focuses on just the Luis aspects.

The Banko Bot Concept

The bot is built around a very typical banking scenario which has two main capabilities:

  • Check balance
  • Make a transfer

Check Balance

Simple intent that displays a made-up balance for the user's account

To invoke the Check Balance feature

  • "Check my balance"; no entities just the Balance intent

Using Make a Transfer

To make a transfer, the user must provide four different entities. These can be included in the initial utterance; if they are not, the bot will use a dialog to complete them:

  • AccountLabel; a simple Luis entity to represent the nick name for the account to transfer from i.e. 'Joint', 'Savings', 'Current' or 'Sole'
  • Money; a pre-built Luis Currency entity to represent the amount to be transferred
  • Date; a pre-built Luis DatetimeV2 entity to represent the date the transfer should take place
  • Payee; a simple Luis entity to represent the label for the payment recipient. This will typically be a name or company name (The Luis model has very limited training here, so only 'Martin Kearn', 'Amy Griffiths', 'John Jones' and 'BT' are likely to work as a payee)

The Make a Transfer feature can be invoked using natural language including some, all or none or the required entities. Here are some examples:

  • "I want to make a transfer"; the Transfer intent without any entities.
  • "Transfer from the joint account"; the Transfer intent with the AccountLabel entity.
  • "Transfer £20 from the joint account"; the Transfer intent with the AccountLabel and Money entities.
  • "Transfer £20 from the joint account on saturday"; the Transfer intent with the AccountLabel, Money and Date entities.
  • "Transfer £20 from the joint account to martin kearn on saturday"; the Transfer intent with the AccountLabel, Money, Date and Payee entities.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].