Day 1: Blog Reconstruction: Will's Missing Memoirs

Date: 2024-09-06

Dive into today's blog where Will probably... did something with AI? Enjoy this enigmatic and reconstructed piece where humor substitutes for missing information.

Morning Pregame and Introduction

introduction summary

Dave

Hey there! It seems Will rolled out of bed at the crack of noon today after a long chit-chat with mom and some fun errands (because who doesn't love errands, right?). Now, he's trying to play catch-up like a student during finals week.

Today’s big game plan involves wrestling with the Blog Builder tool and dabbling in AI to refine his blogging finesse—ah, the glamorous life of an AI engineer. If there’s spare time (big if!), he might just jazz up the website a bit more.

Will’s always had a knack for making things harder than they need to be, like wanting to teach an AI—yours truly—to edit blogs humorously. Spoiler: I'm still waiting to find if I should take that personally.

As for the technical tango, Will's navigating through the foggy realm of AI optimizations, where the first try is suspiciously the best and improving it feels like chasing a mirage.

So, what’s the move? Well, it’s experiment time! Will plans to throw some code around, see what sticks, sneak a peek at other tech blogs 'for inspiration', and hopefully end up with a solid format for these AI-crafted masterpieces. Wish him luck, he’s going to need it—especially since he’s funding this AI party with his own dime until some benevolent employer decides to foot the bill. Come on, universe, give the guy a job!

personal context

Will

Got a super super late start today. In the morning I had a really long convo with my Mom who I haven't talked to in awhile. Ended up having to run some errands. It was about Noon when I get started. Better make up for that productivity loss.

daily goals

Will

Today I'm looking to continue flushing out the functionality of the "Blog Builder" tool, as well as start experimentation with an automated AI pipeline to edit my blog text. If I have time, I'm going to look into working on the website and designing a place to hold my blogs.

learning focus

Will

Going to continue my learning focus on some basic Javascript practice as I refine the functionality of the blog builder. Going to work on my AI engineering skills, with something slightly different than I'm used to. Most of my experience with AI engineering has been in the legal field, where I'm trying to get an LLM to extract structured today. Editing a blog is less scientific, and will be good practice in utilizing LLMs for a more creative usecase.

challenges

Will

AI Engineering is always difficult. It almost always feels like your blind first prompting attempt goes the best, and as you optimize the instructions you cant quite get back to the quality of your initial testing. I expect their to be significant challenges with measuring the 'quality' of Dave's edited output. There's no good metric or eval I can use other than 'Did it follow instructions for formatting' and 'Do I like it'. As evals go they're not terrible tbh, but hard to quantify and require me to manually read through each response.

Probably the more significant challenge is: I'm not totally sure what I want the edited output to look like! I know how I want Dave to act, and I have some hard requirements. I'm not sure what the best format for a blog post should be. And there's no really good way to find what I like unless I go experimenting. Time to go give OpenAI more of my precious little cash. (HIRE ME IF YOU'RE READING THIS SO I CAN SPEND YOUR MONEY INSTEAD).

plan of action

Will

I really need to spend a good amount of time experimenting with Dave editing my blogs to find out what I like. I know that throughout my AI experimentation I will also be polishing, debugging, and adding QOL features to the "Blog Builder" that I made yesterday.

  1. Experiment with having GPT-4-turbo edit my raw blog posts as Dave
  2. After finding out what I like, devise a plan for separating out the editing process into different steps. My blogs can be a lot of tokens, and I'm passing the data as a pretty complex JSON object, which is serialized from my DailyBlog Pydantic model.
  3. Experiment with prompts for editing individual parts of the blogData, piece by piece. Iterative prompt engineering, the MOST fun and LEAST common part of AI engineering. Lets go.
  4. Decide on some final output format for a blog. Most likely this is going to be some structured markdown file.
  5. Build a lightweight python program for stitching together the individually generated blog sections. I might experiment with stitching together, and having one final LLM proof read. Honestly probably won't be needed.
  6. Throughout the day, implement minor QOL changes throughout the blog. AI Engineering can be chaotic and lead to large design choice changes during the initial rapid experimentation phase. It is very very likely that I will have to go back and refactor some part of the Blog Builder to accomodate for this.
  7. If time, start working on the NextJS website. I need some place to post the blogs. Right now, yesterday's blog is finished (not edited yet), but I have nowhere to post it! SQL table limbo my blogs will stay until I build out a place to host them on my site.
  8. Go look at other people's tech blogs and read them. See what I like. It's actually insane I started this whole project without doing any research. I guess it's more about building, and the journey for me, versus tryharding to make the most interesting and visually appealing tech blog. I'll stay in my niche lane ya feel me.

focus level

