Inspiration
Does checking your bank account make your palms sweaty and arms spaghetti?
Don't worry because we feel the same way too, and that's what we're here to change.
When you check your bank account or any banking app, you probably see some categorization like this:

This is ours, and it’s blatantly wrong - $10 on transportation sounds like a fever dream right now :’). Miscategorization in banking/finance apps is rampant when viewing automatic budgeting, which leads to the categorization task falling to the user, creating a manual process with extremely high overhead. This is only one of the poor facets of today's banking apps, with others still full of complex data to interpret, holding people without the required education back.
With smartFin, we’re trying to take the first step to improving both quality of life and equality by bringing smart financial advice catered to your banking data and financial goals--all through our agent, Mr. Wonderful, fine-tuned to be the best version of a finance bro — personalized for you.
What it does
"I spent so much this month". NOT ANYMORE! smartFin uses futuristic applications of Large Langauge Models to asynchronously and synchronously analyze your purchase history, finding the transactions that are pain points for your bank balance.
When in doubt, ask smartFin how one can make smarter financial decisions. If you don't know where to start, no worries! Mr. Wonderful asks some critical questions for you. Your transaction data and relevant inferences made by GPT is safely stored in smartFin's intelligent database, which is specially prompt-engineered to semantically handpick the most relevant, and often the most regrettable :( transactions. Mr. Wonderful, a generative AI agent, then uses his financial prowess to provide expert insights and advice for your financial peace of mind.
For example, a college student studying computer science is tackling a formidable tuition. Through its Vector Database, smartFin will then use semantic search to identify the cause of distress to be eating out every day. Mr.Wonderful would then provide advice such as cooking meals or subscribing to meal plans.
How we built it

Languages: Python ∙ Dart ∙ Swift
Frameworks and Tools: Firebase ∙ Flutter ∙ Flask ∙ LangChain ∙ OpenAI ∙ HuggingFace ∙ PineCone ∙ Plaid
There are a couple of different key engineering modules that this project can be broken down into.
Ingesting Transaction Data and Computing Inferences We begin by authorizing user bank account details from the Plaid API and asking our user's name, age, short-term, and long-term financial goals. Following this, we query purchase history periodically from the Plaid API. We then use prompt engineering to extract critical user psychographic data and spending behavior, along with some metrics of how useful the transaction was.
Embedding and Semantic Search We then embed the transaction data and inferences using HuggingFace's embedding model and GPT-4's inference model. Subsequently, we store these embeddings in PineCone and use its semantic search to find the most relevant transactions.
Generative AI Agent The infrastructure for this was built on LangChain's Generative AI Agent with the intention of making it easier to build more powerful Language Models by connecting them to external knowledge sources. To provide the best chatbot possible, we keep track of the history of a user's conversation and inject it into the chatbot during each user interaction while simultaneously looking up relevant information that can be quickly queried from the vector store. We prompt-engineer our agent's depending on user's long and short-term goals to generate valid questions if the user doesn't pass in questions to the agent. These questions are used to query PineCone, which LangChain's Generative AI Agent then analyses and provides insight into how spending habits can be improved based on the goals provided by the user.
Challenges we ran into
- Inferences from transaction data were initially futile. GPT was summarizing transaction data rather than pulling valuable inferences. Following this, our prompts were improved using prompt-engineering tips and tricks such as Chain of Thought and Few Shots.
- The need to operate under the rate limit when using external LLMs (like OpenAI/LangChain) pushed us to implement learning which data from transactions was most critical for inferences.
- We worked modularly which was great for parallelization/efficiency, but it slowed us down when integrating things together for e2e testing.
Accomplishments that we're proud of
The scope of ways in which we were able to utilize Large Language Models to redefine the way financial advice is provided. Being able to solve the issue of in-personal spending tips is rewarding.
This idea was a byproduct of our own experiences in college and high school -- we found it incredibly difficult to manage finances especially as young adults, and providing a solution to more like us provides great satisfaction.
What we learned
This project was an incredible learning experience for our team as we took on multiple technically complex challenges to reach our ending solution -- something we all thought that we had the potential to use ourselves.
What's next for smartFin
We believe SmartFin will become even more powerful at scale since many users using the product would improve the ChatBot's ability to answer commonly asked questions and also improve the ability to infer from purchases from different vendors.

Log in or sign up for Devpost to join the conversation.