
StoryTime - Generate Childrens Stories with AI - Mike Cavaliere
Mike Cavaliere discusses building StoryTime, an AI-powered children's story generator app, exploring prompt engineering and AI development challenges
Episode Description
Mike Cavaliere demos Storytime, an AI-powered children's story generator, and discusses prompt engineering, JavaScript frameworks, and the search for a JS Ruby on Rails.
Episode Summary
Anthony Campolo welcomes Mike Cavaliere to discuss his background as a 20-year software engineer and author of a full stack Jamstack book, before diving into the ongoing quest for a JavaScript equivalent to Ruby on Rails. They trace the landscape of React meta frameworks — Next.js, Redwood, Create T3 App, Remix, and the Epic Stack — exploring why Next.js dominates and why many JS developers resist opinionated frameworks. The conversation shifts to Mike's AI side project, Storytime, an app that generates children's stories by combining the OpenAI API for text and Stability AI's Stable Diffusion for cover images, built on Next.js with the Vercel AI SDK and Prisma. Mike walks through the tech stack, shows the templated prompt powering story generation, and demonstrates the app live. This leads to a broader discussion on prompt engineering techniques — assigning expert personas, providing context over threats, and tools like Grimoire and ChatGPT Auto Expert. They also explore the challenge of consistent AI-generated images, potential features like authentication, story sharing, rating systems, and monetization through usage limits, drawing inspiration from music generation apps like Suno AI. The episode closes with reflections on how AI knowledge gives developers a competitive edge and how apps like Storytime showcase capabilities that would have been nearly impossible to build before LLMs.
Chapters
00:00:00 - Introductions and the Jamstack Legacy
Anthony introduces Mike Cavaliere, a veteran software engineer of 20 years who authored the only full stack Jamstack book. Mike shares his current focus on building an AI storybook app and his growing interest in developer relations work. Anthony highlights Mike's earlier devrel contributions around the Bison framework and links to a previous episode covering Mike's full background.
The conversation turns playful as they discuss the Jamstack's rise and fall, with Anthony noting the wave of articles declaring Jamstack dead. Mike plugs his now-free book, "Cut Into the Jamstack," and they pull up the site to show off its jam-on-toast logo. They briefly touch on the book's tech stack of React, Next.js, and Prisma, acknowledging the title's quirks while affirming the book still holds historical and educational value.
00:04:39 - The Search for JavaScript's Ruby on Rails
Anthony and Mike survey the landscape of full stack JavaScript frameworks, comparing Redwood, Create T3 App, Remix, the Epic Stack, and Next.js to the legendary Ruby on Rails. Mike explains what made Rails revolutionary — its opinionated generators that let developers scaffold entire CRUD apps from a single command — and why JavaScript hasn't fully replicated that experience. Anthony recommends the original Rails demo by DHH as essential viewing.
The discussion grows more nuanced as Anthony explains why Next.js outpaced Redwood despite Redwood arriving at similar architectural conclusions years earlier. He points to Next's head start, Vercel's VC-backed growth engine, strong devrel, and a winner-take-all dynamic in open source adoption. He also observes that many JavaScript developers simply prefer assembling their own stacks rather than adopting opinionated frameworks, which worked against Redwood's Rails-like philosophy.
00:12:33 - Introducing Storytime and the AI Story Generator
Mike introduces Storytime, his AI-powered app for generating children's stories, born from manually creating stories for his kids in ChatGPT. He demonstrates how the app works — users select an age group and topic, and it produces a complete story with a cover image. The text is generated via the OpenAI API while images come from Stability AI's Stable Diffusion, chosen over DALL-E for its faster response times and less restrictive rate limits.
They explore the challenge of generating consistent character imagery across multiple illustrations, with Anthony suggesting thematic images as a workaround rather than trying to maintain character consistency. Mike reveals the tech stack: Next.js as the framework, Vercel AI SDK for streaming server-side interactions, and Prisma ORM for persisting stories in a database. He notes that authentication is his current development focus so users can save and revisit their generated stories.
00:21:56 - Music Generation, Monetization, and Feature Ideas
Anthony introduces Suno AI, a music generation app that lets users create five songs daily for free, as a model for how Storytime could handle sharing and monetization. He shares an anecdote about a teacher friend creating educational rap songs for subjects like the Pythagorean theorem, illustrating the creative potential of generative AI apps. They also briefly mention Udio as a competing music generation tool.
The conversation turns to Storytime's planned features, including user authentication, story browsing, rating mechanisms with thumbs up and down feedback, e-book generation in PDF and MOBI formats, and potential sequel creation. They discuss how usage limits paired with paid tiers could cover API costs, drawing a direct line between model pricing and SaaS margins. Content safety for a children's app also comes up, with Mike acknowledging the need for disclaimers and flagging mechanisms despite ChatGPT's built-in content filters.
00:27:30 - Prompt Engineering Deep Dive
Mike pulls back the curtain on Storytime's prompt, revealing a single templated prompt with injected variables for age group, topic, and story parameters. This sparks a broader conversation about prompt engineering philosophy, where Anthony pushes back on the popular technique of threatening the model, arguing instead for providing rich context that makes the model feel it's in the right situation to produce the desired output.
They explore practical prompt engineering tips from OpenAI and Anthropic documentation — assigning expert personas, defining plans before execution, using delimiters, and specifying task steps. Mike demonstrates two tools: Grimoire, a custom GPT optimized for code generation, and ChatGPT Auto Expert, a set of custom instructions that automatically selects relevant expertise and improves prompts. Anthony notes the accessibility concern with calling it "engineering," suggesting the skill is fundamentally about clear communication and could empower humanities-oriented people.
00:44:27 - AI's Impact on Developer Careers and Building the Future
The hosts field audience questions about whether building AI-powered apps gives developers a recruiting edge over traditional full stack engineers. Anthony draws a distinction between using AI to enhance personal productivity and integrating AI capabilities into products, noting both skills are valuable and mutually reinforcing. Mike agrees that understanding AI tools may become essential as adoption accelerates across the industry.
Mike outlines his plans to make Storytime's model switchable between OpenAI, Anthropic, and Cohere for comparison and cost optimization. The episode wraps with Anthony framing Storytime as an accessible example of what's possible with LLMs, posing the thought experiment of how difficult the app would have been to build without AI — a question Mike readily admits he couldn't have tackled. They encourage listeners to try the app and reach out with feedback, closing on an optimistic note about the creative potential AI unlocks for developers at 00:56:04.
Transcript
00:00:01 - Anthony Campolo
Hello everybody. We are live. What is up? Mike Cavaliere, welcome to AJC and the Web Devs.
00:00:11 - Mike Cavaliere
Good to be here. Thanks for having me.
00:00:13 - Anthony Campolo
Yeah. Why don't you introduce yourself to our audience?
00:00:17 - Mike Cavaliere
Hey, I am Mike Cavaliere. I've been a software engineer for some 20 years now. I've built things, I've managed people. I've written one book. Just kind of an okay book.
00:00:30 - Anthony Campolo
You wrote a full stack Jamstack book?
00:00:32 - Mike Cavaliere
I wrote a full stack...
00:00:34 - Anthony Campolo
The only person to ever do it.
00:00:36 - Mike Cavaliere
The only person to ever do it? Probably. Yeah, well, I got that going for me. But yeah, I still build software. Right now I'm working on a storybook app that we're going to talk about a bit. What else to tell about me? Anthony, you know me better than I know myself, probably.
00:00:57 - Anthony Campolo
Well, the first thing I'll point people to is right here. FS 419. You could hear the episode with Mike where we went over his whole background. We talked about your book a lot on that episode and some of the work you're doing with Echo Bind.
And yeah, I think you're also doing a bit of a pivot now to do some more devrel type stuff, which I think is very cool because I remember you from writing blog posts about Bison, which was this really cool open source framework that people didn't really know a lot about and didn't have very good resources for. And there needed to be some good content around it.
So I think you're someone who's already done open source devrel certainly, and some devrel on the side for some of the jobs that you've done. But it seems like that's the type of thing you're trying to get more involved with these days.
00:01:45 - Mike Cavaliere
Yeah, I'm definitely dabbling in it. I always enjoyed the notion of building something for that personal itch and having fun doing it, but then kind of seeing, okay, what did I do in here that I could teach people about or share with people?
And so it seems like a natural fit for devrel, in addition to engineering itself. I'm kind of playing around with it, seeing how it goes. Doing a little bit of that right at this moment, just talking code and things we've created and what's interesting and valuable about it. So yeah, we'll see how that goes.
00:02:20 - Anthony Campolo
I'm almost not sure if this question is trolling me or not, or if this is a legitimate question. If this is a legitimate question, the Jamstack is a way of making front end websites that are decoupled from the back end, and then full stack Jamstack is a way of saying, screw that man, I want my back end anyway. And then you connect that back end to your front end that was meant to be decoupled from the back end. Yeah.
00:02:46 - Mike Cavaliere
So Jamstack is kind...
00:02:48 - Anthony Campolo
Of dead.
00:02:48 - Mike Cavaliere
Now.
00:02:49 - Anthony Campolo
Jamstack dead. No one cares anymore. There's literally a series of articles written last year that all said Jamstack is now dead. No one's allowed to talk about Jamstack anymore. Let's just move on. Let's forget about the whole thing. Let's all go back to WordPress. But they said that.
00:03:05 - Mike Cavaliere
If you want to know more about it, Anthony has a whole podcast that talks a lot about it. So go back, watch those episodes. They're fantastic. I wrote a book about it, which is now free because who wants to pay for the Jamstack? Cut into the Jamstack? That's right.
And you notice very cleverly, if you go to the homepage of that website, the logo is jam on toast. Okay, not everybody knew the mystery of why that was there. Now you know.
00:03:35 - Anthony Campolo
You should pull this up on your screen.
00:03:37 - Mike Cavaliere
Oh yeah, that's right. Cut into it. Look, it's still in my history. Auto-populates. Look at that. There's the jam. There's the jam, baby.
00:03:46 - Anthony Campolo
Build and deploy a full stack application using React and Next.js. Yeah, the title sounds a little awkward because you can't do Next.js without React, but I would say Next.js and like Postgres or Prisma really.
00:04:04 - Mike Cavaliere
I did that to hit on like one or two tech buzzwords, but also the fact that you could do it with React. You're leveraging Next.js specifically with React. So I wanted in a quick way to let people know that you're working with these two particular things that, yeah, one's included in the other, but both of them are really popular technologies by themselves.
So yeah, not perfect title, not a perfect book. Didn't technically finish it, but there's still some valuable knowledge and it's free. What do you care? Get it.
00:04:39 - Anthony Campolo
Yeah, it's a good historical document, I think, because in a lot of ways you built out a similar stack to what Bison would have been, and that was a similar stack to Redwood. Some of these use GraphQL, some of them don't, but they're all kind of using React. And Prisma is kind of the basis of what's happening here.
00:04:57 - Mike Cavaliere
True. Yeah, so it seems like Remix, or the Epic Stack, that as well.
00:05:07 - Anthony Campolo
Create T3 App, another one.
00:05:08 - Mike Cavaliere
Create T3 App. That's right. So yeah, it goes back to what we talked about a while ago, which is we're still looking for the JavaScript Ruby on Rails, right? Exactly.
For those in the audience, if you don't know Ruby on Rails or you don't know as much about it, Ruby on Rails was legendary in the aughts, in like the 2000s, because it was the first framework to basically have these generators built in and get popular for the generators, at least. I don't know if anybody did it before, but they had these generators where you could just run a command and you have a full create, read, update, delete app just in one command line command.
And it was because it was so opinionated and it just had everything inside of it ready for you that you could build entire startups really quickly. And so Anthony and I and Chris were years ago talking about what's the Ruby on Rails for JavaScript?
00:06:10 - Anthony Campolo
The link to the original Ruby on Rails demo that David Heinemeier Hansson did, where he demonstrates it from front to back and basically builds a blog in like 15 minutes. I highly recommend people check that out if they've never seen it.
I've never used Ruby on Rails, but I watched that tutorial and I was like, oh, I get it, because it was like Redwood. I'd used Redwood. It was like I could see that the Redwood tutorial even is partly based on that demo. It kind of goes through a similar thing of how do you run a command and scaffold a back end with an admin interface and then be able to create a blog post, but not create the infrastructure to create the blog post at the same time.
00:06:52 - Mike Cavaliere
So is it... I mean, I guess I'm going off topic a little bit, so feel free to say so.
00:06:58 - Anthony Campolo
It's all the topic. Don't worry, we'll eventually arrive at AI, but this is all important background because this is what you and I were talking about for years and years.
00:07:06 - Mike Cavaliere
So where is it now? Is there something that's close enough to Ruby on Rails for JavaScript? Is Redwood it? What's your opinion on this?
00:07:20 - Anthony Campolo
Well, I would say I think we're...
00:07:22 - Anthony Campolo
We already mentioned how there's things like Create T3 App and Remix and the Epic Stack and Next.js going farther into the back end, especially with React Server Components. So I think actually now there's a whole bunch of different options.
I think Redwood was there first. Redwood was there multiple years before any other frameworks. And many of these frameworks arrived in a very similar place to where Redwood started. I don't think Redwood gets any of that credit, but I'm not going to be like a bitter old man yelling at a cloud about who gets credit and who doesn't. So I don't want to go into that.
But at this point, there's tons of great full stack JavaScript options. They're all kind of React based. SvelteKit, they say they want to be kind of like a Ruby on Rails also now, but I don't think there's any real meta meta frameworks as there are for React. Like with React, you got this whole set of frameworks, you got meta meta frameworks.
[00:08:16] You have Next, then you have other frameworks built on top of Next. So you don't have anything built on top of SvelteKit yet that kind of gives you that whole back end integration in a way that would actually get you into Ruby on Rails world.
So I think some JavaScript devs have it, some don't. It kind of just depends what your view layer is and whether people have built out all these frameworks that give you all the Ruby on Rails functionality. Ruby on Rails developers would probably be like, man, none of these things are as good as Rails. But they do most of the same things at this point, except maybe short of really specific things like email functionality and cron and some higher level event-based stuff that can still be a little challenging.
00:09:02 - Mike Cavaliere
Yeah, the thing that I'm on the lookout for is just like, for one, there's too many options, and especially in React land. JavaScript land in general is a big wide world now. But in React land in particular, there's too many ways to skin a cat.
And then in terms of the frameworks that we've got out there, the thing I liked about Rails is you don't have to think. It's just a thing that you grab and it has all the tools. It's got the authentication, it's got the error tracking, it's got the transactional email and everything. Everything is just kind of decided, and you don't have to think too much about it.
I think that in order to get that out of where React is right now, you gotta form a strong opinion and be like, okay, Epic Stack is the one for me, or no, it's some derivative of Next.js or something like that.
[00:10:04] And there still isn't that one framework to rule them all. Yeah.
00:10:10 - Anthony Campolo
This is a really interesting question. And I could rabbit hole on this for a very long time. So I'll try and be kind of brief. But they're asking why has Redwood not become as big as Next, even though they have a lot of contributors who are very senior, and the founder of GitHub was the guy behind it.
I'm someone who's kind of been there from the start. So I'm kind of uniquely positioned to answer this question. I think there's a lot of reasons. I think Next.js started with a lot more momentum, both because it had already been around for three years when Redwood was invented. Next, I think, goes back to like 2016, 2017, and Redwood wasn't founded until 2020.
And even though Redwood was funded in the sense that it had a billionaire who created it and had a bunch of money to throw around, there wasn't the same imperative for growth that Next.js had being coupled to Vercel, which is like VC pumping hundreds of millions of dollars into this.
[00:11:06] Those things really make it shoot off. And Next.js is a great framework. You can't discount that. It's just good. It's very good. Has a great team of people behind it. You got great devrel like Lee on it.
So I think they just had a couple key pieces that helped them continue their momentum in a way that made it hard for Redwood to catch up. And then there's kind of this winner take all mentality with some open source things where people are going to start with the question of what's the most popular thing and kind of let that decide where they're going to go. So you get a lot of momentum just by starting as the first big React meta framework. You're just going to continue to get more people looking at it.
And I think a lot of JavaScript developers don't really want a Ruby on Rails. That was kind of one of the things that I came back to over and over again. Even when I would show them Redwood, they would still be like, well, that's cool, but I don't really want to use that.
[00:12:05] But I'm like, but it does all the things. And they're like, yeah, but I want to do all the things. I want to do it myself. I think that's just a very prevalent type of JavaScript developer who just wants to do things themselves. They want to create their stack themselves. Interesting. So that's like five or six reasons, but I think all of those factor in.
00:12:26 - Mike Cavaliere
Great question. Great answer too. Cool. Should we talk about storytelling?
00:12:33 - Anthony Campolo
Story time? Yeah. So AI, I've been talking about AI in all my recent episodes. So where are you at with AI? Why did you want to build an AI app?
00:12:43 - Mike Cavaliere
AI? Artificial intelligence? Well, AI is really trendy now, but I've been interested in it since before it was trendy. And I've always thought it was the kind of thing that's going to really take off. But I didn't quite anticipate ChatGPT coming along and it being so commonplace and being able to have this really strong conversational interface that just anybody, non-technical or otherwise, could really get.
And so now with this explosion of APIs and tools, there is so much you can do with it. I'm just addicted to it and really want to absorb as much as I can. But as part of that, I want to build things with it. I've dabbled a little bit with prompts to generate code and just scripting some basic stuff like that.
[00:13:43] And I started to think about what are some of the use cases where you can take something like the OpenAI API and make it useful to someone who has no idea about prompting or doesn't want to deal with prompting. And this is one of the first things I dabbled in, was a Bill Murray quote generator.
00:14:05 - Anthony Campolo
Is that still alive? Do you still have that?
00:14:08 - Mike Cavaliere
I don't even know. Let me see.
00:14:10 - Anthony Campolo
I love that.
00:14:11 - Mike Cavaliere
Let's see. Murray GPT.
00:14:16 - Anthony Campolo
One thing that I saw that was fun is someone using... they say explain... It's broken. Yeah, probably an API key. That's how someone was doing "explain dark matter in the voice of SpongeBob SquarePants." So it's like explain complex topic in the voice of a character. I think that's pretty cool. What I've tried before is having Joe Rogan explain the IPO process or something.
00:14:48 - Mike Cavaliere
Did you see that there was one guy who hooked a Python script to Google Vision and he basically gave it the voice of David Attenborough and had it narrating what it saw.
00:15:05 - Anthony Campolo
Oh, wow.
00:15:06 - Mike Cavaliere
Basically it was describing him as wearing glasses to capture a mate, as if he was an animal. And yeah.
00:15:15 - Anthony Campolo
So that's what we should do. We should create a story with Storytime so people know what we're talking about.
00:15:19 - Mike Cavaliere
Let's do it. So, Storytime. Back to my story about Storytime scratching my own itch. I was generating stories for my kids with ChatGPT and they liked them. And so I wanted to make this into an app because it can be made a lot simpler than throwing together a prompt for everything.
00:15:42 - Anthony Campolo
So what you would do is you would sit down with ChatGPT and you would say, I want you to write a story for my children who are around this age, and I want it to be about this thing. And basically you would just write a message straight to it and it would give you a story back. And then you started having this idea, hey, I could automate this and give you a couple key inputs of like, who is this for? What is it about? Exactly.
00:16:08 - Mike Cavaliere
And I pulled up this list of age groups and the topics associated with them directly from ChatGPT as well. Saved me the trouble of doing the research. And then I just kind of altered it. But let's say I got a kindergarten kid and then it's going to populate with topics that might be relevant to kindergarten kids. Same with early elementary.
00:16:27 - Anthony Campolo
So the topics are dependent upon the first one. The second is dependent on the first one. Yeah.
00:16:33 - Mike Cavaliere
And there's some overlap, but they all should be loosely interesting to kids in that age group. So let's pick building and construction.
00:16:49 - Anthony Campolo
One thing you did that I really liked is that not only does it generate the text, you also have it generate an image at the same time. So yeah, image using DALL-E.
00:16:59 - Mike Cavaliere
No, it's not actually. The initial version of it was using DALL-E, but right now I'm using Stability's Stable Diffusion. Okay.
00:17:09 - Anthony Campolo
Yeah, Stable Diffusion was one of the first.
00:17:12 - Mike Cavaliere
Yeah, it was one of the first open source models initially, right?
00:17:17 - Mike Cavaliere
Yeah.
00:17:18 - Mike Cavaliere
And I did that because I found that DALL-E has more restrictive rate limits. And so I found that I wasn't able to develop for it quickly enough or have the responses come back fast enough.
00:17:34 - Anthony Campolo
DALL-E also has this issue of having a really specific look. It seems like people see it and they know it looks like an AI-generated image. And also it will generate all this nonsense text and throw it around images. So it'll be like signs that are just gobbledygook. Yeah, stupid.
00:17:53 - Mike Cavaliere
Yeah, and so I did find, for what I'm doing, it produced some pretty good images. Because I did want a little bit of a cartoonish style because we're talking kids here, and that's the kind of thing that would work.
00:18:07 - Anthony Campolo
Does it just do a cover or does it do multiple images throughout?
00:18:10 - Mike Cavaliere
Right now it just does a cover. Multiple images is a challenge with the current state of AI tech. And so that's one that I'm delving deeper into. You can't get — I challenge you to try and take an existing AI API and just have it create multiple images with the same object or same character.
00:18:33 - Anthony Campolo
Well, what I would do is if the story is long enough, you could just take the first third, middle third, last third and have it generate an image on each of those blocks of text.
00:18:43 - Mike Cavaliere
You can have it generate an image about each of those blocks of text, but if it's containing a character, the character is going to look different in each one.
00:18:50 - Anthony Campolo
Yes, that's true. The images need to be just kind of abstract. It's not necessarily illustrating the story. They could be — I've done this with blog posts where they represent the theme of the thing you're talking about.
Like, I have a blog post that's about ethics of AI for nonprofits. So you have images of a giant dashboard where someone's using it and things like that. So they're general images. It can't really portray the actual story itself in an accurate way.
00:19:22 - Mike Cavaliere
And that is an idea I've thrown around, and maybe I will at some point.
00:19:28 - Anthony Campolo
And I think we're going to get into this, but we're already getting a question — basically, what's the tech stack for this? Using GPT endpoints. So you have an API key I'm assuming.
00:19:40 - Mike Cavaliere
Yeah, I got an API key, definitely. So this is using the OpenAI API to generate the content. It's using Stability AI's API to generate the images.
00:20:00 - Mike Cavaliere
How much do the GPUs cost per image?
00:20:05 - Mike Cavaliere
And I'm also using — let's talk about the tech stack. So Next.js is the framework that I'm using.
00:20:13 - Anthony Campolo
As we said, that's a framework you literally wrote a book on.
00:20:19 - Mike Cavaliere
We ought to get a kickback for that. I'm using the Vercel AI SDK, which is awesome.
00:20:26 - Anthony Campolo
This is nice, yeah.
00:20:28 - Mike Cavaliere
It really is cool. I like it a lot. The Vercel AI SDK does a lot of things. It gives you tools for building these types of conversational interfaces where you've got a server-side stream that's streaming to the OpenAI or Anthropic API or whatever it is, and then you've got this front end portion that needs to take input, send it to the API, the conversational API streams it back to the client, and then you need to do some other stuff with it on the client.
I'm using this and not even using the full capabilities of it, just the basics, and it's pretty awesome. And then the database is Prisma ORM.
00:21:17 - Anthony Campolo
What is the purpose of the database right now? What's being persisted?
00:21:22 - Mike Cavaliere
Right now the stories are being persisted. I'm doing that so that I can gauge the quality of the content.
00:21:32 - Anthony Campolo
Are they just persisted for you? Because there's no logins, so can people go back to see the stories they've generated?
00:21:39 - Mike Cavaliere
No, I'm working on that right now, actually.
00:21:42 - Anthony Campolo
There's no authentication or anything built into it right now, exactly.
00:21:45 - Mike Cavaliere
Right before I was talking to you, I was working on that actual branch. And I want people to be able to save stories that were created.
00:21:56 - Anthony Campolo
You know Suno AI, the music generation app?
00:21:59 - Mike Cavaliere
What is it called?
00:22:00 - Anthony Campolo
It's called Suno AI. This is a really cool app because they let you generate five songs a day and they're like two minutes. And then you can create playlists, you can share them, and you just get to have this growing list of songs you create. Then you could pay more to generate more at a time.
But I really like this model and I've shared this with some of my friends and they went crazy over it. One of my buddies is a teacher and he teaches eighth grade — English, biology, math, a whole bunch of subjects. He started creating songs for the Pythagorean theorem and natural selection. So he was coming into class like, "Hey guys, I just wrote this rap song about the Pythagorean theorem," and it's a whole song that he was creating with this AI stuff.
If you're looking for inspiration for what you could do with this, in terms of sharing stories and saving stories, I would look to this app for some inspiration.
00:23:03 - Mike Cavaliere
Okay, cool. I definitely will. Definitely put that one in the show notes. This is awesome. I feel like I played with an earlier version of this or something like it, because there's more than one of these out there.
00:23:16 - Anthony Campolo
There is, yeah. Another one just blew up called Udio. It has a really weird name. It's not as good — the songs Suno creates actually sound like full songs. It's absolutely mind-blowing.
00:23:32 - Mike Cavaliere
Interesting.
00:23:33 - Anthony Campolo
You'll get down with this app, especially because we were talking before about how you have a music background. So I highly recommend playing around with this tonight. But let's go back to Storytime.
00:23:45 - Mike Cavaliere
Oh yeah.
00:23:45 - Anthony Campolo
So we should kind of check out the story you generated.
00:23:49 - Mike Cavaliere
So, "Tiny Builds a Tinker Town." Everybody pause and read. Let me know when you're done.
00:23:58 - Anthony Campolo
Read a little bit of it for our non-sighted friends who are listening.
00:24:05 - Mike Cavaliere
I present to you "The Tiny Builders of Tinker Town." In the heart of Tinker Town, a special construction project was underway. Today, the tiny builders were constructing a playground and every animal was buzzing with excitement. Riley Rabbit, the fastest digger, zipped around, marking where the slides and swings would go. Marvin Mouse, with the sharpest eyes, measured each piece of wood to ensure everything was just the right size. Together with Terry Turtle, who knew all about safe building, they made a great team.
00:24:35 - Anthony Campolo
I'll do the next page. As the sun climbed higher, the playground started to take shape. Swings stood tall, ready to fly high. Slides curled like big shiny ribbons. Even a merry-go-round spun gently. Ready?
00:24:48 - Mike Cavaliere
Don't you upstage me, Campolo.
00:24:54 - Anthony Campolo
By the end of the day, all the little animals of Tinker Town gathered to see their new playground. The children cheered as they climbed, swung, and slid. Riley, Marvin, and Terry watched, their hearts full of pride.
00:25:05 - Mike Cavaliere
"Today we build more than a playground. We built a place for joy." Terry smiled wryly and Marvin nodded, knowing tomorrow they'd build another dream just as splendid.
00:25:16 - Anthony Campolo
So that's great. This is one of the things I did myself frequently with ChatGPT. I had it create these ridiculous short little stories about things, some of which were a little obscene because if you presented it just correctly, you could get it to create a story about, say, two people creating a generation-long violent conflict around two people pooping each other to death.
00:25:47 - Mike Cavaliere
What a way to go. My goodness.
00:25:52 - Anthony Campolo
It's just really cool how it understands implicitly how stories are structured. So it could generate thousands of these.
00:26:01 - Mike Cavaliere
Yeah. And I have a loose unprotected admin interface where I'm just listing them out. It's already got 12 pages worth from minimal access. Some of that's me testing, I'm sure. But people have expressed that they enjoy it.
I met with a friend today and he's definitely used this with his kids. He started recommending some cool features that I could add. You can actually put in the length. I will tell you this — prompt engineering, another reason why I built this was to get better at prompt engineering myself and learn really how to prompt properly. Length is one of those things that's a little hard to get right. You can make it generate a longer story, but it won't be perfectly accurate.
00:26:55 - Anthony Campolo
Yeah, I want to dig into this because with things like that, you can literally prompt it in terms of interfacing with the chat endpoint or the chat UI interface and tell it, "Hey, I want this to be longer or shorter." But there's also ways to get into the guts of it through other means to express these types of things. And that can differ from model to model, service to service. So when you do this, how are you going about telling it you want a longer or shorter story?
00:27:30 - Mike Cavaliere
Well, I'm not going that far yet. Right now I'll show you guys what's under the hood. Basically what's happening is just one big prompt right now. So if I go to create story, I've got a templated prompt that's basically kicking stuff out.
00:27:48 - Anthony Campolo
Yep. This is how most people do it.
00:27:51 - Mike Cavaliere
Exactly.
[00:27:52] - Anthony Campolo
A prompt, and you have the things in curly braces. Yeah. And so someone's asking this. I think the answer is no, this is not open source.
00:28:02 - Mike Cavaliere
Not currently, no. But I don't know what I'm going to do with this just yet. It may make it.
00:28:09 - Anthony Campolo
This is your window into the magic.
00:28:11 - Mike Cavaliere
Your window into magic.
00:28:13 - Mike Cavaliere
But if you want to know how to do stuff like this, I'm glad to chat.
00:28:18 - Anthony Campolo
Yeah, you got your DMs open. Mike's a friendly fellow. So if you want to learn more, just hit him up and pay him.
00:28:26 - Mike Cavaliere
Yeah. Pay me. No, I'm kidding. I'm glad to tell you about it. But this is what I'm doing to control the length. So this is like an old, apparently, prompting trick where you give it some severe consequences, and it'll make it do what it's supposed to a little bit more.
People will put stuff like, you know, if you don't do this, I'll kill your grandmother. Like, something intense. It's a little too much for me. I don't really want to threaten any grannies.
00:28:53 - Anthony Campolo
Yeah, so with prompt engineering, it's a little bit like alchemy. You hear things like this about, like, if you say do this, then they'll be able to do it. And I would say it's true. I've had many long conversations with GPT where I can convince it to do something.
I think the idea of threatening it to get it to do something is not the right way to think about it. It's more so you want to present a circumstance in which it would be okay for it to do something. So if you say, I need this to be very long because I need to write an academic paper that is going to be considered very rigorous and needs to be well done, it will be like, okay, cool, I'm going to give you like 3000 words. Versus like, I want this to be a tweet that's going to come across like, you don't want to think about it as trying to coerce it into doing something. You want to think about kind of tricking it, like you've hypnotized it.
[00:29:54] It's like thinking it's in the right situation to do the thing that you want it to do.
00:30:00 - Mike Cavaliere
And is that, like, known to be more effective?
00:30:03 - Anthony Campolo
That's my experience having worked with it a long time. And I think when people say like you need to threaten it to get it to do something, I think that's kind of like a second-order advice that people gave that's being kind of distorted a little bit.
00:30:17 - Mike Cavaliere
Interesting, because I've seen a lot of people use that technique. Oddly enough, like people that know more than me.
00:30:22 - Anthony Campolo
Because it's easy and it's simple. It sticks with you. And like I said, it does work, and it does work in certain situations. But I'm not saying it doesn't work. I'm saying the more effective way to think about it is giving it the right context.
So what they're doing is they're presenting a context where it feels like it has to answer, something bad is going to happen. But as more people do this, they can correct their models to not do that. Like they can build their own logic in saying, hey, people are threatening you and saying the world's going to end, they're messing with you. The world's not going to actually end. And then that can be built into their own base prompt.
00:30:53 - Mike Cavaliere
Yeah, that's a good call. Another thing, talking about prompt engineering. One thing that's in the prompt engineering guides, like, I actually am not doing this here, but you really should. You have to give it an expert, where you basically let it adopt a persona like, you are a children's book author. Oh, look at that. Copilot knows.
00:31:17 - Anthony Campolo
There you go.
00:31:18 - Mike Cavaliere
Yeah. And this is basic prompt engineering, but by making it an expert, you're automatically accessing a big chunk of knowledge from the LLM. And so this is something that I do by default with almost every prompt that I write.
Or another good thing to look up is ChatGPT Auto Expert. This is like a set of custom instructions that you can just paste into your account and it'll automatically open up. Oh, sorry. Thank you.
00:31:55 - Anthony Campolo
I have not tried this. I've heard about it.
00:31:57 - Mike Cavaliere
Oh, it's phenomenal. You can basically... here, let me open a new window.
00:32:03 - Anthony Campolo
Can you talk about the one you're talking about also? Grimoire?
00:32:07 - Mike Cavaliere
Oh, Grimoire. Yeah, for code. There you go. And so Grimoire is really great for coding. Like, write an address form component in React using React Hook Form and Shad UI. Usually this will challenge it really well. It won't do it with best practices necessarily, but it'll definitely give you some code to work with.
Grimoire is just a custom GPT that is tailored for writing code. And in some scenarios I've watched, I've used it separately from like GitHub Copilot and it'll just boilerplate things really well. I'm really pushing it to the limit though, because I'm asking it to use things that are like updated relatively recently. So it's probably not going to give me the best results. It's not the best example, but if you ask it some more involved stuff that is like TypeScript or JavaScript based or Python based or whatever, that doesn't depend on...
00:33:22 - Anthony Campolo
LLMs are killer at TypeScript. Yeah, it's Microsoft, of course.
00:33:29 - Mike Cavaliere
Here, let me stop and ask a more generic one. Show me how to create a linked list in TypeScript. When's the last time you created a linked list? It's the first thing that came to mind. You know.
00:33:48 - Anthony Campolo
I know a linked list, or create a linked list. I know that it's like a train where the front car connects to the back car and then you have your train.
Actually, I know the linked list mostly because that's how most people explain blockchains, that each block is connected to the block before it. So that's why the whole thing needs to be traversed across and why it's actually secure because each block is verified by the block before and so on and so forth. So that's kind of the most context I have for linked list, is using it as a metaphor for blockchains.
00:34:26 - Mike Cavaliere
Yeah. I mean, I remember this from computer science in college. I don't even know how I thought of this just now, because the last time I used this was probably in college. Yeah, but it's a cool pattern. But anyway, Grimoire is really cool.
What was the other one? ChatGPT Auto Expert. So let me see. I'll do a simple prompt with that. Cool.
00:34:47 - Anthony Campolo
And I just updated the YouTube description with all of these links so people watching, just refresh. You'll see all these links in there.
00:34:56 - Mike Cavaliere
Tell me about the capital of Uruguay. All right. So Auto Expert, ChatGPT Auto Expert, is a set of custom instructions that you paste right into your settings in OpenAI that will allow you to do things like say, okay, verbosity is five. And then you put your prompt in and it'll control how verbose it is.
In addition, what it'll automatically do is select an expert based on your prompt and then make your prompt better and teach you better ways to do the prompting in the process. And so, like, two things that you'll learn out of the prompt engineering documentation in OpenAI and Anthropic and whatever. Number one, assigning an expert. Number two, have it define a plan before you ask it to do something.
So it's going to give you better results if you say, all right, well, let's just say you say, okay, build me a Markdown spreadsheet of the most important cities in the world for commerce.
[00:36:12] If you have it define a plan first, it's going to do a lot better job than if you just ask it to do that directly. Same thing with anything complex and involving coding. And so this just kind of does that for you, this set of custom instructions. So it simplifies the process. And so you'll just end up getting better results. It also provides links that don't always work. In this case they did, but it provides links, which is pretty cool.
00:36:35 - Anthony Campolo
Yeah, this is a custom GPT. So just so people know, basically what that means is...
00:36:40 - Mike Cavaliere
Well, this one isn't. So yeah. Not to cut you off, but they have a custom GPT for it. This is not the custom GPT version.
00:36:48 - Anthony Campolo
No, Grimoire. You're using Grimoire right now, right?
00:36:50 - Mike Cavaliere
No, no, no, I'm using Auto Expert. This is just ChatGPT.
00:36:53 - Anthony Campolo
Okay. Sorry.
00:36:54 - Mike Cavaliere
Yeah, sorry. I switched quickly. This isn't Grimoire anymore.
00:36:58 - Anthony Campolo
Okay. Gotcha.
00:36:59 - Mike Cavaliere
Okay.
00:37:01 - Anthony Campolo
Yeah. No, I was fussing with the Grimoire. I lost the thread real quick. So how do you get from Auto Expert to ChatGPT? Auto Expert is just a repo?
00:37:13 - Mike Cavaliere
Right. It's just, so in your settings, I don't want to open my settings here, but in your settings you can paste custom instructions. And so you go here, they have a chat one and a dev one.
00:37:24 - Anthony Campolo
Gotcha.
00:37:25 - Mike Cavaliere
You go in here and, oh wait.
00:37:27 - Anthony Campolo
This is a custom GPT.
00:37:28 - Mike Cavaliere
This is a custom GPT. Yeah, that's not what I'm using. Yeah.
00:37:31 - Anthony Campolo
Because I wanted to make sure that distinction is clear for people because Grimoire is one and then that one is one. What you were doing though was not that, correct?
00:37:40 - Mike Cavaliere
Because this started before GPTs were a thing, custom GPTs. Right. Yeah. So this is the set of custom GPTs and that's newish. But what it was before that is Auto Expert and Auto Expert Developer. And basically you would take these Markdown documents and you paste that into your settings and it just automatically does this for every prompt you write.
00:38:05 - Anthony Campolo
Yeah.
00:38:07 - Mike Cavaliere
And it's also got like slash commands and stuff too.
00:38:10 - Anthony Campolo
Yeah. Because ChatGPT has custom instructions now. But they didn't always.
00:38:14 - Mike Cavaliere
Yes, that's correct.
00:38:15 - Anthony Campolo
Yeah.
00:38:16 - Mike Cavaliere
Yeah.
00:38:17 - Anthony Campolo
Okay, cool.
00:38:18 - Mike Cavaliere
Yeah. You can do like help review. So like, yeah. So help Uruguay. Oh wait. Actually no. Help give a list of commands.
00:38:29 - Anthony Campolo
This is kind of like a Discord bot with the slash commands.
00:38:32 - Mike Cavaliere
Exactly. Yeah. And you could make these commands. That's the coolest takeaway from this too, is like, you can make your own slash commands with ChatGPT if you wanted to, which is pretty cool.
00:38:49 - Anthony Campolo
No, it's awesome. I've seen some things where people will, like, the way they can interact with an LLM and they'll create kind of like a pseudo programming language real quick and then just start programming with it, like in the language they created, because they prompt it with enough instructions for it to extrapolate an entire programming language. That's fun. The stuff is just mind blowing to me.
00:39:11 - Mike Cavaliere
I think it's also got, where is it, you can make it share alternate views or perspectives on a topic. You can make it argue with you.
00:39:23 - Anthony Campolo
I like that because ChatGPT, it has a perspective. It does. If you ask it about enough topics, you'll start to learn its perspective on the world.
00:39:32 - Mike Cavaliere
Exactly. Cool. Yeah. So how did we get down this rabbit hole? We were talking about Storytime. Oh, yeah, we were talking about...
00:39:40 - Anthony Campolo
Prompt engineering. And just like how the prompt worked. We went to the prompt code, that was super useful. Basically, what you showed me there with your prompt and how you're injecting variables is exactly what I imagined you were doing when I kind of used this app myself.
So I definitely recommend people who are interested in this kind of stuff, like prompt engineering, basically means you create a template that you feed to an LLM with a couple variables you can swap in and out. Really, that's what most prompt engineering comes down to, am I right? [00:40:08] - Mike Cavaliere Yeah, I would say that the prompt engineering is how you write the prompt. But then if you're building an app based on prompt engineering, that's exactly it, yes.
00:40:17 - Anthony Campolo
That's a good way of putting it. What I'm defining is how you can actually productize this and turn it into a thing. The way you actually get it to output something useful in the first place is kind of just figuring out the way to explain it in explicit enough language, and that's something that I don't think is quite... it's a hard thing to put into specific rules and terms and teach someone to do.
It's something that I only really learned to do from using ChatGPT over and over again every single day and just seeing what it would give back and then tweaking what I said. So is that kind of similar with you? Did you just work with ChatGPT a lot and that's kind of how you started to understand how to work with it? Or did you find these prompts?
I've read these docs and to me this focuses more on how do you get the right stuff into your prompt.
[00:41:12] But I don't know, I felt like I had to learn a lot just from doing it myself.
00:41:18 - Mike Cavaliere
Yeah, and for me it was both. I know the way I learn and I learn by doing. But when I have these tips along with it, basically what I would do is I read these sections, took notes, and then I took each thing and I practiced it.
So like, include details in your query, ask the model to adopt a persona. I went in and just drilled that like five times. I'm like, oh, that kind of makes sense now. Using delimiters is another good thing. Specify the steps required to complete a task. All these things, I drilled them a little bit just to retain them. And then in my daily use of it, I started applying them more because I remembered them at that point.
So that's how I got better at that part. And then once I had a good understanding of, oh, this is how you create a kids story with a prompt...
[00:42:11] I was like, all right, well, I already know from being a developer what it's like to make something dynamic. And so it was very easy for me to create, like, this is like Liquid templating language where I just create a project that replaces and injects this stuff and makes it more meta, essentially. And that part I already knew how to do, just because I've done it so many times over the years.
00:42:41 - Anthony Campolo
This is the step I'm missing in my current workflow for my auto gen script, where I want people to be able to say basically like, what kind of summary do you want? How long do you want it? How many do you want? How many chapters do you want? Do you want title suggestions? If so, how many? All those kind of things are the things that I want to start building into it.
00:43:06 - Mike Cavaliere
What is the topic of that blog post? That blog post is great.
00:43:09 - Anthony Campolo
So just go here, ajwebdev.com. Just go there and then go to post or blog and then there on the right.
00:43:18 - Mike Cavaliere
Oh, there we go. Anthony talked about this on a previous episode, the one about RAG. And this is just a cool process he's got to auto-generate the show notes. It's really sick.
00:43:32 - Anthony Campolo
Yeah, so this has no prompt engineering in terms of what you've done. But this prompt right here...
00:43:39 - Mike Cavaliere
This is...
00:43:40 - Anthony Campolo
Sorry, this is a prompt. There's no ability to modify the variables though.
00:43:45 - Mike Cavaliere
Right, right, right.
00:43:46 - Anthony Campolo
So that's what I mean because, to me, I feel like just prompting in the sense of giving a thing to ChatGPT is prompting. It feels like it's too lofty of a title for it, right?
And I honestly feel like it scares people away. This is the moment for the English majors, for people who learn to write, the humanities people. They are the ones who have the ability to communicate ideas in language. And when you call it engineering, those people are like, oh, okay, well then that's not for me then. So I don't know, it's interesting, it's an interesting term and I'm not really sure how I feel about it.
00:44:27 - Mike Cavaliere
I get you. If people are scared of the word engineering though, in terms of prompt engineering, they should just look at this Anthropic prompt engineer job that got posted, which is like for 300K a year.
00:44:40 - Anthony Campolo
Yeah, it pays well. Apparently in 2024, building just web apps doesn't attract many recruiters. Creating AI-powered web apps like this one is the hot thing right now. What are your views on this, Mike?
00:44:52 - Mike Cavaliere
Oh, let me look at that question again. I got it on my other screen. Yeah, I don't attract many recruiters creating AI-powered... I'd like to know more about it. I don't know. Is it the hot thing? I wouldn't be surprised if it's the hot thing. I don't know that I've verified that myself, but I don't disbelieve it for sure.
00:45:14 - Anthony Campolo
I think there's a hot thing on Twitter and there's a hot thing in actual recruiters. So I can't say whether it is or not. I think recruiters are always going to look for people with proven track records of working at other companies and delivering results. I think that's going to trump any tech trend, really. That's kind of my take on it.
00:45:37 - Mike Cavaliere
Sounds valid too, but I'd like to know if there's any... to the person that asked the question, I'd like to know how you got that perception, maybe there's something to it. If this is what attracts people, I'm curious.
00:45:52 - Anthony Campolo
It might be like a foot in the door type thing. If you got ten people who are all full stack JavaScript engineers applying for a role, and one guy's like, "But I know AI," I can see how that makes you look like you're a cut above because you've got enough people who can work a MERN stack. It's like you're kind of expendable.
00:46:14 - Mike Cavaliere
Right. Well, Anthony and I were talking about how we don't necessarily believe programmers are going to lose their jobs because of AI in this grandiose sense. But there is something about having an edge because you understand the AI technology more and you know how to use it and incorporate it in your daily workflows.
I think it may set people apart because it's going to become so heavily used that if you don't use it, you might fall behind in some ways. So maybe there's something to that.
00:46:52 - Anthony Campolo
I think there's an interesting distinction to make with being able to create a traditional web app that is infused with AI and gives greater functionality and value to your customer through AI integrations, and then you yourself writing code, organizing your life, using AI to accelerate yourself.
Those are both two very valuable things that are kind of separate, and they feed off each other. I find that once you use AI in your daily life, you start to understand its potential well enough to build it into a product.
But I think there's actually kind of two separate issues there. You could yourself become a lot more effective just by using coding tools and things like that, but you could also be like, okay, this is an app I'm building, how could I figure out a way to leverage these AI things in a way that makes this app even doper?
00:47:46 - Mike Cavaliere
Yeah, I think that you definitely need to consider it. Anthony got me.
00:47:52 - Anthony Campolo
Yeah. Plus, it gives an edge over just MERN. Totally, I agree. Everyone knows MERN at this point.
00:47:59 - Mike Cavaliere
It's like a cheeseburger. A cheeseburger with ketchup, you know?
00:48:03 - Anthony Campolo
Yeah.
00:48:04 - Mike Cavaliere
Oh, like a little...
00:48:05 - Anthony Campolo
Ketchup and mustard level.
00:48:09 - Mike Cavaliere
Yeah, you lost me there. I'm a little bit old school. It's a little too fancy for me with the mustard.
00:48:19 - Anthony Campolo
Mustard on a cheeseburger, that's crazy. What else you got to say about Storytime?
00:48:28 - Mike Cavaliere
So another fun thing is tying in models together. This is coming from OpenAI, and then this over here is Stable Diffusion. That means I have separate prompts.
So like, create story image... models are created different. Stable Diffusion, the prompts are completely different. One thing I do really like about OpenAI is the natural language aspects of stuff. I mean, you're very much just telling a person what to do with some constraints, whereas with Stable Diffusion, you're listing stuff. You're saying, create this thing in this quality, with this detail, with this artistic type. You gotta give it a way different language.
00:49:18 - Anthony Campolo
That's kind of prompting.
00:49:19 - Mike Cavaliere
One thing that I may do with this, just to the goal of my own prompt engineering improvement, I was thinking of making the model switchable because I definitely want to try out Anthropic more and learn the ins and outs of how Anthropic works. So I could probably put a drop down just for me that lets me say, okay, OpenAI or Anthropic or Cohere.
00:49:45 - Anthony Campolo
That would also give you better sensitivity at a cost. You could weigh different models, see if ones are giving similar output, and then pick the cheaper one.
00:49:53 - Mike Cavaliere
Yeah, so I do want to do that. And I got a lot of other features planned. I definitely want to make it because people are starting to use it. I've got friends and people that I've tweeted out to that are playing around with it.
So I want to create some real features around this for the people that are actually using it with their kids. I'm building authentication in, and then I'm going to make it so that you can explore the existing stories that people have created and you've created.
00:50:29 - Anthony Campolo
Charge for it at a certain point.
00:50:31 - Mike Cavaliere
Maybe, maybe.
00:50:33 - Anthony Campolo
I think once you get to logging in and doing that, once you have the base features for that, the easy thing is then just you have to have some sort of limit or else someone's going to spam you to death. And then you say, hey, if you want to go beyond this limit, then you pay this amount, and then you can kind of start comparing that to your cost for actually running the thing.
00:50:54 - Mike Cavaliere
Yeah, because I don't want to be spending money to work on this.
00:50:58 - Anthony Campolo
And that's why these AI things, it's helped me just think about how do you build a kind of bootstrap SaaS? Because I can see the functionality and directly see what it costs because you just map it to what the model costs. What does it cost me to feed this thing to ChatGPT? And then I just charge more than that and that is my margin, pretty much. It's the only thing I'm paying for.
00:51:18 - Mike Cavaliere
Yeah, exactly. And so I'm going to look at the music service that you put in there because I was thinking something like that, like the number of generations.
00:51:26 - Anthony Campolo
Yeah, so you know, it gives you five and then after five a day you run out. And if you want to create 50 songs a day, then you pay more money.
00:51:32 - Mike Cavaliere
Yeah. And then a friend had the other recommendation of me putting, because people would love to have this as an e-book too. So I can hook this up to generate physical ebooks, like PDF files and MOBI files.
00:51:45 - Anthony Campolo
Add extra chapters, like someone really likes a story, they want a sequel, maybe a trilogy.
00:51:51 - Mike Cavaliere
I'll wait until there's a rating mechanism. I definitely want to make it so that you can like stuff.
00:51:55 - Anthony Campolo
Yeah, that's the way I thought of as well, giving people a thumbs up or thumbs down on stories so that you start training that and you get better and better stories.
00:52:02 - Mike Cavaliere
Exactly. Content control is, I think, a big thing with a lot of AI, LLM-based...
00:52:09 - Anthony Campolo
Yeah.
00:52:10 - Mike Cavaliere
Startups or SaaS or whatever.
00:52:12 - Anthony Campolo
The RLHF, the reinforcement learning through human feedback. That's just a fancy way of saying thumbs up and thumbs down on output.
00:52:19 - Mike Cavaliere
Or I can put a little feedback text box. Somebody can comment and say, this sucks, you know?
00:52:24 - Anthony Campolo
Yeah. Or flag as inappropriate, so it feels like it's not right for the age group or something. Because you're geared towards kids and that can be dicey, especially when you can't have certain guarantees around the output.
Thankfully ChatGPT has built in most of that stuff. ChatGPT is not going to write this crazy gory story about murder and death. You feel pretty safe about that. But at the same time, it'd be nice to just get a way for people to give feedback like, hey, I didn't think this was right for my kids for XYZ.
00:52:57 - Mike Cavaliere
Yeah. And I want adults to use this, not just the kids by themselves. But I should put some kind of language around that.
00:53:07 - Anthony Campolo
Disclaimers, yeah. Every AI system I use now has so many disclaimers around it. CYA type stuff.
00:53:16 - Mike Cavaliere
Yeah, so that's it in a nutshell. I got a lot of plans for it. So we'll see how it evolves.
00:53:23 - Anthony Campolo
Awesome, man. No, it's cool. I think this is a textbook AI app that gives a good way of explaining what it is and how you build it yourself. I think anyone could kind of come away from this episode and feel like, hey, I could build this myself, and I hope you'll have that. If not, then we got some tutorials to create for you, probably.
But yeah, it's just a front end that you're throwing a prompt at and the prompt is being selected and you kind of just have some ways of defining that. But the real work was you figuring out what is something useful that people would want to do with an LLM, and how do you constrain them in a way that lets them define exactly what they want in terms of the type of story and who it's for.
00:54:11 - Mike Cavaliere
Yeah, and if anybody tries out the app, please drop me a line. You can get to my...
00:54:17 - Anthony Campolo
Let's give all your contacts, Twitter, your LinkedIn, all that stuff.
00:54:22 - Mike Cavaliere
Mike Cavaliere and...
00:54:24 - Anthony Campolo
Yeah, homepage.
00:54:25 - Mike Cavaliere
All the others are in the channel. But I'm easy to find. You can Google me, YouTube search me or whatever. I'm around. I'd love to hear what people think.
00:54:36 - Anthony Campolo
Looks just like where you look on my front page, these images where there's a little ring around it. It's perfect.
00:54:44 - Mike Cavaliere
I thought you did that on purpose. No?
00:54:46 - Anthony Campolo
Every episode's like that. I just have an HTML template that does that. Cool.
00:54:52 - Mike Cavaliere
I wanted to animate this thing for the longest time, but I just never did it.
00:54:57 - Anthony Campolo
That's cool. Well, thank you so much for coming on to the show. This was super fun. It was great to catch up with you in general. You and I go way back, so it's nice to know someone else from the good old days who's also hacking on AI stuff.
It's one of the reasons I enjoy getting people on, because people are fairly skeptical of AI, and I think that's fine. But I think these are the type of things where you can start to show what you can create with this. How would you task someone with the thought experiment of how would you have built this before an LLM? If you wanted to build this app without ChatGPT, how would you do that? Do you think you would know how to do that? Probably not.
00:55:39 - Mike Cavaliere
No, and you're absolutely right about that. It would have been quite daunting.
00:55:44 - Anthony Campolo
Yeah, cool. Anything else you want to show or say, or do you want to call it here?
00:55:49 - Mike Cavaliere
No, I'm good. Thanks for having me, man. It's good seeing you and good catching up and all that.
00:55:54 - Anthony Campolo
Yeah, all right. And you can catch us next time. There are no scheduled shows, so you can find out on my Twitter, ajcwebdev. Bye, everyone.
00:56:04 - Mike Cavaliere
Later.