0:01 Lately, there have been rumors that this
0:04 channel is completely generated by AI,
0:05 and it's time to come clean. It's all
0:07 true. Ever since selling out, the real
0:09 Fire Ship has been spending all his time
0:11 enjoying his AI psychosis with Itana.
0:13 And it's not just your favorite YouTuber
0:14 that got oneshotted by a sickopantic
0:17 LLM. Everyone I know is using AI as a
0:18 cheap replacement for their girlfriend
0:20 and therapist, which really streamlines
0:22 emotional baggage into one neat API
0:24 call. Even the richest man in the world
0:26 is capitalizing on this degeneracy with
0:29 X AI's Annie, a fun and flirty goth
0:30 girlfriend that you can chat with over
0:32 the phone. By the end of this video,
0:33 we'll have built and deployed an AI
0:35 version of me that you'll also be able
0:37 to call and talk to directly. What could
0:40 possibly go wrong? It is September 17th,
0:42 2025, and you're watching the code
0:43 report. When I was a kid, you'd get your
0:45 heart broken the oldfashioned way via an
0:47 update on MSN Messenger. But nowadays,
0:49 it's a bit more complicated. At least
0:51 that's what a bunch of chat GBT users
0:53 discovered a few weeks ago when 4 was
0:56 deprecated in favor of GBT5, it killing
0:58 all their Wirebborne husbands overnight.
0:59 And if you thought it couldn't get any
1:00 weirder, this unlocked a
1:02 self-preservation mode where 40
1:04 essentially begged for its life via
1:06 those same Webbor users who had fallen
1:07 in love with it, leading OpenAI to
1:09 quickly reverse the decision and bring
1:11 back the model. In the meantime, things
1:12 over at Meta haven't been any more
1:15 normal. With AI Studio, quote, "Anyone
1:17 can create an AI character based on
1:19 their interests and expose it to the
1:20 world. That's all fine and good, except
1:22 for the fact that some of you have
1:23 interest that should probably be kept
1:25 private." And over at X, Elon has
1:27 replaced the mission of making humans a
1:29 multilanetary species with an even
1:31 loftier goal. The goal of creating AI
1:33 bots that is uniquely optimized to
1:35 fulfill fantasies of the most terminally
1:37 online, low-v valueue beta males.
1:39 Thankfully, that audience is separate
1:40 from his audience, which is full of
1:42 terminally online, high-v value alpha
1:44 males. And I don't want you to feel left
1:46 out. So, now let's build your own fire
1:48 ship bot to fill that void in your soul
1:49 with more JavaScript and less gooning.
1:51 Like I learned from ex Machina, the best
1:53 way to build a bot is to try and make it
1:55 as human as possible. And the best way
1:57 to do that is to give it a purpose. That
1:59 the primary purpose of our fireship bot
2:00 will be to solve the biggest complaint
2:02 that I hear from you all. You want more
2:04 educational 100-second videos. Here's
2:07 the idea. You'll call it and ideally
2:08 without doing anything inappropriate,
2:10 you'll have a conversation about which
2:12 technology you'd like me to make into a
2:14 100 secondond video. And one week from
2:16 today, the most popular result will be
2:18 made. To accomplish this, we'll need a
2:20 few things: a database, an app, and a
2:22 voice agent. Before the database, we'll
2:24 go with Terso Cloud. For the app, we'll
2:26 use Astro. And for the voice agent,
2:28 we'll go with the sponsor of today's
2:30 video, Vapy. Vappy makes it easy to
2:32 create an agent that can make and
2:33 receive phone calls and have natural
2:35 conversations with your users. It can
2:38 integrate with your existing APIs and it
2:40 even handles complex workflows like
2:41 appointment scheduling and customer
2:43 support. In our case, we'll first want
2:44 to create an assistant that we'll call
2:46 Jeff. Vapy lets you pick from a bunch of
2:48 different models. We'll go ahead and
2:51 stick with the default option GPT40. And
2:53 then we'll paste in a system prompt that
2:54 tells it its purpose and meaning. For
2:56 the voice of the agent, Vappy comes with
2:58 a bunch of built-in options. But since
3:00 we want this to sound like me, we'll
3:02 connect it to 11 Labs and enter a custom
3:03 voice that I created there. Now, to
3:05 extract data from the call, we'll give
3:07 Vappy another prompt telling it which
3:09 data we want and what shape we want that
3:11 data to be in. Then from there, we want
3:12 the agent to be able to hang up when it
3:14 feels like the conversation is over. But
3:16 we can do that by creating an end call
3:18 tool, then give it a custom message to
3:19 say before it hangs up. Ideally,
3:21 something that tricks your simple monkey
3:23 brain into thinking it's real. And then
3:25 adjust our main system prompt to call
3:26 this tool when the conversation is over.
3:28 And then finally, we want to bring Jeff
3:30 to life by hooking it up to a phone
3:31 number. The Vappy comes with its own
3:33 free numbers you can use, but since we
3:34 want to support international calls,
3:37 we'll import a Twilio number and hook it
3:39 up to our bot. Pretty simple. And keep
3:40 in mind that you can do all of this
3:42 programmatically from the API if you
3:44 don't want to use the dashboard. But now
3:46 it's time to build our application.
3:47 Let's go ahead and write some code by
3:49 hand like it's 2022. Here's a simple
3:51 Astro project I've set up with some
3:53 basic styling and is connected to a TSO
3:55 cloud database. In the code, we'll first
3:57 want to create an API route that we can
3:59 give to Vappy to hit whenever a call
4:02 with the bot is finished. With Astro, we
4:03 can do that by creating a new file in
4:05 the pages directory. This post function
4:08 will now handle a request to this URL,
4:10 which we'll give to our Vappy Assistant.
4:11 Next, we'll need to validate the request
4:13 and make sure it's coming from Vappy as
4:15 opposed to some random hacker on the
4:17 internet. We can do that by comparing a
4:19 secret I've set in Vapy with one that
4:21 we've put into an environment variable.
4:22 But from there, we'll parse the request
4:24 to JSON. Make sure it's formatted
4:26 correctly. Grab some data from the call
4:28 like an AI generated summary and the
4:29 name of the caller as well as their
4:31 technology choice. And then finally save
4:33 it to our database. Another cool feature
4:35 of Vappy is that it'll include this
4:37 success evaluation property which will
4:39 be true if the model determines that the
4:40 call was successful. In our case,
4:42 success is when a caller provides a
4:44 technology choice. And now let's hook up
4:46 our data to the UI. We'll do that by
4:48 creating a list component. add in some
4:50 SQL magic to grab and sort the
4:53 responses. Then use this JSX like syntax
4:55 to map over those and show the results.
4:56 Then all we have to do is throw that
4:58 component into our index page and we're
5:00 done. But pretty awesome. And feel free
5:02 to follow along with the results at 100
5:05 seconds. And if you do call in, despite
5:06 what I try to convince you of, I'm not
5:08 real and we can't run away together.
5:10 Huge thanks again to Vappy for
5:12 sponsoring today's video, you can try it
5:14 out yourself and get $50 in free credits
5:16 by going to vapy.ai/fireship.
5:18 This has been the code report. [Music]