Revolut launches its new AI assistant AIR to UK customers
Back to Tutorials
techTutorialbeginner

Revolut launches its new AI assistant AIR to UK customers

April 9, 20261 views6 min read

Learn to build a basic financial chatbot similar to Revolut's new AI assistant AIR, understanding how AI financial assistants work through hands-on coding.

Introduction

In this tutorial, you'll learn how to create a basic chatbot interface similar to Revolut's new AI assistant AIR. We'll build a simple financial chatbot that can answer common questions about spending insights, subscriptions, and basic banking operations. This tutorial will teach you fundamental concepts of chatbot development using Python and natural language processing, giving you a hands-on understanding of how AI assistants like AIR work behind the scenes.

Prerequisites

Before starting this tutorial, you should have:

  • Basic understanding of Python programming
  • Python 3.6 or higher installed on your computer
  • Internet connection for downloading required packages
  • Text editor or IDE (like VS Code or PyCharm)

Step-by-Step Instructions

1. Setting Up Your Python Environment

1.1 Install Required Packages

First, we need to install the necessary Python packages for our chatbot. Open your terminal or command prompt and run:

pip install nltk flask

This installs Natural Language Toolkit (NLTK) for text processing and Flask for creating a web interface.

1.2 Create Project Directory

Create a new folder for your project and navigate to it:

mkdir financial_chatbot
 cd financial_chatbot

2. Creating the Chatbot Logic

2.1 Initialize the Chatbot

Create a new file called chatbot.py and start by importing required libraries:

import nltk
import random
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords

# Download required NLTK data
nltk.download('punkt')
nltk.download('stopwords')

# Define responses for different intents
responses = {
    'greeting': [
        "Hello! I'm your financial assistant. How can I help you today?",
        "Hi there! What would you like to know about your finances?"
    ],
    'spending_insights': [
        "Your spending this month is 20% higher than last month. You spent £350 on dining out.",
        "You've been spending more on subscriptions. Consider reviewing your £12/month Netflix subscription."
    ],
    'subscription_monitoring': [
        "You have 3 active subscriptions: Netflix (£12), Spotify (£10), and Amazon Prime (£7.99).",
        "Your subscription costs are £29.99 per month. Consider canceling unused services."
    ],
    'card_management': [
        "Your card is working normally. You have £250 available balance.",
        "Your card has been used 5 times this week. No unusual activity detected."
    ],
    'default': [
        "I'm not sure I understand. Can you ask about spending insights, subscriptions, or card management?",
        "Could you rephrase that? I can help with financial questions."
    ]
}

2.2 Create Intent Recognition Function

Add this function to identify what type of question the user is asking:

def recognize_intent(user_input):
    user_input = user_input.lower()
    
    if any(word in user_input for word in ['hello', 'hi', 'hey']):
        return 'greeting'
    elif any(word in user_input for word in ['spend', 'expense', 'spending', 'money']):
        return 'spending_insights'
    elif any(word in user_input for word in ['subscription', 'sub', 'bill', 'paid']):
        return 'subscription_monitoring'
    elif any(word in user_input for word in ['card', 'account', 'balance', 'money']):
        return 'card_management'
    else:
        return 'default'

2.3 Create Response Function

Now add the function that will generate appropriate responses:

def get_response(user_input):
    intent = recognize_intent(user_input)
    return random.choice(responses[intent])

3. Building the Web Interface

3.1 Create Flask Web Application

Create a new file called app.py with the following code:

from flask import Flask, render_template, request, jsonify
from chatbot import get_response

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

@app.route('/get_response', methods=['POST'])
def chatbot_response():
    user_message = request.json['message']
    bot_response = get_response(user_message)
    return jsonify({'response': bot_response})

if __name__ == '__main__':
    app.run(debug=True)

3.2 Create HTML Template

Create a folder named templates and inside it create index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Financial Assistant</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        #chatbox { width: 500px; height: 400px; border: 1px solid #ccc; padding: 10px; overflow-y: scroll; }
        #user-input { width: 400px; padding: 10px; }
        #send-btn { padding: 10px 20px; }
        .user-message { background-color: #e3f2fd; padding: 10px; margin: 5px; border-radius: 5px; }
        .bot-message { background-color: #f5f5f5; padding: 10px; margin: 5px; border-radius: 5px; }
    </style>
</head>
<body>
    <h1>Financial Assistant</h1>
    <div id="chatbox"></div>
    <input type="text" id="user-input" placeholder="Ask about your finances...">
    <button id="send-btn" onclick="sendMessage()">Send</button>

    <script>
        function sendMessage() {
            const input = document.getElementById('user-input');
            const message = input.value;
            
            if (message.trim() === '') return;
            
            // Display user message
            addMessage(message, 'user');
            input.value = '';
            
            // Get bot response
            fetch('/get_response', {
                method: 'POST',
                headers: {'Content-Type': 'application/json'},
                body: JSON.stringify({message: message})
            })
            .then(response => response.json())
            .then(data => {
                addMessage(data.response, 'bot');
            });
        }
        
        function addMessage(message, sender) {
            const chatbox = document.getElementById('chatbox');
            const messageDiv = document.createElement('div');
            messageDiv.className = sender + '-message';
            messageDiv.textContent = message;
            chatbox.appendChild(messageDiv);
            chatbox.scrollTop = chatbox.scrollHeight;
        }
        
        // Allow Enter key to send message
        document.getElementById('user-input').addEventListener('keypress', function(e) {
            if (e.key === 'Enter') {
                sendMessage();
            }
        });
    </script>
</body>
</html>

4. Running Your Chatbot

4.1 Start the Application

Open your terminal, navigate to your project folder, and run:

python app.py

You should see output indicating the Flask server is running on http://127.0.0.1:5000

4.2 Test Your Chatbot

Open your web browser and go to http://127.0.0.1:5000. You'll see a simple chat interface. Try asking questions like:

  • "What are my spending insights?"
  • "How much do I spend on subscriptions?"
  • "How is my card doing?"
  • "Hello"

The chatbot will respond based on the keywords you've programmed it to recognize.

5. Understanding How AIR Works

5.1 Natural Language Processing

This simple chatbot demonstrates how AI assistants like AIR work. The system first processes your message (tokenizes it), then identifies the intent (what you're asking about), and finally generates an appropriate response. In AIR's case, this process happens much more efficiently with advanced machine learning models.

5.2 Intent Classification

Our chatbot uses keyword matching to determine what type of question you're asking. Real AI assistants use more sophisticated techniques like neural networks to understand context and intent more accurately.

5.3 Response Generation

Instead of simple pre-written responses, AIR uses advanced language models that can generate natural, context-aware replies. Our example provides basic responses, but in practice, these would come from complex databases or generative AI models.

Summary

In this tutorial, you've built a basic financial chatbot that mimics the functionality of Revolut's AIR assistant. You learned how to set up a Python environment, create intent recognition, and build a web interface for chatting with your assistant. While this is a simplified version, it demonstrates the core concepts behind how AI financial assistants work. The real AIR assistant uses advanced machine learning, large language models, and access to your actual financial data to provide personalized insights and assistance.

As you continue learning, you could enhance this chatbot by integrating with real financial APIs, adding more sophisticated NLP libraries like spaCy, or connecting it to actual user data for personalized responses.

Source: TNW Neural

Related Articles