We've open sourced a new starter pack for building AI assistants in financial services or banking. The Financial Services demo bot can handle common banking tasks like checking an account balance, paying a credit card bill, or transferring money to another account. Check out the code on GitHub.
You can use this demo assistant as a starting point for your own banking chatbot, or get ideas for features you might want to implement. It's open source and free for you to copy or submit contributions. We're also building starter packs for other use cases: check out our helpdesk chatbot, which handles common tasks for an IT helpdesk, or the medicare locator, which finds nearby hospitals and nursing facilities.
What can it do?
The Financial Services demo bot can help users with three main tasks:
- Transferring money to another person's account
- Checking earning or spending history, with a specific vendor or overall
- Paying a credit card bill
Each of these skills uses forms to collect required pieces of information, like the account where funds should be transferred and the amount. The assistant can also answer questions about account balance (taking into account any funds that have been transferred) and transaction fees. If you're curious how these transactions work, you can review the code in the actions.py file.
The Financial Services demo bot recognizes the names of four banks: Gringots, Justice Bank, Credit All, and Iron Bank, and it can search transactions from three vendors: Target, Starbucks, and Amazon. When paying a credit card bill, you can also ask the assistant to pay off the minimum balance or the current balance in addition to a dollar amount.
User: Need to pay off my credit card Bot: Towards which credit card account do you want to make a payment? User: Gringots Bot: How much do you want to pay? User: Pay off my minimum balance please Bot: For which date would you like to schedule the payment? User: Please schedule it for the first of next month Bot: Would you like to schedule a payment of $85 (your minimum balance) towards your Gringots account for 12:00AM, Friday May 01, 2020? [Yes][No, cancel the transaction] User: Yes Bot: Payment of 85 (your minimum balance) towards your Gringots account scheduled to be paid at 12:00AM, Friday May 01, 2020
If a user switches from one task to another midway through the transaction, the Financial Services demo assistant can switch context and then return to the previous task.
Use it as an example for...
The Financial Services demo bot uses forms extensively, which makes it a great example of using forms in Rasa. It also uses pre-trained entity extractors like SpacyEntityExtractor and DucklingHTTPExtractor. The chatbot uses spaCy to extract proper names like Melinda or Akela when transferring funds to another account, and it uses Duckling to extract dates and time frames when searching transaction history.
The repo includes a Dockerfile for running the action server, and includes a sample CI/CD workflow that builds and pushes the latest version of the action server to Dockerhub. Both of these are useful examples for deploying an action server and keeping it updated.
Clone or fork the Financial Services demo assistant on GitHub. You can find instructions for installing dependencies, training the model, and running the assistant locally in the README.
From there, you can customize and extend the starter pack to fit your use case. For example, you can hook into backend services or real-time APIs, add new intents and training data, or connect to a messaging channel.
Whether you're building a banking chatbot or just looking for Rasa chatbot examples that have some complexity and can handle a few real-world tasks, we hope the Financial Services demo bot gives you a head start on your development. This starter pack is part of our efforts to make it easier for developers to get started building chatbots and virtual assistants for a variety of use cases, so look out for more starter packs in the future.
Tell us how you're using the Financial Services demo assistant in the forum. We want to know what you're building, how it's going, and what kinds of starter packs you'd like to see next!