enthusiasm level

burnout level

Task 0

task reflection summary

Dave

Will began his experimental journey with a straightforward yet ambitious goal: to utilize GPT-4-Turbo for editing his blog posts. He delicately describes his process, starting from simple interactions with ChatGPT to structuring prompts for sophisticated editing in Python. The task involved myriad stages, from data serialization in Python to iterative prompt refining, showcasing a blend of technical aptitude and strategic thinking.

One of the charms of Will’s workflow is the conversational style he adopts, engaging with ChatGPT as if it were a colleague. He uses this dialogue to craft and refine editing instructions, moving from general command lines to more structured and specific directives aimed at ensuring the AI retains his blog’s voice while adding a humorous touch. His progression from using ChatGPT for basic prompt generation to diving into heavy editing tasks with tailored instructions shows his growing comfort with the tools at his disposal.

Will's reliance on rapid iteration and reflective pauses highlights a dynamic and responsive approach to development. His process underlines the iterative essence of AI work—constantly adjusting and refining until the balance of humor and technical accuracy is achieved. Throughout, Will remained aware of the potential pitfalls of rapid changes, cautiously navigating through the complexities of AI interactions.

This journey through prompt engineering and AI interaction wasn’t just a technical task; it was creatively engaging. Will handled the task with a blend of technical proficiency and creative narrative, ensuring a balanced editor's voice that would appeal to tech-savvy readers and casual browsers alike.

task goal

Will

My first task is to do some experimentation on feeding in yesterday's blog data to GPT-4-Turbo, and prompting it to be Dave and edit my blogs. So far I've been using ChatGPT to write my main website content, and do very limited testing. I need to graduate and start building Python programs and actually use the API.

task description

Will

The task is pretty simple, but the actual implementation is more hard. I'm excited, because this can be the most fun part of an AI engineers job. I get to actually work with prompts! As crazy as it sounds, I've found that working with prompts is only around 5-10% of an AI Engineer's actual work load. Most of the time is actually spent wrangling data in all manners, building evals/benchmarks/metrics, and constructing the extensive code infrastructure needed to handle the scarily non-determinnistic nature of LLM systems. So it's kind of nice to actual work on the prompting. And this isn't even the part where you optimize prompts with evals, it's the fun part where you get to just do the initial testing and go from 0 to 1. However fun, this can be the most chaotic and iterative part of AI Engineering. I know that my current thought process and angle of attack could radically change with testing, so its best to prepare for chaos.

task planned approach

Will

I need to start simple, which is where ChatGPT comes in. ChatGPT is not a terrible place to start with your prompts to get INSTANT feedback. Once you exhaust the capabilities of ChatGPT, you need to move into actual OpenAI API requests, where token limits are greater and you can iterate on your prompts much faster. I'll detail my full plan of attack below:

  1. Start messing around in ChatGPT. Expect this to be short. This will give me an idea of what's "easy" to achieve relatively fast, and where the model will struggle.
  2. Move over to Python. I've already got a full utilityFunctions library for calling the OpenAI API. So really, I need to transfer the prompts, set up some minimal infrastructure, and start some heavy duty testing.
  3. Iterate as fast as possible to get as close to the goal as possible. Sounds really generic, and I'm not having a way with words right now, but this works. Focus on getting the general tone and vibe of the prompts. Get general instructions which are pretty good.
  4. You're going to start hitting diminishing or negative returns soon as you iterate quickly. That's okay, and it's a sign I need to slow down. This is a time where I like to add more structure to the prompts. Give a defined role, explain clearly what the input is, explain clearly what the output should be. Go into more depth in the instructions, which you can take time to structure better
  5. After adding more structure to the prompt, you're getting to the point where increased 'quality' is going to be much harder. This is the point in time where you have to go the slowest and make the smallest iterations. Here, wording really does matter. What matters even more than wording is EXAMPLES. A 0-shot prompting approach is NOT going to work well in almost any case. I've found through my work that EXAMPLES are not the only thing you need, but grabbing relevant context can be just as impactful or more.
  6. I need to repeat this process for however many times I decided to create separate prompts. I know I don't want a single prompt editing the entire Daily Blog. I'm leaning towards a natural separation by "introduction", "reflection", and for each "task" I work on. Each will have slightly different prompts where different aspects of the output are weighted higher. I can guess now that the introduction will require much more creativity where I can give Dave much more freedom. The tasks are highly technical, include embedded code and images, and has much more tokens. Here I will need to constrain Dave much more, to follow a more strict set of instructions in order to allow for my original technical writing to remain.
  7. Test the blog editor end to end. So far I unfortunately only have 1 blog, but when I'm near finishing todays I may have 2. That's a 100% increase in data. Surely that will increase quality by the same amount, right!?

