Portfolio
Customer Service Chatbot:
Throughout the summer, and continuing currently, I created an AI chatbot to help users with any questions they may have about a city including everything from tax codes to fun activities and event dates. To help the AI, I needed to get all the data from the city website which was done through a scrapper that would work in parallel. Each instance would follow a global queue to ensure no page is accessed multiple times. In order to improve performance further, I used a large AWS instance running linux with a virtualized display to allow the browsers to open in non headless. After gathering all the necessary data, it was processed through an OCR reader for images along with video transcription programs. Lastly, all the processed data was split into chunks and put into a vector store database using an embedding model. The vector store along with the embedding model allows for data to be searched for by similarity of ideas instead of just matching words which is important when dealing with user questions.
The chatbot itself had a simple workflow, it took in the user question, reworded it using a smaller model to be more search friendly, then searched the vector store. After the vector store returned the n closest chunks, the chunks, along with the original user question and past message history, was passed into the main LLM where it would use all the available context to provide the best possible answer.
DMV Appointment Automation:
Back when I was getting my drivers licence, the texas dmv appointments were only available months in advance, however, anytime another user canceled their appointment, it would show up at the top of the list since it would usually be the most recent available appointment. I created a tracker that automatically refreshed the page and pinged the user with a notification whenever a new appointment was available. It also had options to specify certain time ranges as well as days of the week.