Skip to content

Latest commit

 

History

History
274 lines (201 loc) · 12.7 KB

README.md

File metadata and controls

274 lines (201 loc) · 12.7 KB

Dev - A Virtual Banking Assistant

Today’s customers are extremely demanding, expecting fast, inspiring and relevant banking experiences in every moment of the banking journey. Virtual Assistance is the heart for bankers succeeding in delivering relevant customer experience, which is a continuous perpetual challenge, highly correlated to optimizing conversion, sales and increased revenue.
The virtual financial assistant Dev is designed to help customers more easily manage their money. Within the interactive interface, Dev converse to answer FAQs, provide reward and account balances, spending summaries, refund confirmations and credit scores. He can also identify duplicate charges and send bill reminders.
Explore the docs »

View Demo · Report Bug · View Presentation

Table of Contents
  1. About The Project
  2. Getting Started
  3. Try This Sample
  4. Emulator Testing
  5. Deploying
  6. Flow Chart
  7. Presentation
  8. Implementation
  9. Demo Video
  10. Contact
  11. Further Reading

About The Project

DEV Activity Chart

The virtual financial assistant Dev is designed to help customers more easily manage their money. Within the interactive interface, Dev provides reward and account balances, spending summaries, refund confirmations and credit scores. He can also identify duplicate charges and send bill reminders.

Dev is designed for the customers to :

  • Help customers more easily manage their money.
  • Check on a loan status.
  • Facilitating payments with mail alert.
  • Getting instant answers to FAQs.

Key Features of the Product :

  • Instant Response with automatic time-to-time pop-ups (alerts).
  • Proactively reaches out if a bill is higher than normal.
  • Suspects fraud and sends mail alert.
  • Provides reward and account balances, spending summaries, refund confirmations and credit scores.

(back to top)

Built With

Bot Framework v4 core bot sample.

This bot has been created using Bot Framework, it shows how to:

  • Use LUIS to implement core AI capabilities
  • Implement a multi-turn conversation using Dialogs
  • Handle user interruptions for such things as Help or Cancel
  • Prompt for and validate requests for information from the user

(back to top)

Prerequisites

This sample requires prerequisites in order to run.

Overview

This bot uses LUIS, an AI based cognitive service, to implement language understanding.

Install .NET Core CLI

  • .NET Core SDK version 3.1

    # determine dotnet version
    dotnet --version
  • If you don't have an Azure subscription, create a free account.

  • Install the latest version of the Azure CLI tool. Version 2.0.54 or higher.

Create a LUIS Application to enable language understanding

The LUIS model for this example can be found under CognitiveModels/BankLuisModel.json and the LUIS language model setup, training, and application configuration steps can be found here.

Once you created the LUIS model, update appsettings.json with your LuisAppId, LuisAPIKey and LuisAPIHostName.

  "LuisAppId": "Your LUIS App Id",
  "LuisAPIKey": "Your LUIS Subscription key here",
  "LuisAPIHostName": "Your LUIS App region here (i.e: westus.api.cognitive.microsoft.com)"

(back to top)

To try this sample

  • In a terminal, navigate to Dev-BankBot

    # change into project folder
    cd DevVirtualBankingAssistant
  • Run the bot from a terminal or from Visual Studio, choose option A or B.

    A) From a terminal

    # run the bot
    dotnet run

    B) Or from Visual Studio

    • Launch Visual Studio
    • File -> Open -> Project/Solution
    • Navigate to DevVirtualBankingAssistant folder
    • Select DevVirtualBankingAssistant.csproj file
    • Press F5 to run the project

Testing the bot using Bot Framework Emulator

Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots on localhost or running remotely through a tunnel.

  • Install the Bot Framework Emulator version 4.5.0 or greater from here

Connect to the bot using Bot Framework Emulator

(back to top)

The LUIS Bank Transaction Concept

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

  • Check balance
  • Make a transfer

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

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.

(back to top)

Deploy the bot to Azure

To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.

(back to top)

Presentation

DEV BankingBot Presentation.pptx

(back to top)

Flow Chart

Dev_FlowChart

Implementation Video

https://youtu.be/g6uBCjApQ0w

Loom.Message.-.21.September.2022.mp4

Demo Video

https://youtu.be/uHREvKiU0g8

Dev.Virtual.Financial.Assistant.1.mp4
Time Stamp of Bot Feature Demo
  1. 1:29 - Demo Starts
  2. 1:41 - OTP Verification
  3. 2:21 - QnA Maker/ Language Studio Question Answering
  4. 2:36 - Transaction (Microsoft Cosmo DB)
  5. 3:57 - Detect Language (Azure Language Detection + Language Translation)
  6. 4:50 - Cheque Transaction (Azure Computer Vision + Azure Object Detection)
  7. 6:15 - Khata Book (Azure Cosmo DB)
  8. 7:09 - Invoice Analyzer (Azure Form Recognizer)
  9. 8:05 - Service Products (Azure Cosmo DB)
  10. (9:11) Cancel | Quit Intent
  11. 11:29 - Register Complaint
  12. 12:47 - Schedule Meeting (Microsoft Power Automate + Microsoft Teams)
  13. 14:15 - Exit (Azure Sentiment Analysis)
  14. 15:11 - Glance of the backend running code
  15. 15:32 - Hosted (Azure Bot Service)
  16. 16:04 - LUIS for transaction n checking balance

Contact

Mayank Gupta - @MayankGuptaCse1 - mayank.guptacse1@gmail.com

Project Link: https://github.com/mayank-cse/DEV-A-Virtual-Banking-Assistant

(back to top)

Further reading