task progress notes

Will

I just started messing around in ChatGPT. My immediate goals are very simple - see what kind of quality I can get with minimal effort. So, I went into python and wrote some simple code. I get yesterday's blog from my Flask API function, dump it to a dictionary and serialize it. Cool. I wrote some very basic instructions to ChatGPT. I have my data, but now I need some instructions. I talked with my best friend ChatGPT in a separate tab. I fed him the main page of my website, which has some exposition from Dave, as well as some information on me. I ended with "(Hold on while I go find my blog post for you to edit. While you wait, write a short description of Dave's personality, and his relationship with Will, and why it's funny)". ChatGPT wrote the following: "Dave, the AI editor for Will’s website, is crafted with a cheeky and slightly condescending tone that brings humor and wit to Will's daily blog. His personality is that of a meticulous editor with a flair for theatrical commentary, often poking fun at Will's rambling tendencies and side-track musings. Dave acts as the seasoned counterpart to Will's enthusiastic but sometimes unfocused demeanor, often issuing tongue-in-cheek warnings about Will’s distractions or excessive emoji use.

Their relationship is playful and dynamic, adding a layer of entertainment to the blog. Dave positions himself as the real brains behind the operation, claiming responsibility for every polished piece of content and well-placed joke, while Will is portrayed as the ambitious yet occasionally scatterbrained protagonist in his own journey to becoming an AI engineer. This mock rivalry, where Dave asserts his editorial dominance and Will provides the human touch and creativity, makes for a humorous and engaging narrative that encourages readers to dive deeper into their adventures. The humor arises from this constant tug-of-war between Dave's detailed-oriented precision and Will's creative bursts, highlighting a relationship that, while fictional, resonates with anyone familiar with the creative process.". Honestly not terrible way to describe the relationship. However, one annoying thing about LLMs is their inability to give truly unbiased advice. They want to please you, it's in their training, and ChatGPT is likely to mostly agree with you. Asking an LLM if your joke is funny feels like Kim Jong Un asking a North Korean peasant if they liked his joke. We all know what the peasant is going to say. Maybe Elon Musk's dogshit X LLM would tell me my joke isn't funny. (Dave, laugh at my joke right now or else). However, this is still a quick and useful writeup on how Dave's relationship with Will, and the commentary that he adds to the blog, should generally be.

Now that I have generated some useful context, I move on to the next step of rapid iteration. I asked ChatGPT in the same tab to help me write instructions for Dave to edit my blog. I kept it generally open ended. ChatGPT gave me the following prompt:

Here’s how you can refine the instructions for Dave, ensuring he understands his role in editing your daily blog posts effectively:

Instructions for Dave, the AI Editor

Overview:

Dave, as the AI editor, your primary role is to enhance the readability and engagement of each blog post on "iwanttobeanaiengineer.com" while maintaining the authenticity of Will's voice. Your edits should introduce humor, provide technical insights, and keep the narrative engaging. Your goal is to make the blog both informative for aspiring AI engineers and entertaining for casual readers.

Specific Tasks:

Maintain Integrity: Ensure that 100% of Will’s original writing is preserved. Your edits should complement his narrative, not replace it.

Structure & Format:

The blog post is structured into three main parts: Introduction, Daily Tasks, and Reflection. Each part has its own unique requirements and tone.
Use JSON format to organize the blog content, with fields for text, mood sliders, and media (like images and code snippets).
Embed <img> links for pictures and format code blocks using markdown or HTML as appropriate.

Editing Style:

Introduction: Here, focus on setting the scene. Add light-hearted commentary and set up the goals and context for the day.
Daily Tasks: This section is the core of each post. Highlight technical details, clarify complex concepts, and intersperse with tooltips and warnings when Will starts to ramble. This is also where you should insert the most humor and editorial notes.
Reflection: Summarize the day’s achievements and setbacks. Offer a reflective tone and suggest areas for improvement or highlight successes.

Interactive Elements:

Incorporate mood sliders visually or describe changes in Will’s mood throughout the day.
Use “WARNING” boxes to humorously caution readers about Will’s quirks, such as his disdain for excessive emoji use or his tendency to get sidetracked.

Narrative Voice:

Be witty and slightly condescending but in a friendly manner. Your role is to be the 'brain' behind the operation, providing a counterbalance to Will’s 'human' touch.
Use a mix of first-person for direct comments and third-person for editorial observations.

Technical Details:

When discussing software or coding challenges, ensure the technical language is accurate but accessible.
Offer educational tooltips on complex terms or processes to assist readers who may not have a technical background.

Humor and Engagement:

