How not to bomb a presentation about AI

Last week, I had such a blast at PSConf.eu in gorgeous Antwerp, Belgium. It was my first in-person conference in FIVE YEARS! Literally, the last time I was at a conference was at Data Grillen in June 2019. There, I professed that I'd be taking a break from speaking. Little did I know :grimace:

Fast-forward five very consequential years and I'm presenting two AI-based topics at PSConf, Europe's largest PowerShell conference. It was just wonderful being back with old friends, seeing people I hadn't seen in so long. I even teared up at the opening Keynote.

My session, AI at Work, was one of the first of the day and went very well. The presentation had limited interaction with ChatGPT and when ChatGPT was used, it wasn't closely scrutinized. Perfect outcome for an AI presentation, ha!

The problem with presenting about AI

So the problem with presenting about AI is that the results can be SO variable. To excel with a coding-based AI presentation, you really need to have a good session on a good day. This isn't just a problem for me, but an unsolved issue acknowledged across the entire industry. Nobody I know has figured this out.

In talking to the magnificent Barbara Forbes, she said that presenting about GitHub Copilot has made her more spontaneous. She is even now skilled at improv! I could never. Literally, I practice sessions until my wife and cats have them memorized.

So I was horrified when I submitted a topic (Creating PowerShell Universal Dashboards with ChatGPT) based on OpenAI's promises and later learned they they don't quite deliver. Custom GPTs are great for a lot of things, but deterministic, consistent output is not one of them.

Sometimes Custom GPTs refuses to read their instructions and gives you dated, unenhanced results. And man, I tried SO many things to get my demo to be reliable.

Earlier that morning when I was practiting for my session, I'd never seen such poor results. Never once had my Custom GPTs so consistently refuse to read their instructions. My nightmare. I panicked and created a whole new GPT thinking maybe that was the problem. It wasn't.

So I bombed. The demo was so catastrophic that the only good thing that could come out of it is a Lessons Learned blog post.

So here it is — the tips I got in the speakers' room as I was lamenting the performance of my session.

Make a recording

One of the first tips I got was to make a recording of a successful demo. This way, if things go south during the live presentation, you can switch to the recording seamlessly. It's not ideal, but it's a solid backup plan. Plus, it takes some of the pressure off, knowing you have a safety net.

I actually did this for part of my AI at Work presentation. The voice is cool but doesn't always connect and I didn't want to take any chances.

Use a Jupyter Notebook + the API

Another great suggestion was to use a Jupyter Notebook in combination with the OpenAI API. This approach offers more control and consistency. You can pre-run cells with specific prompts and parameters, ensuring you get the desired output every time. While it may not be as engaging as live demo, it's reliable and you can still walk through the process step-by-step.

Use a seed

This is actually my own tip: when using the API in both Azure and at openai.com, use a seed for deterministic (reproducible) results. I'd seen a seed column in some of my results, but I hadn't fully utilized it. By setting a specific seed, you can get consistent outputs for the same input, which is necessary for predictable demos.

In PSOpenAI, you can use it by setting the Seed parameter in Chat Completions.

1$splat = @{
2  Message   = "How do I get started with PowerShell?"
3  Model     = "gpt-4o"
4  Seed      = 42
5}
6
7Request-ChatCompletion @splat

Unfortunately, there is no seed yet for the Assistants API, which is what I mostly use.

Despite the demo disaster, I still loved PSConf.eu AND I got to make it up in the Community Demos where I showed off PSHelp.Copilot.

Everything went as expected and I was able to use the #2 tip. Shoutout to Harm Veenstra over at powershellisfun.com for the great #PSConfEU writeup and the pic from my session.

In this session, I used a nice Jupyter notebook per David Saas' suggestion.

Sooooooo now for more AI presentations! My next few are likely going to be about dbatools.ai and how to integrate natural language into PowerShell projects.