Inspiration
We know that creating plots and graphs could be hard to do sometimes on Excel, especially if you are not as tech savvy or are not familiar with Excel. With Data Dave, we could make these processes easier and simpler just by providing your CSV file and a prompt!
We also wanted Dave to be able to combat one of the main issues with a lot of LLMs: context loss and hallucinations. Dave was designed in mind to be able to take in potentially extremely large CSV files and still output accurate, useful data.
What it does
By providing your CSV file, Dave will interpret your file and provide some background information. He will offer you some suggestions and from there, you could start a chat based conversation with Dave regarding different information in your CSV file. As mentioned, you can also obtain different graphs and charts from your data just by asking Dave to provide it to you.
How we built it
Our site takes advantage of GPT4o's function calling capabilities. The backend is built using Flask and takes advantage Python's numerous data science specific libraries. It also handles calls to the API and hosts the WebSocket connection which links it to the frontend.
The frontend is built on TypeScript and React. It parses output in Markdown and is the location where users can enter their CSV files.
Challenges we ran into
One challenge we ran into was deploying our website. Our site uses WebSockets for communication between the frontend and backend. Unfortunately for us, Vercel and several other free hosting platforms do not support hosting sites that take advantage of WebSockets. As a temporary workaround, we decided to host on Ngrok. This makes our site publicly accessible while still being hosted locally.
Subsequently, we had trouble linking our Python Libraries as they were not being properly installed initially to our virtual environment.
Accomplishments that we're proud of
We are proud of making this app able to provide users with useful information not just in the form of text but also through graphs and visuals. We are also proud of the way we implemented WebSockets to allow the upload of images.
What we learned
- Data visualization in Python
- This was one our team member's first time working with Python/LLMs!
- Lots more experience handling WebSockets
What's next for Data Dave
- Updating to multi-source inputs
- A wider library of functions that Dave can use
- Spread work among more specialized agents
- More secure deployment
Built With
- flask
- matplotlib
- ngrok
- openai
- pandas
- python
- react
- typescript
- vite
- websockets
Log in or sign up for Devpost to join the conversation.