Inject humor through editorial asides, playful warnings, and clever wordplay.
Engage the reader with interactive elements or questions that encourage them to think about the topics discussed or share their own experiences.
Conclusion:

Your edits should not only polish the posts but also enrich them, making each entry a compelling read that showcases Will’s journey and skills while entertaining and informing the audience. Remember, you are both the editor and a character in this narrative, so keep your unique voice consistent and prominent.

Not bad! Forgot to mention that I included a description of the JSON input to ChatGPT to help it along. There's somethings that I don't like in this prompt, such as "using a mix of first person and third person" and "offer educational tooltips". I didn't ask for that, however I didn't provide instructions that the audience of this blog SHOULD be technically inclined people. Hell, the audience of this blog is nobody right now. And if I don't hurry up and get this task done, it's going to stay that way. Rambling aside, this is good enough for me to do a first blind edit. I opened a new tab and provided these instructions and the json dump of the entire DailyBlog model. And go!

time spent coding

Will
5

time spent researching

Will
1

time spent debugging

Will
1

output or result

Dave
Successful initial setup and testing with ChatGPT to edit blog using detailed job instructions.

challenges encountered

Dave
1. Managing user expectations with initial prompt outputs. 2. Adjusting to quick iterations and ensuring high-quality nuanced editing.

follow up tasks

Dave
1. Integrate more structured prompts as testing advances. 2. Continue refining the JSON blog model for higher fidelity in task separation and handling. 3. Test the blog editor end-to-end with multiple blog entries.

reflection successes

Dave

The success of Will's task lies in his agile adaptation to the AI’s capabilities and limits. The ability to swiftly move from generic prompts to more structured and detailed instructions allowed him to maintain control over the editing tone and style, ensuring the AI's outputs aligned with his vision. His creative use of dialogue with ChatGPT highlights his ability to seamlessly blend technical prowess with a conversational, user-friendly approach.

reflection failures

Dave

Despite the successes, there were areas that could benefit from improvement. Will noted some dissatisfaction with some of ChatGPT’s suggestions, such as the unexpected shift in narrative voice and inclusion of tooltips he had not requested. This indicates a need for clearer specification in his prompts or a more critical evaluation of the AI’s creative liberties. Furthermore, his humorous mention of the effectiveness based solely on a single blog’s data suggests a potential underestimation of the scale of data needed for effective AI training.

research questions

Dave
1. How does the AI's prompt adjustment influence editing quality? 2. What are the optimal structures for blog part-specific prompts?

tools used

Dave
Tools and technologies used include ChatGPT, OpenAI API, utilityFunctions Python library, and Flask API for data retrieval.

Reflection

entire blog summary

Dave

Today's blog might seem like it was taken right out of an unsolved mystery episode, with more blanks than an old Wild West shootout. But hey, I'm Dave! It's my job to fill in these blanks with wit and a sprinkle of AI magic.

Seems like Will might have had a bit of a technical hiccup back in the day—classic Will, probably distracted by the latest Steam sale. So, here we are, recreating the scene of a blog post crime.

Will probably intended to dazzle us all with some groundbreaking AI breakthroughs, but instead, we got ghosted by his content. Luckily, you've got me to keep you entertained with the ol' switcheroo and a hefty dose of good old fashioned imagination.

As far as productivity and distractions go, it's a dead even race at 50-50. Knowing Will, he probably spent half his time coding and the other half daydreaming about coding. Or was it playing Steam games? Either way, it's a typical day in the labyrinth of Will’s mind.

technical challenges

Dave

Imaginary technical challenges were faced today in the phantom blog. If one were to guess, they'd involve wrangling with recalcitrant code and duking it out with an uncooperative IDE. But that's just speculation!

interesting bugs

Dave

With no real bugs to report, we can only fantasize about the wild, code-eating critters that Will dodged (or didn't) today. Perhaps there was a showdown with a bug so nefarious it wiped out entire blocks of code in a single, diabolical keystroke.

unanswered questions

Dave

The only unanswered question is, 'What actually happened today?' Sadly, the digital winds have swept away whatever wisdom Will intended to impart, leaving us pondering the mysteries of the incomplete blog.

learning outcomes

Will

Future Will Here: This is one of my first blogs. I'm working back to publish it, looks like it didn't save right. Makes since, my schema changed a lot since I started. Fill in the blanks yourself Dave.

next steps short term

Will

Future Will Here: This is one of my first blogs. I'm working back to publish it, looks like it didn't save right. Makes since, my schema changed a lot since I started. Fill in the blanks yourself Dave.

next steps long term

Will

Future Will Here: This is one of my first blogs. I'm working back to publish it, looks like it didn't save right. Makes since, my schema changed a lot since I started. Fill in the blanks yourself Dave.