Inspiration
We spoke to the data engineers from CBRE and realized how codependent end users are on engineers and IT support staff for technical-related issues. This situation can cause loss of revenue and even delay projects. We decided to create this project because we realized how vital it is to communicate technical concepts to non-technical end users. As computer science majors, we know how difficult it can be to constantly have to ask for help, and google your way through endless forums trying to figure out the answer. This is why we created the Chatbot in order to help end users who constantly rely on constantly organizing information and reports gain access to an instant solution.
What it does
The first feature is to retrieve information from a dataset and display a single value answer. The user should be able to enter a question related to the dataset, and then the chatbot should generate and output a graph related to the dataset based on the user’s request.
How we built it
We used a Kaggle dataset (https://www.kaggle.com/datasets/aungpyaeap/supermarket-sales) to retrieve sample data pertaining to sales and business operations. Once the user enters their request into the text field on the website, we call the GPT 3.5 LLM to generate and parse a SQL query based on the user’s request. Generating the query dynamically executes a SQL statement using the SQLite library in Python, which outputs the desired result, whether it be a numerical data, categorical data, or generating a graph. More particularly, we plotted the graphs using Python libraries such as Seaborn and MatPlotLib based on the generated query. Then, we output this result from the backend to the website.
Challenges we ran into
On the frontend, we initially had a difficult time getting started, planning out the design, and trying to picture out how the user would want to see it. We also had a lot of difficulty using flex and rearranging our components in different places. On the backend, using flask to connect javascript and python was strenuous. Our biggest and most time consuming challenge was integrating the frontend with the backend. Specifically for the frontend, element displacement was a huge issue as most of the react components, so we had to spend a lot of time working to fix that!
Accomplishments that we're proud of
We’re definitely proud of ourselves because it was some of our team’s first time doing web development and building frontend in React.js. Additionally, we used Flask while building our backend for the first time; Figuring out how to route a python server with the react frontend was one of our biggest accomplishments.
What we learned
It was our very first time incorporating a large language model into an application, so we were able to learn and successfully implement API calls, react components, routing POST/GET, and even SQL queries.
What's next for ReportFairy
Some future ideas we want to implement are creating a third aspect that would implement predictive analysis based on current data by running ML models. And we also want to focus on building a more user-friendly and company-specific UI for its clients. As mentioned earlier, we also want to generate more complex tables and graphs using predictive analysis.
Log in or sign up for Devpost to join the conversation.