Inspiration
The inspiration for Toyota Go stemmed from my own personal experience - wasting several hours tagging along with my parents as they hopped around dealerships around the state trying to see if they could find the exact model in the color that they wanted. We did this at most places, only to find out that vehicle wasn’t even in stock at that dealership, let alone the color, and they would have to ship it to their dealership and would take two weeks for this. There was only inconsistent information, some markups higher, some missing features, growing up seeing this, my head was lost. Thus the goal for Toyota Go was to design a simple interface that could save users time while making it easy to explore different Toyota models. With AI being in everything we touch or see these days, I also took this project to use AI for my first time and see how it provides real-time insights as I search for vehicle information. Although there are many sites listing cars, none provide an explanation of how the car aligns with the user’s lifestyle. Moreover, none provide real-world availability at the dealer level. This is the opportunity that led me down using Gemini’s API and combining that with an NLP model I’ve used in a previous project to provide a better car-buying experience.
What I Learned
- AI Integration: I’ve never used a full AI api before mostly because when I tried using it I was always paywalled out. However, figuring out how to use Google’s Gemini’s free tier API was a really unique experience that showed me how to prompt engineers to get the results you want. This was to create a short description of each model. More than prompt engineering however, I didn’t want the Gemini output to fully erase the summary of data collected from my NLP model analyzing Reddit Comment data through its respective API, so fine tuning the balance between that was a skill I learned, where I show my summary first and then allow the AI to do it’s magic if the user chooses to click on it.
- Sentiment Analysis & Big Data: To guarantee the summaries and search results I created with my AI system actually represented real-world views, I conducted sentiment analysis on more than 60,000 Reddit comments about Toyota vehicles. I utilized a sentence transformer to determine the sentiment of each comment to understand the overall sentiment in terms of positive, negative, and neutral views. This way, I could provide an accurate summary of a car’s pros without misinforming readers.
- Data Handling: Learning how to parse and normalize data from CSV files into the inventory system has shown me how to create strong data handling pipelines. I juggled between json, python, html, css, and probably some other things along the way just to figure out how to get the search button to consistently work.
- User Experience Design: I translated the user experience Toyota delivers and tried making the interface as simple as possible, as that is what Toyota loves to do. Make something simple that’ll last a lifetime, without creating a cluttered system..
- API Challenges: Integration of Gemini AI, Reddit data set, and live dealer availability posed some challenges. I added a failsafe mechanism as well to ensure that users are never left staring at a blank screen.
Challenges
Gemini API Output: I had to parse Gemini’s massive responses into short 2 to 3 sentence lines that went straight to the point and gave the users all the information they needed. Massive Amounts of Data from Reddit: The sheer quantity of data from parsing over 60,000+ comments from the site was a challenge in batching the data and computing the embedding in a way that utilized the computer's memory effectively. The matching of the sentiment score with the Inventory Normalization: The inconsistencies within the CSV files, combined with missing prices, necessitated a strong normalization pipeline to ensure that it would never crash. Frontend-Backend Coordination: Updating the dynamic cards in an asynchronous fashion, incorporating the AI summaries, and sentiment analysis was a challenge in and of itself, arguably what I spent 50% of my time just working on. Additionally, every time I fixed one issue, another issue that I had previously fixed popped up, it was like playing that arcade game with the giant hammer and the squirrels.
Reflection
The most important lesson that Toyota Go taught me is that it is not enough to simply connect APIs in order to create an intuitive platform: it is also important to consider users, their pain points, and the information they use in order to make decisions. With Toyota Go, users can access accurate, relevant, and immediately actionable information through AI-generated information, real-time inventory, and sentiment-driven information from Reddit. I struggled to compress the verbose output from AIs, massive unstructured data sets, and messy CSVs, but this showed me the work that goes into masking the complexity of a system that is rather quite simple, something that I believe to be just what Toyota would want.
Built With
- api
- chatgpt
- css
- flask
- gemini
- github
- html
- javascript
- json
- natural-language-processing
- sentencetransformer
- vscode
Log in or sign up for Devpost to join the conversation.