10 days into 365 days of AI

10 days into 365 days of AI
Prompt: a combination of geometric shapes, lines and colours, that evoke the idea of technology, learning and AI. Subtle hints of circuit board patterns, neural network visualizations, abstract representations of learning, interconnected nodes or paths

I have completed the first 10 days of my 365 days of AI experiment.

In this update, I want to give you a simple overview of what I have done over the last 10 days and also share early thoughts on my experiences so far.

Each day I publish my output on Futureland and I also use that software to help me stick to long term projects:  https://futureland.tv/@vin/365-days-of-ai

The programming language I am most familiar with is Python, and when creating web applications, I use the micro web framework, Flask. I've been working with OpenAI's API.

Day 1 – MagicBookMaker

On Day 1, I created a web app that takes a user's input and uses it to generate a text based children's book.

MagicBookMaker returns a story based on the user's prompt

This idea came out of an experience I had with my almost 6 year old son, where I was using ChatGPT to help me explain complex concepts to him. For example, I would prompt ChatGPT with something like, "explain the role of protein in the human body as if I'm 6 years old", or "tell me a story about the role of sugar in the human body as if I'm 6 years old". My son is constantly asking me questions and sometimes it's difficult to explain things to him without diluting the truth of a subject, or sometimes I just don't know the answer. So I prompt chatGPT often in this way. It made me realize that any parent could generate an infinite number of children's books on any subject, at any time, for their child.

The interface of MagicBookMaker is similar to Google's interface with a simple logo, input field, and a generate book button. The design of the website as well as its underlying code was created in collaboration with chatGPT. This collaboration was a particularly surreal part of the experience because instead of writing code or mocking things up myself, I was describing what I needed to chatGPT and it was writing the code for me.

I would then test the code to see if it runs. I would ask it to center something. I would ask it to make the logo float up and down a little. Then I would ask if the logo could float up less on the y axis. Each time I would give me code that I would drop into my application. It felt like it could do anything I could describe.

Day 2 – MagicBookMaker, generating a title for the book

On Day 2, I added a second API call to MagicBookMaker that would take the text-based children's book it generated and us it in another prompt to generate a title for the book. The title would then be displayed on the interface.

MagicBookMaker is prompted with "How tornadoes are formed"

Day 3 – Basic Image Generator

On Day 3, I created a basic image generator, this time connecting an app to OpenAI's DALL·E models. The app takes a user's prompt and then makes an API call to generate and display a single image. The simple design of this app as well as its underlying code was created in collaboration with chatGPT.

Prompt: "anime, portrait of a young samurai, beautiful lighting, 8k"

Day 4 – Basic Image Generator, generating multiple images

On Day 4, I made a small adjustment to the app, by telling the API call to generate 6 images instead of 1, and then display them in a grid on the interface. The design of this app as well as its underlying code were created in collaboration with chatGPT.

Day 5 – Terminal Based Daily Scheduler

On Day 5, I created a terminal based app that takes a list of to-dos and the current time and turns it into a schedule for the day. Each morning, I spend a few minutes writing down important tasks and details for the day and then send it to the app. The app uses my input along with the current time to form a prompt then make an API call to generate a daily schedule using an LLM (Large Language Model). The resulting schedule is displayed in the terminal.

Day 6 – Excerpts from Critical Path by Buckminster Fuller

On Day 6, I created a simple web app that displays an excerpt from the book Critical Path by Buckminster Fuller, a work I find inspiring and am still trying to fully comprehend.

The app's design is straightforward. When I click the "Get an excerpt" button, it triggers the app to make an API call to the LLM, selecting one of three prompts randomly chosen by my app – a feature suggested by chatGPT. The LLM then returns an excerpt from the book, which is displayed on the screen.

Day 7 – Futureland Learning Suggestions

On Day 7, I created a small app that generates suggestions on which techniques or concepts to focus on next, based on reflective writing about my learning experiences in a particular subject or skill.

I use Futureland to create journals for any new skill I am learning. These journals contain numerous reflections on the development of my learning and areas where I feel I'm not performing well. I thought it would be useful to have learning based suggestions automatically generated as I write or publish my entries into Futureland.

To test the app, I provided it with a recent entry reflecting on my learning through Jiu-Jitsu. The app responded with a list of suggestions on what aspects I could concentrate on next. I could tighten up the prompt to make the suggestions better.

Personalized suggestions on what to focus on next while learning Jiu-Jitsu

Day 8 – SQL Queries in Plain English

On Day 8, I created a terminal based app that enables me to write SQL queries in plain English. This is helpful to me because I do not know how to write SQL queries myself.

In this case, I included Futureland's table schema in each prompt so that when I asked a question, the LLM could use the design of our database to generate an SQL query. For example, I told the app, "I want to know how many total entries are on Futureland,", and it returned a response in SQL.

Day 9 – Initial API Call for a Chat Bot

On Day 9, while exploring how to use Chat completion in OpenAI's API, I created a small app that sends a message to the API and receives a response. As a test, I prompted the app with, "explain jiu jitsu to me as if I'm 6 years old." The API returned a response.  

Day 10 – A Simple Chat Bot

On Day 10, I created a simple chat bot that enables me to engage in back-and-forth conversations using OpenAI's API.

The app's interface is straightforward and user-friendly, featuring a send button and a clear chat button to remove the conversation from the chat window. The design of this app, as well as its underlying code, was created in collaboration with chatGPT. The most surreal aspect of developing this chat bot was how quickly it came together. With chatGPT's assistance, it only 15-30 minutes to create this.

Reflections

I am an amateur in terms of computer programming. The things I have created here, as basic as they are, would have still taken me much longer to create without the assistance of ChatGPT. Also, what I have created over the last 10 days has come out of taking frequent prompts that I send to ChatGPT and turning them into stand alone apps. In many cases, these apps are not even necessary.

Why do I need to use an app to do something, when I can just keep sending the appropriate prompts to ChatGPT, and it can do it for me? It only takes a few seconds to do that. In other cases, like on Day 8, where I made an app that generates SQL queries from plain english in the terminal, it's helpful to have that dedicated app because the prompt is more difficult to generate since it includes my database's table schema. I don't want to have to find that when I need to prompt ChatGPT in this way. However, even then, I can still just use ChatGPT for this purpose as long as I can navigate back to a session where I've already provided the necessary table schema in the past.

What I'm realizing is that, in a world where something like ChatGPT exists, I do not know what my new possibilities or limitations are as an individual. If I am creating a tool, it is born out of the limitations I've experienced while trying to do something for myself. But while doing things with ChatGPT's assistance, I'm not hitting any limitations yet.

Actually, I think I have to really reimagine my perceptions of what's possible as an individual who is augmented by AI, and run experiments to understand where my new limitations even are. I can't trust myself to estimate how long something should take or how difficult a project is for me because those estimations are based on a previous way of using computers that doesn't include AI.

As I continue through these 365 days, I will need to not just try to build things with these AI tools, but also use them in a way that helps me understand what's possible for a person who has access to a computer, an internet connection, and AI.