Let's Build a ChatGPT Interview Bot | Hands On Project

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hi there I see you're interested in the front-end react developer position can you tell me about your experience with react shograng started as a hobby interest and then I just found myself having to use it can you give me an example of a react project you've worked on sure Greg but first can we react to your thermostat that's really high in this room haha I wish I could adjust the thermostat remotely but back to your react project I'd love to hear about it yeah sure so I created a note taker app that's awesome Travis a note taker app with Redux sounds like a great project I'd love to take a look at your GitHub repo sometime next question do you have any experience working all right next question tell me about a time when you had to debug a tricky react issue how did you approach it truthfully Greg I just got mad and I took my computer and I threw it across the room and that was it I left and I went home oh no Travis I hope your computer survived the ordeal sometimes debugging can get frustrating but it's good can you explain the concept of State in react yes but can you go ahead and just give me the job please haha I appreciate the enthusiasm hey everyone Travis here from travisdom media today is going to be a blast today we're going to be building a front-end react developer interview bot with chat gbt in Python so the context is this AI bot will act as a front-end react developer interviewer interviewing me for the position and it's not going to be text like we normally do with chat gbt we're going to be using the whisper API to convert our text to speech so that we can talk to the AI model and then the response we get we're going to run it through another API free of course to make that voice sound realistic as well and we're going to learn all about how to save the chat history so that the conversation can flow naturally you'll learn how to use the openai API you'll learn how to use the whisper API to take your text to speech you learn how the chat GPT handles history and how we can incorporate all of that and you'll learn how to take that response and bring it back to you in a real speech format and by the end of this video you'll have the entire backend API done all you have to do is send it audio and it'll reply to you send it audio it'll reply to you and from here you can go and create a front-end for however you want to do that however some people like a guided tutorial on that so I actually completed this as a course this whole back end is for free but I finished out the rest of it as a course that's out on the Travis media community so I'll put a link below if you want to join the community there you get access to all of my courses all of my Blueprints and you can join in on any of our daily discussions or book reading in our weekly algorithm challenges again I'll put a link below but for now go get you a cup of coffee put your phone on silent and give me 45 minutes code along with me let's get started alright so I created a folder called chat gbt interview bot you can create one name it whatever and open it up in vs code next we'll create a virtual environment so python-mvenv and then we'll activate it with Source venv slash band slash activate all this does is give you a virtual environment to install your packages write your code run your code whatever in isolation from your operating system next I want to do touch main.pi to create a new file called main.pi and then we have three tasks in hand here here's the three main tasks number one we want to be able to send in audio and have it transcribed openai will transcribe it for us I'll show you that in a minute number two we want to send that transcription of what I said to Chad gbt and get a response back from it and number three we want to save the chat history to send back and forth our content so we're going to prompt it it's going to give us a response we need to save this history because chat gbt doesn't have a memory it feeds off of this entire context that is going on in the chat we'll talk about that in just a few minutes and how that works so these are our three main steps this is their broad outline that we want to follow now first we're going to use fast API as our API we're going to set up a route we'll be able to send our audio to it and it's a great solution for this kind of thing so if you go to Google and just type in fast API it'll be the first thing that comes up you'll end up at this page and if you go to tutorial user guide you can scroll down and you'll get the commands so pip install fast API let's do that and also pip install uvicorn which is the server that's going to run the API so copy that command paste that in we'll also want to do pip install open AI great now if we go back to the documentation and go to First Steps we can get this simple program to run to make sure everything is running correctly so copy that and paste it in main.pi all we're doing is importing fast API we're instantiating it into this app variable and then we set up a simple route that returns hello world so save it to run it it's just uvicorn main colon app and then dash dash reload so main is the file main.pi app is my instantiated variable app and then reload just reloads the app when I make a change so hit return to run it and now we can go to localhost 8000 and see message hello world or even better we can do a slash docs and get a Swagger UI click on this try it out execute and 200 of hello world so our application is working so far now let's start out with step one send in audio and have it transcribed to do that we're going to be interacting with openai so let's create an environment variable called EnV in two variables so open underscore AI underscore organization or org openai org equals and then open AI key and we need to get these values from openai so go to platform.openai.com click on your name log in first click on your name and manage account now to use the API you're probably going to have to put in a couple of dollars you may be able to use it if you have credits but people blow through those pretty quick so for me I just put in five bucks and that goes a long way these API requests are really really cheap if you look at my usage for the past couple of days it's at eight Cent so you might be able to put in less like two or three dollars I put in five dollars and I foresee it to last me a long time if you go to billing you can set up a payment method there and then you can set up usage limits so there's a hard limit and a soft limit I set my hard limit at five if I ever reach that point it cuts off it won't let me go past that I also set a soft limited three so that it sends me a notification if I reach that three dollar mark so it's a couple dollars go ahead and sign up and you'll be able to use the API and that's found under API keys if you click on this you can generate a new secret key I already have one so I'm going to add mine to the EnV but the other value you'll need is the organization so if you go to settings there's an organization ID copy that go back to your EnV file and paste that in and then like I said for your API key add your API key here I'm going to add mine and once they're added we're going to use a package called let's do pip install and the package is called python dash dot EnV to bring in those variables so if we look that up python.env we can figure out how to use this so we pip installed already and we're going to bring in EnV actually we're going to bring in this load.env function which brings in our values so let's copy this and that and we can Define them here now let's go back to the openai documentation go to documentation and libraries yeah libraries and here you see an example so you'll get an example here of openai dot API key which we'll need to use we'll need to save the key into that variable and also openai.organization we'll need to do that as well so let's grab this we've loaded our environment variables so we can use this and instead of this airs is open AI underscore key and then the other one is organization and open AI org so this is bringing in our two values from our EnV file that we just set and then up here let's import open AI and let's run our server to make sure everything's working and we get an error that says no module name dot EnV this ever happens you usually can just deactivate your virtual environment and reactivate it and all will be well so let's run it again and we get another error that says OS is not defined we're using the OS package here to get this environment variable so let's make sure we import that as well import OS and no errors great so back to Step One send in the audio and have it transcribed so let's create a route for this app dot post and we'll make the route called talk because we're going to talk to our chat bot and here we'll call this post audio and we'll do our logic here so how do we convert air audio to text well we can use open ai go back to the documentation go down to speech to text here and you'll see the speech to text API provides two endpoints transcriptions and translations based on their state-of-the-art open source large V2 whisper model so we're going to use whisper one as the model and let's just copy this here we'll work with this and let's paste it in all right so we need to pass in some audio we're going to start with just an MP3 one that we can upload and send in so how do we do that well we go back to fast API and figure it out they have a type called upload file and you get this upload file with additional metadata I don't need that really optional file upload um file parameters with upload file this is pretty basic so really you just type in first you have to import upload file so let's import that so import fast API and upload file and then let's grab this example to work with and all we're doing here we're just passing in a file of type upload file they've done all the work for us by us defining that type they know what to do with it and then they're returning a file name of a value file dot file name so we probably need to follow suit here so audio file open we're going to open up the file that we sent in which is file but we need to do file.file name and then we're going to read that and the reason why it's RB is its read bytes the audio file is going to be in bytes so RB so that's going to give us audio file and then we're going to send that to openai.audio.transcribe we're going to pass in the audio file and also the model which is whisper one and that's going to return air transcript so let's do print transcript get rid of all this and actually I'm just going to get rid of the return and we're just going to print the transcript to see this working and there's an error form data requires python multi-parts we need to install python multi-part so pip install python Dash multi-part run the server again and let's try it out now we need some audio so let's go back to Google and type in record audio and you'll get this online voice recorder grab that and our chat bot today is going to be named Greg so I'm just going to say hey Greg how are you today save it in my project as test audio dot MP3 and there it is so let's go to postman and in Postman we want to do HTTP localhost colon 8000 slash talk that's our route we want to make sure it's a post request then we can go to form data and you want to change this drop down this text drop down to file that allows us to select a file instead now as far as the key if we look at the parameter we're passing in it's file so we need to make that file so the key is file and the select files I'm going to choose my test audio and I'll go ahead and post to that route so post and null is okay we didn't return anything but let's go check error terminal to see if we have a print statement and there it is text hey Greg how are you today so it's transcribing or text great and let's do a return statement message audio has been transcribed just leave it at that now a better idea here is to come down here and create some functions and let's do one for this to kind of keep it a little bit modular so let's do Def transcribe audio we're going to pass in a file and we'll put all of this here so transcribe audio we're going to open the file we're going to transcribe it print it and return a message saying audio has been transcribed so here we just called a function and we'll say user message equals transcribe audio we'll pass in the file great so that's step one step one is send in audio and have it transcribed done now number two is we want to send it to chat GPT and get a response but we can't quite do that yet because we got to deal with this chat history I'd rather knock this out first so let's talk about this chat history so I go to the documentation and I go to GPT and if we scroll down we see this so we got four messages here there's a system role a user role in an assistant role here's how this goes down chat GPT doesn't have a memory it can't say here's our chat window I'm just remembering everything that you're saying no when you send it something and then it sends you something back when you go to send it something else it sends that entire context of the chat so I'm gonna send it something it's gonna send me a response then when I go to send something new I'm also going to send the history with it that's how Chad gbt knows the context of your chat every time you write it it sends the entire history back to it so there's three parts here first there's the context you'll see that with role system now this context is who you want this bot to be what is the context of this conversation and the context here is that you are a helpful assistant so when I'm interacting with it it's playing the role of a helpful assistant we're going to change that in a minute to be a person that's in interviewing us for a front-end react developer position we'll see that in a minute but you set the context first with this system role that's got to be the first thing after that it's just a back and forth between the user who is you and the assistant who is Chad GPD or the assistant so as the user I'm going to say who won the World Series in 2020 it's going to answer the Los Angeles Dodgers won the World Series in 2020. now when I ask it this where was it played I need to send the past chat history with that every time so here's what we got to do in our app we need to create some kind of database that's going to store the history so that every time we prompted we can send that history with it so I'm going to create a file called database.json we could create a database like mongodb or Firebase or something like that we could set it up and go that route but for development a lot of people just do this database.json what's the history just tack it onto a list of Json objects in this file it's really easy and we're going to knock out that functionality first so let's create a new function called get chat response we're going to pass it in our user message and let's actually make this user message singular so we're passing in our user message to chat GPT we're going to get back a response that's what this function is going to do we'll call it chat response and then let's go down here and Define it so def get chat response user message so here's what's going to go down we need to load the messages we need to tack on our new message we need to send it to gbt and then get that response let's knock that out so the first thing we want to do is load the messages we need to find out what's in this database.json and make sure we're sending that history so let's do messages equals load messages we're going to create this So Def load messages This Is Us retrieving our messages so first let's do messages is an empty list we're starting with nothing let's define our file which is going to be database.json so file is database.json and then there's two things we want to do here we want to check if the file is empty so if this database.json is empty we want to tack on that context there's no context set yet so we need to do that first if file is empty I don't know why that's capped if file is empty we need to add the context or the system role and then if it's not empty we want to open up that file Loop through all of our interactions and add them onto messages so that's getting our chat history ready to send so if file is not empty Loop through history and add to messages that's what we want to do so how do you check if a file is empty well to do that in Python it's this empty equals OS dot stat pass in the file and then the size is equal to zero that'll tell us if the file is empty or not so let me remove these comments I don't need them so let's say if not empty the file is not empty we want to Loop through and tackle on the history if not empty we'll do with open file we're going to open up the file as user file or database file let's say DB file then we're going to load the Json so data equals Json Dot load DB file and then we'll Loop through it four item in data messages dot dot append item so if the file is not empty there's chat history in there so we want to open that up and we want to go through it and add each item to this messages list now if it is empty else we want to messages dot append this system role data so we want to take this as an example and append that so let's say you are a helpful assistant actually let's go ahead and change this let's say you are interviewing the user for a front end react developer position ask short questions that are relevant to a junior level developer then let's tell it who it is your name is Greg the user is Travis that's me keep responses under 30 words and be funny sometimes we want a little humor that's our context that file is empty that needs to be the first thing in our chat history always and then once all those messages are put together we're going to return messages awesome all right so that's our load messages function so that's the first thing in our getchat response the second thing is we're pulling the history of the chat history the second thing is we want to append our newly asked prompt so messages dot append and actually we're going to get rid of this we're not going to use Chad gbt over and over and over and waste our tokens like that let's do something hard-coded for the moment so let's do transcript equals and then let's get this example here this user example and so we're actually just going to send that every time to test that this works so messages equals load messages messages dot append user message so it's going to add on our newest prompt and from that point we can send it to chat GPT so here we're going to say send to chat GPT or open AI whatever and then after we get that response back we need to save this information so we've been putting together this temporary list to send we now need to save this all of this information into the database file and then the next time we send a request it's going to put together the temporary thing append on the new message get the chat back and then save it update it with everything it's going to do that over and over so under this we're going to do save messages and we'll have a function called save messages in this one we need to pass in the user message and the GPT response which we didn't get so let's say response equals and let's get an example from that so here's the assistant role here's the answer to what we just asked again this is just hard coded we'll fix it in a minute here's the response and let's call this GPT response all right so let's create our save messages functions it's going to take all of that and save it in this file so save messages user message and then GPT response first let's define our file so file equals database.json and we forgot to put our def here this is a function so the first thing we need to do is messages equals load messages so again we're getting all the messages from the past and then we want to append we're saving it this time we want to append error prompt and our response both because we pulled everything we had we're going to pin The Prompt we're going to pin the response and save all of that okay next time we'll pull all of that we'll put our new prompt on there we'll send it we'll get a response we'll save all of this again so let's do messages dot append and we'll append the user message and we'll do messages dot append the GPT response and then we'll write this entire thing to the file so with open file and then we're going to write so let's put a w as f Json dump messages F so we're dumping the messages as Json into this file and let's try it out let's go to database.json we have our audio here doesn't matter really because we're hard coding at all let's hit send and there's an internal server error Json is not defined of course we need to go up and import Json all right give it a second go no all right let's go to database.json and see what we got so there is data here let's format it to get a good look and here's the context so roll a system the content is air context second what we sent is messed up that's not right so we gotta fix that then we have the role assistant and the content is right too so let's fix this why is this wrong well it's because we're returning this and not the transcript so let's make sure we're returning the transcript and we'll take our database.json wipe it out to get a fresh start try it again all right so here's our context looks good user asked who won the World Series in 2020 the assistant answered now let's see what happens next let's hit it again and we should just get another user assistant Edition not the context so send and database.json let's format it all right so system there it is user assistant good user assistant looks to be working now let's put some real data send it to GPT and see that that works so let's get rid of error hard-coded data get our transcription back in order and then here where we get the GPT response let's actually put the real code let's go back to the documentation and the code is here this is the chat completion.create grab this paste it we have our model which is GPT 3.5 turbo that's cheap and it does a good job so stick with it and then for messages we already have a list of messages in our database so let's get rid of this and just put messages because we have that being loaded and appended to above ready to go and here we'll put GPT response equals and let's not quite save yet let's print the response because I think it's going to have to be parsed save that and let's give it a shot internal server error so additional properties are not allowed text was unexpected all right so let's uh let's stop the call here and just print out what our messages are that we're sending print messages let's take a look at that yeah so looking at this this object here I think the issue is that we are getting the audio here it's just going to be the text like hey Greg how are you today and then we're sending that user message which is just the text to GPT so we actually need to do instead let's go back here grab this user role we actually need to send this whole piece of data with the message updated in it so append would be this and then the content alone since that's just the text should be user message let's try that out let's not print and let's uncomment that see if that fixes it all right so here we got another error it says text hey Greg how are you today so we're still not getting the content we're getting a key of text in the value of hey Greg how are you today so we fixed that by doing user message text to make sure we're just getting that text value not the key all right third time's a charm let's hit send now and it should work all right so here's our response it says hey Travis I'm doing great thanks for asking excited to ask you some coding questions today ready to show off your skills awesome the context works great but you see here we don't need all of this data so our GPT response let's do a parsed GPT response equals GPT response and you'll see here it's an array it's a list of choices so choices then there's an index of zero then there's a message and within that message we have the content so message and content and we can get rid of this print because we're going to keep moving so save messages we're going to have user message text and our GPT response should be parsed GPT response we're sending that to save messages which is going to append both of those and then save it to our file you see right now we have nothing in our file let's save that and let's try it out so send and if we look at database.json we have stuff in here so we have our context and then we have just the content just the text itself so to fix that so what we need to do is we need to send that whole Json data not just the text so let's go back up and grab that from another place here we go see how we're sending here the role and the content properly here we're just sending the data or the text so let's paste these in first one is the user second one is the assistant remember we're appending these under the messages this new content and then for the content we want to send the user message for that one and then the content for the assistant is the GPT response save it and then make sure we go back to our database.json and delete any data there so we can get a fresh start and this time it should work so send all right let's go and see so in our database here we have the context so the system role the content is you are interviewing the user for blah blah then we have my question hey Greg how are you today and then the response I'm great thanks for asking ready to grill you with some react questions so the next time we hit post or the next time we send something it should send our new prompt grab the response save these two as two additions to this Json list and update our database with the new answer to whatever we asked a second time so because I formatted this I don't really want to save it so I'm going to don't save now what we need to do now to test is send a response to what Greg just said so let's go back to record some audio and say something like sure Greg I'm ready to get started fire away save that as test Audio Two and let's send it to Greg and see if he can send us something back based on all of that context so get rid of that one select test Audio Two sand let's see what happens all right database.json let's see whoops let's format this so we can read it all right context is here hey Greg how are you today the answer is I'm great thanks for asking ready to grill you with some react questions but don't worry I won't make you sweat too much so I say sure Greg I'm ready to get started fire away Greg says all right Travis let's warm up what's the difference between State and props in react and let's answer that well Greg state is what I live in in props is what I give people when they do a good job see if Greg gets the humor the test audio three let's send that to him and again we're sending all of this data each time so he should get the last one all of the contacts plus my new question test audio three send all right let's open database.json formatted word wrap so I said well Greg state is what I live in and props is what I give people when they do a good job and Greg says haha close enough in react state is managed internally by a component while props are passed down from a parent component state is like a private Villa while props are like a gift basket Greg dropping some wisdom so let's say one more thing to him before we move on to the next part good explanation Greg I was just joking ask me something new save that as test audio four let's see if he continues the interview select test audio 4 and post let's see what happens all right database.json format and word wrap whoops word wrap good exclamation Greg I was just joking ask me something new all right Travis let's level up how would you explain the concept of react components to someone who isn't familiar with web development so we've made him a person given giving us an interview this is great practice if you're getting ready to go for a react interview this is really helpful now the last thing we want to do is we want it to speak to us but we don't want to use some python text-to-speech that sounds robotic we want to use something realistic so if you wanted to create a react front end or an electron front end that had a record button and you click the record button and say something stop the recording it hits our route goes to GPT and talks back to you immediately you could sit there and have a real interview where he's asking you questions he's giving you feedback you're telling him what you think he'll correct you it's really neat so the last piece to this besides the front end the last piece of this is to get a realistic voice that's what we're gonna do so I looked around at where we can get this at for free I don't want anybody to have to pay anything and I found this site called 11 Labs eleven labs.io now if you take the answer here that he gave us all right Travis let's level up let's take this drop it in this box you can choose from a bunch of voices I'm just going to choose Adam because that's first on the list and I'm going to put my headphones up here I don't have my audio on so I'm going to put this near the mic and you can hear how realistic this sounds I'm going to paste in what Chad GPT just told us and you'll hear how Adam sounds sounds pretty good listen Travis let's level up how would you explain the concept of react components to someone who isn't familiar with web development sounds pretty good so if we had that actually talking back to us as opposed to us reading it it would be a much much better app so let's set that up so the first thing you need to do is sign up it's free if you go to pricing here it's like zero dollars for ten thousand characters per month pretty good but you don't want to go crazy with this because you can burn through 10 000 pretty quick so you want to sign up so I'm going to sign in then you want to go to profile and generate an API key once you've done that copy your API key go back to your app go to your EnV file create a new variable called 11 Labs key 11 Labs key equals and then I'm going to paste in my key now I go back to main.pi up here at the top I'll copy that and then do 11 Labs key and here I'll just put 11 Labs key and now I have my key in my environment variables so now if I go down to git chat response I'm going to save the message here but I also want to return this message so return parsed GPT response I'm going to return that message this is going to be the text then I'm going to go back to my main route and I'm going to create a function called text to speech I'm going to pass in the chat response and I'll call this audio output and save it now we'll create the function so let's go down and do a def text to speech and pass in a text parameter and how do we use the API so we need to pass this text to the API have it turn it into speech with one of our people here so to do that just go to API dot 11labs.io Docs and we want to use this route V1 text to speech slash voice ID that's a post that converts text into audio so let's open that up and let's go ahead and get this request body let's copy this whole thing and set that up so we're going to do body equals and we'll just copy this paste it in get rid of that and just straighten this up all right so our text for the by this is the body we're going to send in the request the post request so the text is going to be text that's what the parameter or the argument that we're going to pass in our model ID we're going to leave is 11 monolingual whatever model they're using voice settings you can look up what these do the only thing I know is that in Python you need a capital T so let's change that I'm just going to leave it all default so save that next we have the headers so we do know we need content type is application Json we need an accept header and that's going to be audio slash impeg and then finally we'll need an API key how do we do that so if we look here we have x i slash API key as a parameter so let's grab that and we'll include 11 Labs key that's our API key that we got from our environment variables so those are our headers then we need the URL so the URL is https API Dot 11labs dot IO slash V1 slash what was it V1 text to speech and then the voice ID so text to speech and then here is going to be the voice ID we need to make this an F string so we can pass in a parameter and how do we get the voice ID well if we scroll down here to some other routes we see one called voices and the first one gets voices so let's try it out and execute and here's all of our voices so I want to find Adam here's Adam and the voice ID is this so I'm going to copy his voice ID and put that there that's Adam's voice ID and now we'll use requests to make this API call so let's stop our server do pip install requests to install that then up top let's import requests let's do this response equals requests dot post first argument is URL then we need Json equals the body that we're passing in and then headers equals headers and let's actually do a try accept so try then accept exception as e and there we'll just print e and this is a development project we're just having fun there probably should be exceptions on all the things we've done so far and I'm just making it easy for us we're just having fun you might want to do that if you're trying to take it into a more production environment and then as far as their response if response dot status code is equal to 200 then we want to return response dot content else print something went wrong that's good enough for now and I put three equals there should only be two so let's save that let's run our server make sure everything's running okay yep and so we're going to return that content that audio up here as the audio put variable so what do we do now how do we use audio put with fast API if we want to make a call for this in like Postman or Swagger or something like that what do we do here so let's check it out so let's go back to the fast API documentation and let's do streaming response let's see what that's all about so custom response HTML stream file and others let's click that and we'll get an example here somewhere stream if we look over here in the table of contents here's streaming response streaming response and then using streaming response with file like objects so let's look at that so here you have first you have to import streaming response from fastapi.responses let's grab that add it to our code just get that out the way bring in streaming response and then here we have a function called enter file that yields that stream or whatever it is and then you return a streaming response where you call that function and then a media type of whatever your media type is so you'll yield that media type and you'll Define it here so let's just grab all of this I don't have a file so I don't think I need all of this so let's just put it here this isn't a good place for it but the video is getting long so let's put it here let's do this so with open some file path as we don't have a file so I'm just going to do this yield audio output and then we'll return a streaming response of this enter file in a media type of audio we'll change this to impeg so this is going to make it so when we make the call it will return for us some audio to listen to We can click play we can listen to it now if you have a front end you may want to do this a little differently so that it auto plays or maybe you just bring in the Stream and have it play right away there's a couple ways to do that but we're just focusing on the API for now so let's see if this works and if this works that's really really neat that is going to talk back to us with this nice voice again I'm going to play back the audio through my headphones and let's give it a whirl so let's go back to my first audio so test audio internal server error let's see what's going on so name pni whatever is not defined that's the idea of our voice so what's going on there and for that we probably shouldn't do this anyway we should probably come up here and say voice ID voice ID equals that way we can switch if we don't like this voice easier make that into a slow make this into a string and then when we pass in voice ID it'll be a string I guess it thought this was a variable we probably should have just made a string but now we have it defined voice ID now that should work better okay moment of truth let's do this send and we should get some kind of play button down here I'm hoping look at that let's see what it says I said hey Greg how are you today let's see what Greg says promise to be as smooth as a styled component all right let's see what I can ask him or what I can tell him so let's go back to our online voice recorder you're funny Greg fire away save it as test Audio Two and let's try that out test Audio Two send there we go let's see what Greg says to that test but don't worry I won't dwell on it for too long pretty neat let's say one more thing to it okay Greg can you just get started already you're taking forever test audio three test audio three let's call it that and let's send that and that'll be it I'll stop there see if Greg gets the joke or gets offended at all oh and I got a problem here none type object has an attribute in code all right I think that's just a problem with 11 labs let's try it again actually did I save that voice save as test let's just try it again 11 Labs must have had a hiccup but here we go sure thing Travis let's get down to business how would you explain the concept of react components to someone who isn't familiar with web development good question good question awesome we have a pretty fun app here we could sit here all day and just go back and forth I could try to answer his question he would ask me another one we'd both have the right context if you've done all of this you've learned a lot about Chad gbt now obviously there's more you can do you could set different responses like funny responses serious responses you can randomize it you could do a lot here now like I said you could also set up a front end that would allow you to just click a record button and go back and forth you can say something it'll save it send it bring it back play it automatically you could say something again and you could just go back and forth a lot of opportunity here a lot of ways you could take this but I think we've done enough this has been a lot of fun if you found this video helpful give it a thumbs up of course and if you haven't subscribed to the channel consider doing so and I'll see you in the next video
Info
Channel: Travis Media
Views: 12,778
Rating: undefined out of 5
Keywords: chatgpt tutorial, chatgpt python, chatgpt whisper api tutorial, chatgpt whisper ai, chatgpt ai project, openai programming, openai api, openai python, chatgpt chatbot tutorial, chatgpt python tutorial, chatgpt python project, chatgpt python programming, chatgpt python api, chatgpt python bot, chatgpt python api tutorial, openai tutorial, chatgpt interview bot, eleven labs ai, elevenlabs tutorial, elevenlabs api, travismedia, artificial intelligence, ai python
Id: 4y1a4syMJHM
Channel Id: undefined
Length: 49min 22sec (2962 seconds)
Published: Sun Aug 27 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.