Inspiration
We came up with this idea after brainstorming for several days, and decided that a Bedrock model which analyzes stock data could be the most achievable given that there are public databases that can be accessed with stock data.
What it does
Our project can provide a detailed risk assessment about a given company given a stock index. It tells users key statistics, important information about the company, how the company is viewed in the stock market, and more.
How we built it
Our project calls financial news data from EODHD API, and the U.S. securities and exchange commissions' Edgar API. The raw data from Edgar API contains a lot of redundant data for each company/index, so it is sent to S3 cloud storage where it can be conveniently retrieved by Bedrock. Data from the S3 data storage is fed into bedrock, where a LLM summarizes the important points from the data, also utilizing the EODHD data for further context. The assessments are sent to DynamoDB for flexible and scaleable storage. A Rest API made with Flask-Restful allows the frontend to retrieve data from DynamoDB through the HTTP protocol.
Challenges we ran into
We ran into some issues due to working with unfamiliar technologies, but we were able to figure out how to use Bedrock fairly easily. Creating our fetchers for Edgar API and EODHD was challenging but fairly straightforward. We tried using MongoDB alongside EC2 to store our ML outputs first, before deciding to use to DynamoDB for our database instead, meaning we wasted some time and effort. Also, linking the Flask rest API to the Dynamo DB was challenging, and it required us to work together to combine what we learned. Finally, we ran into some bugs with using Git to commit our changes.
Accomplishments that we're proud of
We're proud that we were able to make effective use of multiple AWS services in Investify. Incorporating S3, Bedrock, and DynamoDB into a single project and utilizing all of them for the same directed task pushed the boundaries of what is possible with AWS, especially given that we had to learn AWS from the ground up.
What we learned
We had to learn how to use S3 and Bedrock, and how to create a database using DynamoDB. Some of us were not very familiar with using API's so we had to learn the basics of making API calls. We had to learn how to make a Rest API using Flask. Also, we were able to advance our skills with using Git to manage projects.
What's next for Investify: AWS Stock Prediction & Risk Management
We can continue to work on improving the accuracy and detail of our responses, to improve user experience. We could add new features to our project by using Bedrock to incorporate other LLMs that allow users to search for indexes that match their preferences, such as level of risk tolerance, diversification, and dividend yield.
Built With
- amazon-dynamodb
- bedrock
- express.js
- flask
- node.js
- s3
- sagemaker
- vscode
Log in or sign up for Devpost to join the conversation.