ChatGPT API in Python

Поділитися
Вставка
  • Опубліковано 27 чер 2024
  • Exploring the ChatGPT (GPT3.5) API from OpenAI and building some simple chat applications with it.
    Github code: github.com/Sentdex/ChatGPT-AP...
    Neural Networks from Scratch book: nnfs.io
    Channel membership: / @sentdex
    Discord: / discord
    Reddit: / sentdex
    Support the content: pythonprogramming.net/support...
    Twitter: / sentdex
    Instagram: / sentdex
    Facebook: / pythonprogramming.net
    Twitch: / sentdex
    Contents:
    0:00 - Why use the ChatGPT API
    2:10 - How to query the ChatGPT API
    7:45 - History and dynamic input w/ ChatGPT API
    15:30 - Comining everything so far
    18:25 - Building a Gradio chat application with ChatGPT

КОМЕНТАРІ • 183

  • @isaacandrewdixon
    @isaacandrewdixon Рік тому +177

    I have always loved that you don't edit out errors and mistakes, and show us your process of trying to understand them.

    • @kenchang3456
      @kenchang3456 Рік тому +15

      I always love that he laughs at his mistakes.

    • @satya.antonio
      @satya.antonio 8 місяців тому

      I agree! That's very valuable. To see how intelligent people go through analyzing a problem and looking for a solution. And it also gives time for us to think along the video.

  • @krzysiek6293
    @krzysiek6293 Рік тому +22

    This is a beginning for numerous of startups

  • @CodingWithLewis
    @CodingWithLewis Рік тому +52

    I love how simple the API is! We really are in the gold rush of AI based applications.

    • @nickwinn
      @nickwinn Рік тому +2

      We are indeed, it's exciting and scary. I'm writing my first chatgpt app that will troll scammers on craigslist.

    • @tomb.8375
      @tomb.8375 Рік тому

      @@nickwinn simple but it would have been nice if they managed the history?

  • @fordtify
    @fordtify Рік тому +2

    I started watching your videos in 2017 in college. Thanks to you and specifically your pygame series I'm a mid level SWE

  • @awesomefeldmanfamily
    @awesomefeldmanfamily Рік тому

    Amazing!!! Thank you!!! I was always waiting for this!!
    I have notifications set for your channel but I never get any notifications, also I didn't even see any of your videos for the past year on my feed or anything

  • @real_Emmanuel
    @real_Emmanuel Рік тому

    Your awesome. Keep making simple videos like this! I just subscribed because of how simple this was.

  • @kensai7
    @kensai7 Рік тому

    Tons of wisdom, as always. We thank you! 🤓

  • @nikitaserov33
    @nikitaserov33 Рік тому +4

    Greatest guy on the internet, always loved the way you follow your passion and work not on just some classical stuff but playing with whatever is interesting for you
    If you’ll ever want to work on AI-aided chemistry/medicine - our Chemistry and Artificial Intelligence lab in ITMO university is fully open for you 🥰
    Continue making great stuff 👍

  • @YashPachchigar69
    @YashPachchigar69 Рік тому +2

    Always loved your tutorials videos

  • @pookiehd
    @pookiehd Рік тому

    Perfect timing, I was just about to use it in my next project.

  • @yellowboat8773
    @yellowboat8773 Рік тому +2

    I’ve been a sub of your for years, funny thing is I am not a programmer, or even remotely work in the field you produce videos on. I just love watching your curiosity take you around the j Ferber and take your time to teach others. Well done mate

  • @riveradam
    @riveradam Рік тому +2

    I was about to write "you don't need an API key" but then I did a sanity check. I thought I was using `gpt-3.5-turbo` API for free, but what's actually true is ... if OPENAI_API_KEY is in your environment variables, then `import openai` will automatically find that key and use it.
    I'd previously set the env var for testing `text-davinci-003` (GPT-3) AND I'd included `openai.api_key = os.getenv('OPENAI_API_KEY')` in my code, but when I tested `gpt-3.5-turbo` for the first time I forgot the second line and then when it worked I assumed they'd removed the need for a key.
    Great video! Thanks!

  • @nuclear_AI
    @nuclear_AI Рік тому

    The longer between this video and your next one, the more excited I get.😂😂

  • @nickpalladinos
    @nickpalladinos Рік тому

    Great work! The API is extremely easy to use, and I was able to create a small hack (little-reasoner) that combines the power of ChatGPT and the Z3 theorem prover.

  • @caioflores4918
    @caioflores4918 Рік тому

    Nice job, man. Regards from Brazil!

  • @raomuhammadsharjeel8029
    @raomuhammadsharjeel8029 Рік тому +4

    Who has been waiting for this for a long time now?

  • @davidwu3247
    @davidwu3247 Рік тому

    thank you so much for this brotha. real lifesaver

  • @AllThatInterestingStuff
    @AllThatInterestingStuff Рік тому +4

    I have already done and deploy a ChatGPT "proxy" via web and an API for mobile apps. It works great, I'm here for the assistant history part. :) Can't wait to see that because for now, I'm truncating the history down to 500 tokens, which is working pretty good for me.

    • @AllThatInterestingStuff
      @AllThatInterestingStuff Рік тому

      Unfortunately I did not get the answer from this vid. I can't wait for the next one. :) Using user+assistant role instead of system role is a very clever idea. :) thanks! Btw, if you have any chance to get Whisper API working on Android that would be awesome. I could not find any good solutions to that. Uploading mp3 to the server is not an option 😃

  • @GiantsOnTheHorizon
    @GiantsOnTheHorizon Рік тому +5

    Total side note but I wanted to tell you how amazing your Neural Networks from Scratch book is. Ive started down a few roads with NNs and I normally prefer video but you have really made it so clear and so much fun to learn. Congratulations on creating the perfect technology book!

    • @sentdex
      @sentdex  Рік тому

      Awesome to hear this! Thank you!

    • @adilmajeed8439
      @adilmajeed8439 Рік тому

      Please share the book name

    • @kweekkikker
      @kweekkikker Рік тому

      ​@@sentdexI am a painter, and like all you do, even the mind blowing 1st hand errors you can't hold your laugh about, I rofl than 2, everything. Simply because u rite

  • @javiers2133
    @javiers2133 Рік тому

    awesome video as always thank you very much, I hope you have a great day!

  • @msaeed5961
    @msaeed5961 Рік тому +2

    Best channel to learn python.

  • @tanmaydash2108
    @tanmaydash2108 Рік тому

    Always loved your work .thank u for ur inspiration.m deep fan of urs.

  • @Brickkzz
    @Brickkzz Рік тому

    Back to tutorials! Hell yeah!

  • @samahirrao
    @samahirrao Рік тому

    A big thanks from an Indian. Amazing stuff you post. God bless you.

  • @naidol
    @naidol 11 місяців тому

    Bro. This is a great tutorial. Most other people are just publishing some nonsense gpt-api stuff. You are bit of a whacko (compliment) but i 😍 your speed of tutoring. You did not waste our time by going back to check on AI reply about which moon it was sizing. Great stuff dude.

  • @patricksweetman3285
    @patricksweetman3285 Рік тому

    Great video, thanks.

  • @funkahontas
    @funkahontas Рік тому +24

    In my experience, the system role is really useful for things like restraining the bot as to what it can do , and also to give it some background information like how it would like to be called or what tasks it can perform. So when the user asks :" what can you do for me ?" The chatbot can answer what the system says it will be able to do or what it's main purpose is , and the personality you want the bot to have.
    The system message may be something like "You are a language translation helping bot, you cannot talk about anything else, your name is Bob and you are a stern but calm teacher."

    • @kweekkikker
      @kweekkikker Рік тому

      I smell spam . I Red this 1 twice already

  • @user-cy2on3gc3k
    @user-cy2on3gc3k 9 місяців тому

    Thank you so much for sharing 💚💚💚💚

  • @schlechtestergtaspielerdek3851
    @schlechtestergtaspielerdek3851 10 місяців тому

    Amazing! I am building a cocktail maschine with this. I recognise voice with speech to text, feed it into the API. Like "I want a martini please", I will feed in with the custom add on to convert the cocktail to a json with a given format, my cocktail machine can use and make a cocktail with. :)

  • @UncleEngineer
    @UncleEngineer Рік тому

    Wow, Thank you

  • @davidobembe5302
    @davidobembe5302 Рік тому

    I just love your videos ♥️

  • @generichuman_
    @generichuman_ Рік тому

    System is where I define the persona of the bot, any special instructions, and most importantly, where I dump any additional information that will be useful to the bot. Text retrieved using semantic search, summarized chat logs from previous conversations etc.

  • @sanattaori6209
    @sanattaori6209 Рік тому +1

    Thank you

  • @mytechnotalent
    @mytechnotalent Рік тому +2

    ahh yeah this one it is cheap to use and this is a great example thank you!

  • @edellenburg78
    @edellenburg78 Рік тому +2

    I used the api to make a chat bot for my discord community, but they used it too much, and I could not afford to keep it going, but man having a group chat with AI is crazy.

  • @xbox9092
    @xbox9092 Рік тому

    amazing !

  • @borisdominguez9089
    @borisdominguez9089 Рік тому +1

    Man, I love you.

  • @Jlane31
    @Jlane31 Рік тому

    Great video, thanks for posting it. Can you try editing the first prompt and have it say what is the circumference of Earth's moon? My guess is the script could reference the message history but since there are so many moons it wasn't sure you meant Earth's. Anywho, good content!

  • @jfjesus1980
    @jfjesus1980 Рік тому

    Although they say that the assistant role is needed in order for ChatGPT remember the previous responses, from my experience, it only works if you also define a system role.

  • @robbyriverside
    @robbyriverside 5 місяців тому

    It makes perfect sense. It is not a bug. GPT has no idea what moon you are refering to. It just knows what people have said about the moon and if they didn't clarify what moon, then it has no idea. In fact, it never has any idea. It is a stocastic parrot.

  • @OZtwo
    @OZtwo Рік тому

    Been meaning to get around to it, but really would like to setup ChatGPT so that it can talk with itself on two different systems just to see what happens. :)

  • @sptoo123
    @sptoo123 Рік тому

    It's quite interesting. I try to make it a role with the "spell" : "You are a well-trained AI multi-task language translator. When I input non-Chinese sentences, you should output Chinese translation sentences. While I input Chinese sentences, you should output Vietnamese. You only need to ouput the translation result, no need other words or explanation. If you understand, say OK."
    It succeed in the first, but with more sentences input, it confused, even I input a chinese sentence, it return a chinese sentence "translation" (which is the same words because no need to translate) but not a vietnamese one. I'm not sure why but it just can't understand or forget the tasks when I input like 5~6 non-chinese sentences and some chinese sentences.

  • @jalladcom-sq1wk
    @jalladcom-sq1wk 6 місяців тому

    You are amazing .. thanxxxxxxxxx

  • @michaelfekadu6116
    @michaelfekadu6116 Рік тому

    15:23 Since the initial question never said “Earth’s moon” the AI had to infer that’s what you meant. It is technically true that if you had referenced the “Earth’s moon” in some prior conversation then the history of that prior conversation would not be given to the AI. The AI can access chat history, but only the current chat history.

  • @abilovestotrade
    @abilovestotrade Рік тому +3

    Which extension in VS Code helps with the completion of syntax like that ?

  • @111wizo
    @111wizo Рік тому

    Great vid but was just wondering what the rate limit on gpt-3.5-turbo is since I couldn't find any solid documentation online and wanted to know it since I plan on mostly using it for my own recreational use which will involve quite a bit of requests being sent? Currently still on the free plan but I want to confirm this before going paid.

  • @dansu1503
    @dansu1503 Рік тому +3

    Thanks for the great content, sentdex! If I understand the process correctly, every time the user adds a message, we need to extend message_history and pass the entire message_history to ChatGPT is that right? My concern is that the cost for giving N responses would scale on the order of N^2 (if all future messages require the full history). Although I cannot think of any other way to use ChatGPT currently--unless there is some "delta" api call that can pass in new messages and load past tokens for free? I think this is a rather big barrier to "indie" developers adding ChatGPT to certain applications--wonder if you have any thoughts on this!

    • @anthoniG
      @anthoniG Рік тому +2

      Yeah I'd like to know this as well.
      I can see it getting out of hand and just swallowing tokens.

  • @trentleslie2888
    @trentleslie2888 Рік тому

    You are a nerd's nerd, and I love it.

  • @goonie79
    @goonie79 Рік тому

    Is Azure's generative AI solutions the only option to both fine-tune and build guardrails for niche chatbots? It seems to be the only option to feed custom indexes in a GUI so that the chatbot is bespoken for specialized use cases.

  • @edgarbernal-martinez4698
    @edgarbernal-martinez4698 10 місяців тому

    question. to remove the user's input from the textbox in Gradio. Do you need to use "with gr.Blocks () as demo?
    i noticed I was using 'gr.interface':
    demo = gr.Interface((
    fn=CustomChatGPT,
    inputs=input_textbox,
    outputs=output_textbox,
    title=""
    ) )

  • @rudrakshcodes
    @rudrakshcodes Рік тому

    What font family are you using for the vs code?

  • @monstercameron
    @monstercameron Рік тому

    @20:19 isnt that type of prompt what they give as an example in the docs for system prompts?

  • @Ironmechanic-ct2yw
    @Ironmechanic-ct2yw Рік тому

    This API is crazy.

  • @caspercby
    @caspercby 7 місяців тому

    Love your python setup in V.S. for openAI !! Do you have a video tutorial on it? Thanks!

  • @konstantinrebrov675
    @konstantinrebrov675 Рік тому

    What is the VS Code extension that you use for interactive Python?

  • @AbhishekKumar-se2ub
    @AbhishekKumar-se2ub Рік тому

    I was wondering when you will upload such video

  • @real_Emmanuel
    @real_Emmanuel Рік тому

    How would I customize the page where you are asking questions. For example, if you wanted to turn the textbox green and chatbot box red?

  • @nisargbhavsar25
    @nisargbhavsar25 Рік тому +1

    Which intellisense are you using in VS Code?

  • @alexgts1234
    @alexgts1234 Рік тому

    I love how you took one of the previous top comments (previous video) into consideration to "live" code again, like "back then" when your channel was small.

  • @Riitabobita
    @Riitabobita Рік тому

    Hi, I want to learn about data analysis. I don't know anything about it, but I'm interested in starting something new. I was looking into starting the data analysis course on Coursera, but just wanted to see if I should take another route before doing that. What would you recommend?
    Thanks in advance!

  • @tomb.8375
    @tomb.8375 Рік тому

    Thanks for your video. I am wondering, how much will it cost as we keep sending the message history?
    My question is really: if we keep the history building between messages, will our cost increase because we keep submitting the history ?

  • @thefigmaster3519
    @thefigmaster3519 Рік тому

    In my experience, its difficult to restrain GPT. For example if you make a request to it that future messages should conform to some format but you later ask it to stop that, it will stop. No matter how ademant you are that it should not violate a rule in a message, this can be overruled in a future message. Thoughts?

  • @alroygama6166
    @alroygama6166 10 місяців тому

    Which vs code plugin are u using to get those code suggestions?

  • @DigitalSamTV
    @DigitalSamTV 11 місяців тому

    hi, how do u set if the api uses gpt3.5 or gpt 4 ? there is no setting when you generate the key as far as I can see... please help. cheers

  • @houssem009
    @houssem009 Рік тому

    What os are you using? And was that a bash terminal? Looks more like zsh terminal, would love to see a video about your setup

  • @xntumrfo9ivrnwf
    @xntumrfo9ivrnwf Рік тому

    lol I'm following along but I didn't get this fluke with the "which moon is this in reference to" question - worked fine for me

  • @Veptis
    @Veptis 5 місяців тому

    how do you feel about using a terminal within vscode?

  • @akoslaszlo974
    @akoslaszlo974 Рік тому

    thx. the video! how can I publish it to public? so not run only locally?

  • @markp2381
    @markp2381 Рік тому

    You could explore building something with Langchain

  • @tielessin
    @tielessin Рік тому +10

    I wonder where the conversations would end up if you have another ChatGPT model play the role of the user

    • @JoeTinnySpace
      @JoeTinnySpace Рік тому

      Black holes my friend

    • @Primarycolours-
      @Primarycolours- Рік тому

      @@brandonbahret5632 it still need user's prompt in it to answer any questions, in short: it doesn't change a thing about how it interacts with the user.

    • @brandonbahret5632
      @brandonbahret5632 Рік тому

      @@Primarycolours- what? No, you can totally have chatgpt interview an instance of itself. Its just like asking GPT-3 to generate a transcript and not providing any stop codes.

  • @metaltech3944
    @metaltech3944 Рік тому +1

    Wouldn't having to send message history every time you want a predication get very expensive token wise?

  • @miscellaneous9932
    @miscellaneous9932 Рік тому

    Is there a limit to how long the message history could be?

  • @Dkingprime
    @Dkingprime Рік тому

    Hi, sendtex. Python or JavaScript for backend, which would you recommend? I can't decide between them

    • @development3383
      @development3383 Рік тому

      That's entirely dependent on you (and your team) and your project.
      Most of the website stuff I do is fairly simple so I just use nodeJS but if I were to write more complex endpoints I'd use django (python) or springboot (java).
      If you know one of those languages already, go with that. otherwise chose one of them and learn it

  • @wobbler8473
    @wobbler8473 11 місяців тому

    What extension is it that autocompletes the code? Thanks

  • @pd2437
    @pd2437 Рік тому

    It would be great if you could make a series on Transformer models!!!

  • @mohamedelbahichi876
    @mohamedelbahichi876 11 місяців тому

    hi I have a question please.
    How can I activate the autocomplete that you are using

  • @HellboyMob
    @HellboyMob Рік тому

    man this world is getting good

  • @Manivelarino
    @Manivelarino Рік тому +1

    they gotta come out with a self-hosted version. Not having to send all the data to openai to get a prediction would be a game changer.

    • @israelRaizer
      @israelRaizer Рік тому +2

      First we need to figure out a way to make these models smaller, currently you need a very beefy computer to run them at any reasonable speed

    • @metaltech3944
      @metaltech3944 Рік тому

      actually they do have one: ua-cam.com/video/rGsnkkzV2_o/v-deo.html

  • @ChaiTimeDataScience
    @ChaiTimeDataScience Рік тому

    Me: Sad, having a rough day....
    Laptop: "What is going on everybody..." and I'm happy again!

  • @harvey.28
    @harvey.28 Рік тому

    How can I use this and create my own using my own answers for the bot? Thanks~

  • @DMan6285
    @DMan6285 Рік тому +1

    What extension are you using for auto complete, co-pilot?

    • @DMan6285
      @DMan6285 Рік тому

      Nevermind. You answered it in the video. ;-)

  • @serafinalcantara5520
    @serafinalcantara5520 8 місяців тому

    12:44 maybe it did not catch the message history. It probably answered from the data it was trained on.

  • @mbonuchinedu2420
    @mbonuchinedu2420 Рік тому

    Yeah, sometimes they depreciate it on purpose.
    Thanks sentdex.

  • @HG77K
    @HG77K Рік тому

    Thought on NeRF / Luma labs AI

  • @jonclement
    @jonclement Рік тому +1

    Lets' not forget that other planets in our solar system have named moons -- ours is actually named, "the moon" -- hopefully that doesn't send the AI into an infinite loop

  • @re-heritage
    @re-heritage Рік тому

    finally

  • @extrememike
    @extrememike Рік тому

    15:20 I was using the website free version yesterday and ran in to a similar problem. I requested an output based on information I had provided previously (above) and it said it could not refer to my previous messages. Maybe is something they temp discontinued to increase speed.

    • @Lolguyj
      @Lolguyj 11 місяців тому

      You probably went past the token limit

  • @Raffsy
    @Raffsy Рік тому

    What theme is he using?

  • @moe3551
    @moe3551 Рік тому +1

    Are you gonna be continuing the nnfs series? :(

  • @whoisabishag3433
    @whoisabishag3433 Рік тому

    Timestamps
    [ 00:06:30 ] Subject: Token Limit. Feeding a conversation back in a prompt as context ... You can SUMMERIZE, and ChapGPT can do that for you. ..
    ...
    [ 00:12:01 ] ChatGPT Forgets What Moon It's Talking About 😂
    ...
    [ 00:30:57 ] Isn't It Ironic! SentDex is trying to break out of the Matrix with the Help Of ChatGPT
    ...

  • @davidfonseca87
    @davidfonseca87 Рік тому +1

    Sentdex using Copilot?? 😯 I remember when he used IDLE

    • @sentdex
      @sentdex  Рік тому +2

      I have been a mega fan of copilot since release tbh.

    • @davidfonseca87
      @davidfonseca87 Рік тому

      @@sentdex I have found rubberduck on VSCode, which has been updated with the latest changes on the API, I really it, I would guess rubberduck has more options
      I may need to try more copilot to see its uniqueness

  • @EDUARDOCAPANEMAecapanema
    @EDUARDOCAPANEMAecapanema Рік тому

    That was no mistake. ChatGPT replies something like: the Earth moon is around 10,921 km, you just missed it. It's working properly

  • @jendabekCZ
    @jendabekCZ Рік тому

    Bing (GPT-4) is infinitely better with Python, especially when coding scripts for the latest Blender.

  • @antoniosalzano6235
    @antoniosalzano6235 Рік тому

    you said that the API itself isn't going to manage your history for you, so how might we do that?just start with some sort of message history variable for now to keep it simple, but we might use a database or some other storage method. Can you explain how we can do that using a database for example?

    • @funkahontas
      @funkahontas Рік тому

      one way to do this would be to store each message along with its associated metadata (such as sender, timestamp, etc.) in a database table. Then, when generating responses using the ChatGPT API, you could query the database for relevant messages and use them to provide context for the API.

    • @antoniosalzano6235
      @antoniosalzano6235 Рік тому

      @@funkahontas ok I got it, but how can you relate the content ID with the answer. For example: if I say to the AI, my name is "X". The AI says "Hi X, nice to meet you". I store this two entries in the DB. But then? I have to do function that will scan the entire DB in order to search something "my name is: ..." and take the context?

  • @fdanisndsa
    @fdanisndsa Рік тому

    Why do I keep getting the error that AttributeError: module 'openai' has no attribute 'ChatCompletion'?

  • @iamtowbee
    @iamtowbee Рік тому

    Great work. How do you get the code to autocomplete?

  • @JamesTJoseph
    @JamesTJoseph Рік тому

    Do you see any changes in the GitHub Copilot since ChatGPT released?

    • @fordimension
      @fordimension Рік тому +2

      Not sure if it's to do with chatGPT but I noticed copilot seems to be reading the code underneath now. Before if you insert a new line above a line of code and type something similar to the below line, it would act as if it only reads the code above, but now it appears to make predictions based on whats written below.

    • @mattizzle81
      @mattizzle81 Рік тому

      @@fordimension Yes noticed that too recently

  • @eaudesolero5631
    @eaudesolero5631 Рік тому

    so what is the difference between these LLM's (gpt3/4, Alpaca, etc), what was AlphaFold/ESM/2, and the types of systems that were used to create efficient biologically similar structures like frames for vehicles or furniture? And Alpha Tensor? Wolfram Alpha? what other types of AI/ML systems are there? some are trying to do things as good as humans, some are doing things we can not do. how are these different things coded? what are the ideas these are based upon? how can they be merged? can each be used to improve the others? what are evoformers vs transformers? and what other things are there?

  • @markussell9431
    @markussell9431 Рік тому

    Even more curious: you ask for 'the moon' and the reply included additional context already, referring to 'earths moon'…

  • @gamedark4765
    @gamedark4765 4 місяці тому

    you use wich linux???