This project showcases the proof-of-concept for a chatbot integrated inside a banking app downloaded within a partiuclar user's phone.
The chatbot is able to :
- answer questions regarding a customer's transaction history
- provide proper responses if given (1) queries unrelated to finance, and (2) queries outside chatbot's analysis capabilities in natural language.
The chatbot is designed with accuracy as priority, ensuring base LLM agent gives answers that are grounded on the actual customer database (handle hallucination).
The chatbot ensures good user experience and overall data security through the following features :
- language used will automatically adjust to the user's preference (English/Indonesian),
- user is engaged in personal, first-name basis conversation,
- customer can only ever access their own data, rendering prompt injection useless, and
- double-filtering is applied to give as minimal data to LLM as possible.
LLM never accesses the entire user data at once and mathematical processes are performed manually in code. As such, the chatbot's capabilities are limited to : (1) listing, (2) finding max/min, and (3) summation of transactions.
| Type | Example Question |
|---|---|
| listing | Can you list all payments made in Pizza Hut restaurant? |
| summation | What is my spending on groceries since June 2024? |
| max/min | What stores did I purchase my gas at and what's the most I have paid so far? |
In addition, context-saving (memory) is not applied.
The chatbot implementation consist of a two-stage process.
| Process | Description | Outcome |
|---|---|---|
| Prefilter (Stage 1) | Fetches transaction data of the inputted user-id, retrieved identity and language preference, then renames every transaction number category. |
During chatting process, bot will have access to user-specific data only, and can address the user personally. |
| Chatting (Stage 2) | Receives user query, checks using LLM if it is within bot's ability to answer, translates user query to params for manual data retrieval, and formulates final answer with LLM. |
Provides a detailed response to the user as well as the source data. |
User can see the parameters and relevant data used in chatting process for LLM answer transparency.
Illustrative take on the architecture can be seen in documentation/product-pitch.pdf.
See bot in action : trial demo
This demo uses free Gemini account that may limit your experience as queries that can be sent are limited.