I built a pipeline of containers using Dagger and GitHub Actions to automate the process of fetching, updating and structuring data to send to an agentic workflow, using LangChain to interact with multiple LLM models that use tools and custom functions to help me answer these questions;

1. Are there trends and habits that my wife and l can learn from our spending and what actionable insights can we take to help better propel us to our financial goals?

2. How can I analyze and summarize information and data necessary to help me make more well informed investment decisions?

With the first pipeline (Budgeting Buddy):

I use a Tiller plugin in Google Sheets to fetch transactions from multiple bank accounts

I use GitHub Actions to trigger a pipeline of containers every 4 days

The first container fetches transactions from the spreadsheet

Another fetches transactions from a MongoDB database, to filter for new transactions

The next container uses a zero-shot classification model; facebook/bart-large-mnli to classify my transactions into different categories (grocery, snacks, takeouts, entertainment, transportation, credit card payment, shopping, personal care and healthcare)

The next container writes this data to a MongoDB database

I reuse a container fetching data from MongoDB, passing the output to a method that structures the data. Specifically, I use Atlas Search to aggregate data on the week and category level

I pass this output to a container that makes a number of OpenAI calls to carry out tasks to generate nuanced advice (based on historical spend) to help me budget

I send this output to another container that sends this feedback back to me via SMS

My Second pipeline (Investment Optimizer):

Fetches data from my Google Sheets (re-using a module from the previous pipeline)

Specifically extract my debt and structure this data

My AI Agent interacts with a few tools (fetch stocks - using a method running inside a Dagger module, plotly- to draw up visualizations to explain the rationale of the decisions made) and custom functions (i. A function that uses data retrieved through search on different types of debts and grades the information ie. Does this type of debt have a high, low or moderate impact on factors that affect my credit score, converting the; high, low and moderate ratings produced by LLM to multipliers. The function uses these multipliers to change the interest rate to factor in not just the interest rate but the ‘importance of the debt’. I have another function that spells out the logic of paying off all minimum payments for my debt then comparing the interest savings from paying off every $1k of debt versus the returns from investing in high performing stocks based on past returns. Percentages are assigned to each option and the remainder of the available money is allocated based on this).

The output is sent through another container to me via email.

I am currently rebuilding the Investment Optimizer to focus purely on helping me make informed investment decisions. This means considering fundamental analysis as opposed to just historical return rates (ie. I am looking at data from 10-Q and 10-K filings over a 10 year period along with search data to build AI Agents that will identify 2 stocks per month and produce a summary of these stocks and factors likely to drive their growth. I would use this information to carry out more research on the stocks and potentially invest if it makes sense).

Dagger Modules:
https://daggerverse.dev/search?q=EmmS21

GitHub:
https://github.com/EmmS21?tab=repositories