000000010
It has been about three weeks since my group has started the AI Coder project, which requires my group to build a project using any generative AI tools and report on the success and failures. We chose to build a dating web app for animal adoption, where shelters can create profiles for their animals and users can match with animals and take them to their forever homes. The main goal of the project is to report on comparing different genAI tools and their usefulness.
In building this project, we wanted to keep it as simple as possible, so our tech stack comprises of React for our frontend, Flask and python for the backend, and MongoDB for our database. From this stack my favorite to use is Flask and Python, maybe because I’m biased. I used Python as my main language to code in when starting my programming journey two years ago. Its readability, simplicity and clear and concise syntax allows me to focus on problem-solving rather than deciphering or writing complex code. Flask also aligns with my preference for simplicity. It provides the bare bones for routing and request handling, allowing me to build small- or medium-sized web applications efficiently. Not that it can’t be used for large applications (Pintrest is an example), but it’s perfect for our use case. With Flask, I can make routes easily compared to something like learning the syntax for JavaScript and Express.
The simplicity of Flask and Python, however, can be a double-edged sword. The one thing that I’m working is making objects that relate to the database schema. Flask doesn’t have this concept of object-relational mapping, but that’s why we’re using MongoDB. Additionally, Flask doesn’t have have a built-in authentication system. In our project, we decided to make that as a stretch goal and focus on other parts of the application and AI research.
With that said, we are using AI extensively to build our project (that is the main purpose of the project, see the intro if you forgot). The main tools that I have been using to complete tasks are ChatGPT and Bard. These two are the most popular models being used today as they are hosted by Google and OpenAI/Microsoft. My team and I divided up the tasks into managable chunks each week, and I have been completing my portion one task at a time. I turn the task into a prompt and feed it into one of the LLMs. I then compare their outputs. So far, the newer models (GPT 3.5 vs 4) seem to produce better code. There are several advantages to this. The first is that the models create skeleton code that I can work with and manipulate. The second is that I don’t have to scour the documentation or StackOverflow on how to do things. I just ask follow up questions and everything is right there. The disadvantage to this is that I have to know the map of where to go and ask the right questions. There are many times when the LLM spits out something that I don’t understand and it takes me a few additional prompts to understand what is going on and all the implications.
Even with the disadvantages, using AI is like having a mentor. They don’t give you all the right answers, and you have to ask the right questions to get the right answers.
Leave a Reply