Skip to content

An app to share your investment portfolio with your friends!

License

Notifications You must be signed in to change notification settings

Chubbyman2/portfolio.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

portfolio.io

Introduction

Have you ever wanted to showcase your portfolio and its performance to your friends? What about discovering new portfolio strategies from others? Well then, portfolio.io is the platform for you! Introducing a new place to share your investment portfolio with your friends, test new strategies, and gain new insights through the power of LLM retrieval-augmented generation!

Getting Started

To get started, you'll need a Supabase account and a table. See .env.example for more details. Make sure to either disable RLS (not recommended) or add a new policy!

You'll also need a MongoDB account with a collection, and then set up your vector index (see vector_index.json). This will be used for the RAG chatbot feature.

Prerequisites

edgartools==2.22.1
langchain==0.1.20
langchain-mongodb==0.1.5
langchain-openai==0.1.7
openai==1.30.1
plotly==5.20.0
pymongo==4.6.3
python-dotenv==1.0.1
streamlit==1.33.0
st_pages==0.4.5
supabase==1.0.3
yfinance==0.2.12

Technologies and Packages

Streamlit

Streamlit was used to create the web app frontend and UI.

Supabase

Supabase was used to store the information for each user (emails, passwords, portfolio details, etc), in order to display analytics regarding portfolio performances.

yfinance

yfinance was used to retrieve historical stock information.

edgartools

edgartools was the package used to retrieve EDGAR filings, specifically listed company 10-K's and 10-Q's, to embed within MongoDB Atlas Vector Store.

MongoDB

MongoDB was used to store the vector embeddings, as well as create the index for vector search.

LangChain

LangChain was used to actually perform the embedding and vector search within the code.

OpenAI

OpenAI's embedding model (text-embedding-ada-002) and the LLM for retrieval Q&A (text-davinci-003) were integrated with LangChain to power the AI Stock Insights feature.

To Do

  • Create friends feature, where you can view your friends' portfolio performances
  • Create better frontend and improve UI

Acknowledgements

The AI Stock Insights feature was based on the Mango10K RAG chatbot built by my team, Mango10K, for MongoDB's 2024 GenAI Hackathon.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Releases

No releases published

Packages

No packages published

Languages