Inspiration
We were inspired by Bunq's mission "bank of the free" where users are put first. For these users we wanted to create something that could help them in their daily lives as well as making it a key feature of Bunq.
What it does
Troy is a small AI that tracks your purchase history, finds subscriptions and looks at your live purchases. It features comparison of your live purchases, whether this is a subcription, clothing or even food. If its a subscription it will check if you do not have any similar subscriptions currently (for example you pay for Bunq but purchase a subscription of Revolut) it will prompt (Are you sure you want to purchase xxx because you already have a similar subscription to Bunq). For other purchases we prompt whether it is a normal occurence based on previous purchases, lets say you spend 200 euros on food each month normally but suddenly spend 150 euros on day 1 of the month then it should prompt "Hey, you spend more on food this month, just letting you know!" We do this by utilising a few Agents. Agent 0 is a Query researcher, it looks at the transaction and finds whether this is a subscription, offline purchase (physical) or online purchase. It does this by prompting to the LLM. It forwards the query to the designated agent, one which can process subscriptions and looks whether there are similar subscriptions and one which process online purchases and looks whether these could be fraudulent, or giving a suggestion of purchase budgets like mentioned previously. Finally there is an agent that process offline purchases, since these were made with a physical card we assume these are not fraudulent charges, so it will less often give a fraudulent charge error.
How we built it
We created different agents, which should all be experts in their own thing. The agents communicate with the LLM (in our case LLama through the NVIDIA API) through OpenAI compatible calls. We used Python and Flask for the backend and made some static pages using HTML to quickly show the prompts for the front-end. For a final implementation we want to integrate Troy inside the Bunq application in a notification type manner rather than an entire extra chat.
Challenges we ran into
We were having challenges with the LLM not responding in the required format. Eventually we gave the LLM a format to only respond in this manner which eventually worked.
Accomplishments that we're proud of
We are proud that it works mostly, there are some tweaks necessary still to succesfully find the patterns of budgets according to previous months. We were however limited in User Data which made it not possible to finish it.
What we learned
We learned how to utilise the LLM api to create a sort of chatbot, as well as creating good prompts for AI to follow. Since this was our first time using the Bunq API we believe in this short period of time we became experts in manipulating it (We were debugging and learning for a long time).
What's next for Troy
As mentioned earlier Troy should be inside Bunq. It should function as a fully autonomous extra feature that relies on the data of the user. It must of course be encrypted in some sort of way which still has to be thought through. We could add extra features like savings recommendation which could stop the daily visits to starbucks seen in the transaction history and other things where there is an easy solution.
Log in or sign up for Devpost to join the conversation.