OpenAI Function Calling - Full Beginner Tutorial

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ก.ย. 2024
  • Want to get started with freelancing? Let me help: www.datalumina...
    Need help with a project? Work with me: www.datalumina...
    🔗 Links
    github.com/dav...
    openai.com/blo...
    👋🏻 About Me
    Hey there, my name is @daveebbelaar and I work as a freelance data scientist and run a company called Datalumina. You've stumbled upon my TH-cam channel, where I give away all my secrets when it comes to working with data. I'm not here to sell you any data course - everything you need is right here on TH-cam. Making videos is my passion, and I've been doing it for 18 years.
    🛠️ My Development Workflow
    • My Development Workflo...
    ✔️ My Project Management Tool
    clickup.pxf.io...
    📥 Datalumina's Newsletter
    www.datalumina...

ความคิดเห็น • 116

  • @daveebbelaar
    @daveebbelaar  ปีที่แล้ว +4

    👉🏻Learn more about data science and AI: www.datalumina.io/newsletter

  • @JethiyaChampakGada
    @JethiyaChampakGada 9 หลายเดือนก่อน +15

    I watched a few tutorials but every one just went through plain code, but this man is exceptional he put in so much effort to make us really understand what is going on

  • @lordmelbury7174
    @lordmelbury7174 ปีที่แล้ว +8

    Great that you don't just use the default examples, many channels are guilty of that! I have just subscribed!

  • @SwingingInTheHood
    @SwingingInTheHood ปีที่แล้ว +2

    "This should put you ahead of most people in understanding how these function calling methods work." I have to give it to you, you did an excellent job breaking it down. I've been working with OpenAI models for 8 months, primarily building a RAG application but also dabbling in Text to SQL. Didn't really understand how functions worked until this video. And I particularly like the fact that you went through the business logic of this thing rather than the programming specific logic. I am a PHP programmer, so seeing the logic flow visually was super-helpful. Great job. Bravo!

  • @bugglebegger143
    @bugglebegger143 11 หลายเดือนก่อน +2

    I watched 4 or so tutorial videos about functions and they just really didn't explain it well. Best one so far, and I really feel I get it now. Important thing to realize when starting off is that the descriptions are of central importance, you're essentially prompting GPT in the descriptions for how to respond. Functions seem to basically just be a way to format GPTs responses in a much more rigid manner and use their AI in a more controlled way to get the kind of information you want so you can use it how you want.

  • @maciej.wolosewicz
    @maciej.wolosewicz 2 หลายเดือนก่อน

    Wow, what an incredible video! I've watched countless tutorials and read numerous articles on OpenAI function calling, but your explanation was crystal clear and finally made everything click for me. Thank you so much for sharing your knowledge in such an understandable and engaging way. You're a lifesaver! Keep up the fantastic work!

  • @Ray_1998_
    @Ray_1998_ 5 หลายเดือนก่อน

    Amazing tutorial! The gradual scaling in complexity really helped me understand the concepts in clear terms. Thanks 😊

  • @nebinebi123
    @nebinebi123 2 หลายเดือนก่อน

    This is also very useful for having structured data to send to a front end in RAG applications.

  • @jag-dt1lp
    @jag-dt1lp 3 หลายเดือนก่อน

    honestly this is actually 10/10 thanks dude

  • @sankhachakraborty5801
    @sankhachakraborty5801 9 หลายเดือนก่อน

    This is a brilliant walkthrough of the concept. Couldn't have asked for a better one. Excellent video Dave!

  • @lixiasong3459
    @lixiasong3459 ปีที่แล้ว +6

    Wow, Dave! This is absolutely awesome! Your talent and dedication are truly inspiring. Thanks a lot for sharing this incredible content with us. This is exactly what I need right now. Keep up the fantastic work, my friend! I'll definitely be eagerly waiting for more amazing videos from you. Kudos to you and your amazing talent!

    • @JakubGaniaSoftware
      @JakubGaniaSoftware ปีที่แล้ว +2

      I totally agree. I have exactly the same opinion, you wrote it very well!

    • @daveebbelaar
      @daveebbelaar  ปีที่แล้ว

      What a great way to start my day, thanks!! 🙏🏻

  • @frankkuipers2024
    @frankkuipers2024 ปีที่แล้ว

    Thank voor de video man! Heb al een poosje geen openai meer gebruikt maar deze functies zijn wel echt heel interessant

  • @robinbreed2439
    @robinbreed2439 2 หลายเดือนก่อน

    Nice video thank you man. I'll need to dive in some more, its an interesting topic

  • @arbengb
    @arbengb ปีที่แล้ว +1

    Great video. Just came in so clutch for me. Thanks a ton Dave. I appreciate you putting this together.

  • @planplay5921
    @planplay5921 10 หลายเดือนก่อน +5

    I have a question: do I have to write code repeatedly to make LLM respond to the first, second, third, or more responses? can't LLM get the function that should be executed in a prompt at once?

  • @hourglass8450
    @hourglass8450 ปีที่แล้ว

    Thank you! Good move and idea to be able to call functions and get results for processing with OpenAI. Opens up a lot of doors with integrating LLM to application backends.

  • @brandongillins
    @brandongillins ปีที่แล้ว

    Dave, love your videos best notification of the day, always! Finally got access to GPT-4 api! Let’s go test out some function calling!

  • @pareak
    @pareak 11 หลายเดือนก่อน

    The first 10 minutes really helped me a lot!

  • @Lexqueso
    @Lexqueso 5 หลายเดือนก่อน

    Thanks man, i dont understand the documentation from the page, your video helps a lot

  • @GergelyGyurics
    @GergelyGyurics 2 หลายเดือนก่อน

    Great demonstration, have like good sir'

  • @EmilioGagliardi
    @EmilioGagliardi ปีที่แล้ว +2

    great tutoiral and explanation. thanks! I also want to learn how you use the ipython session to view the contents of your variables, I'm just learning how to use VS Code so that is a really neat feature. Its still so abstract that its hard to wrap your brain around it. but it is what it is :D

  • @lvterry
    @lvterry 2 หลายเดือนก่อน

    clear explanation of function calling. well done!

  • @alirezaf6746
    @alirezaf6746 3 หลายเดือนก่อน

    Thanks for explaining the function calling principle clearly.
    I am wondering how I can use function calling to call a RESTful API that requires an OAuth mechanism. For example, in your demonstration, to connect to an airline and buy a ticket, the user would need to log in and authenticate to be able to purchase a ticket. It would be great if you could describe this process or at least give me some guidance.
    I know it is possible to use ChatGPT and define custom GPTs, using the OpenAPI specification to call a REST API over HTTP(S). I have already implemented a custom GPT that calls a REST API requiring OAuth, and when authentication is needed, it prompts the user to log in. However, I do not know how to use or implement the same thing in my project and handle the OAuth mechanism when it is needed.

  • @seallyolme
    @seallyolme 6 หลายเดือนก่อน

    This is one of the most comprehensive tutorials that breaks down function calling in a simple manner. In the conversational example, you had to manually call the function 4 times to get the response you wanted. Is there a way to do this so that we can just iterate over the responses and the AI automatically knows when to stop iterating?

  • @sourabmangrulkar9105
    @sourabmangrulkar9105 8 หลายเดือนก่อน

    Thank you for a nice overview of function calling!

  • @aipujols
    @aipujols ปีที่แล้ว

    Hi Dave, great Function Calling tutorial video, thanks a lot!

  • @omnamahsivaya9009
    @omnamahsivaya9009 2 หลายเดือนก่อน

    Thank you Dave Ebbelaar, it was very helpful. What is the difference between the tools and functions?

  •  หลายเดือนก่อน

    Thank you! :) That was very clear, thank you very much! :)

  • @russgo4953
    @russgo4953 8 หลายเดือนก่อน +1

    Hey Dave, can i use the function calling in assistants too? So function parameter would be set in the client.beta.threads.messages.create i think?

  • @axioworks
    @axioworks 11 หลายเดือนก่อน

    Excellent tutorial, right down to the point, thank you!

  • @raghavachowdary8658
    @raghavachowdary8658 5 หลายเดือนก่อน

    Excellent explanation. Thank you :)

  • @justinwr092
    @justinwr092 ปีที่แล้ว

    this is incredible. and such a helpful video! thank you, it was just what I needed.

  • @catalincrisan4840
    @catalincrisan4840 10 หลายเดือนก่อน

    Wow, this is so cool man! I run a tech startup where I'm looking to add chatbot functionality. I would love to chat more with you on this

  • @micbab-vg2mu
    @micbab-vg2mu ปีที่แล้ว +1

    Dave, fantastic video! Thanks for sharing. I was wondering if you could make a future video about the ChatGPT - Code Interpreter. I'm really curious to know if it's reliable enough to use in my Data Science workflow. Currently, I find myself doing a lot of copying and pasting between GPT-4 and Python, so I'm excited to see if the Code Interpreter can streamline this process.

  • @supa1009
    @supa1009 ปีที่แล้ว

    great video Dave, thank you it was very useful!

  • @morthajagan1757
    @morthajagan1757 23 วันที่ผ่านมา

    Great work!

  • @afonsoalcantara
    @afonsoalcantara 2 หลายเดือนก่อน

    Awesome tutorial. Is there a way to make OpenAI to ask for a missing information? For instance, the user only informs the loc_origin.

  • @MohamedTlili-m7z
    @MohamedTlili-m7z ปีที่แล้ว +1

    Great tutorial, at 3:35 how were you able to view the Completion variable using a keyboard shortcut? is it some kind of extension?

  • @holacuba2001
    @holacuba2001 8 หลายเดือนก่อน

    All brilliant and excellent learning material! But at 22:08 you have written the user input very nicely yourself, with all required parameters in place. This obviously is not the real life scenario. In my experience if the user omits one of the two required parameters the system will ask for it... and forget the already supplied parameter. Anyway, I profited here by learning how the functions work, how multiple functions work, and what is that "auto" parameter. Thanks.

  • @sharhadbashar9772
    @sharhadbashar9772 21 วันที่ผ่านมา

    for the langchain example, how do you know when to stop?
    What if i dont know theres only 4 questions? what if there are multiple questions? how will i know when i have successfully answered all the users questions?

  • @gsstargamer
    @gsstargamer ปีที่แล้ว +1

    Top notch info right here.

  • @SouravDey-i2e
    @SouravDey-i2e 7 หลายเดือนก่อน

    its assuming the parameters but is should ask the required arguments

  • @BasudevBharat-f8p
    @BasudevBharat-f8p ปีที่แล้ว +2

    Hey Dave, could you please tell me, what's the shortcut key you are using to run the selected line of code directly in the interactive window?

    • @titi_build
      @titi_build 10 หลายเดือนก่อน +1

      PLEASE YESS!! hahah i was exactly looking for that comment man haha

  • @RAMOLLAPRAKASH
    @RAMOLLAPRAKASH 7 หลายเดือนก่อน

    Thank you .

  • @titi_build
    @titi_build 10 หลายเดือนก่อน

    Awesome video man, thanks a ton!

    • @daveebbelaar
      @daveebbelaar  10 หลายเดือนก่อน

      Glad you liked it!

  • @annasc8280
    @annasc8280 20 วันที่ผ่านมา

    Thanks a lot! How do I call a 'function' from my assistant on the N8N?

  • @myheart4355
    @myheart4355 3 หลายเดือนก่อน

    Hi,
    I have trained a model, but when I try to integrate it into my project, I receive an error message: "The model gpt-3.5-turbo-0125:model1234 does not exist or you do not have access."
    How can I overcome this issue? Can you guide me on this?

  • @rachadlakis1
    @rachadlakis1 10 หลายเดือนก่อน

    THank you for ur effort

    • @daveebbelaar
      @daveebbelaar  10 หลายเดือนก่อน +1

      It's my pleasure!

  • @tonymathew9469
    @tonymathew9469 3 หลายเดือนก่อน

    Do you know how I can implement user confirmation flow? Say that I have a function with few parameters, and I want to get confirmation from user if the function can be called with the parameters

  • @YouBetterBeYou
    @YouBetterBeYou ปีที่แล้ว

    That is awesome. Quick question:
    Is a second_completion necessary for the iteration on the user response? Can we not just use the function-call to also provide this iterated version of the response and read that out at the same time?
    So the question is, I guess, is the function applied AFTER the response is generated or does the function heavily restrict the response BEFORE it is generated. Given the statistical nature of the response mechanism I don't really see how it can do this beforehand and still guarantee a consistent outcome. But if it is after the response, then it is basically a way to iterate on the generated response by either restructuring or even semantically refelct on it (?)

  • @YEM_
    @YEM_ ปีที่แล้ว +1

    At 15:30 ish, how did it suddenly get internet access? I don't see where we enabled that.

    • @titi_build
      @titi_build 10 หลายเดือนก่อน

      he faked an API call, and returned some hard coded data from his function

  • @agedbytes82
    @agedbytes82 ปีที่แล้ว

    Thank you!

  • @Phobos221B
    @Phobos221B 2 หลายเดือนก่อน

    Can you try something like this with Langfuse ?

  • @JaeHoSong
    @JaeHoSong ปีที่แล้ว

    Great!! Thank you. This helped a lot.👍

  • @shafiqahmad9057
    @shafiqahmad9057 14 วันที่ผ่านมา

    whenever I provide output.tool_calls.name with name key it give the error that expecting object and string has been given could you please guide me regarding this

  • @israeabdelbar8994
    @israeabdelbar8994 6 หลายเดือนก่อน

    Huge thanks for the useful video 😊.
    I'm wondering whether you know how to deal with missing data within the prompt, for instance for the get flight info, imagine the user doesn't provide the destination, is the LLM has the ability to detect that, and back to the user ask him to provide missing info which is in this case the destination name?

  • @tancheeken
    @tancheeken 8 หลายเดือนก่อน

    At 14:23, you use eval(function_call.name) to reference to function. Since there is only one function, wouldn't it be better to do without eval and call the function(**params) directly?

  • @drowsypostman
    @drowsypostman ปีที่แล้ว

    I have a major issue, I automated the function calling but it does not always call the correct function, I need to leave it on auto so it decides when it is time to call a function. How can I make sure it always calls correct function? Function description is not working. It just calls the functions randomly

  • @robinchriqui2407
    @robinchriqui2407 ปีที่แล้ว

    Thank you Dave, do you think we will see new kind of jobs related to OpenAi?

  • @kevon217
    @kevon217 ปีที่แล้ว

    Another banger of a video!

  • @shukrantpatil
    @shukrantpatil 7 หลายเดือนก่อน

    Is it possible to deploy a particular assistant which I have created in the assistant builder using the assistant ID ??

  • @nengshengqian
    @nengshengqian 8 หลายเดือนก่อน

    Great!!

  • @enatsutoru7377
    @enatsutoru7377 7 หลายเดือนก่อน

    what is the plug-in name? It’s useful

  • @yixinsong
    @yixinsong ปีที่แล้ว

    Hi Dave, thanks for this really good video! What is the plugin you are using in this video to show the response? (the one ends with .interactive)

    • @leobeeson1
      @leobeeson1 9 หลายเดือนก่อน

      th-cam.com/video/zulGMYg0v6U/w-d-xo.htmlsi=OeTp5Kf-wH_1OHH4&t=863
      This feature was the reason I migrated from PyCharm to VSCode, and the best thing is I've never had to touch a bloody Jupyter notebook again (well, except for in Google Colab but that's force majeure).

  • @santiagobattezzati7895
    @santiagobattezzati7895 ปีที่แล้ว +2

    In real life, some times the user won t provide all the info you need for calling your function. How would you do to make GPT ask again for the missing information before calling the function.

    • @andrewwilliams5773
      @andrewwilliams5773 6 หลายเดือนก่อน

      You make one of the defined functions "get_complete_info(function_def, required_fields)" which itself calls an AI response to request this from the user. Then process the response and return the required_fields to the original function.

  • @techiteasyaus
    @techiteasyaus 9 หลายเดือนก่อน

    Thanks Dave, very educational. I am in the process of converting the code to the latest openai API (1.6) as the completion API has changed. This is a good exercise as it forces me to rewrite the syntax of the functions and of the API calls. I've got it running but the last part with Langchain isn't working, it crashes at llm.predict_messages, no idea why. Cheers.

  • @RAMOLLAPRAKASH
    @RAMOLLAPRAKASH 7 หลายเดือนก่อน

    same can you please do one video on the function call on Gemini Ai ?

  •  7 หลายเดือนก่อน

    This will work different now for Assistants?

  • @Amit-bq1gj
    @Amit-bq1gj ปีที่แล้ว

    do I have to pay for function calls as well, suppose I have 100 functions, so would each time these function cost added?

  • @deathspainvincentblood6745
    @deathspainvincentblood6745 ปีที่แล้ว

    can u compare theme between programming helper 1990s vs CHAT GPT the programming helper there's no errors code depend on ur personal if u not believe me u can try programming helper and plus u r helping people

  • @Reviews_by_Ryan
    @Reviews_by_Ryan ปีที่แล้ว

    Hey Dave! Have you gotten gpt to run a function twice? For instance if the prompt is
    "Create two events.. here are their details..."
    But the function call only creates 1 event at a time, and gpt only returns details for one at a time.

    • @colkbassad
      @colkbassad 11 หลายเดือนก่อน

      Try passing "two" as an int parameter in your function (and function_description) as an iteration amount and have the return value a list instead. I have no idea if this would work, I'm still getting a grasp on function calling.

  • @vishalpachpande5921
    @vishalpachpande5921 3 หลายเดือนก่อน

    Yea but how to put this into any production

  • @JazevoAudiosurf
    @JazevoAudiosurf ปีที่แล้ว

    any way to make it more likely to call the function?

  • @markp2381
    @markp2381 ปีที่แล้ว

    Can the properties be anything else other than object?

  • @broskmohammad8169
    @broskmohammad8169 10 หลายเดือนก่อน

    are the python files you just ran saved somewhere ?

  • @shraey2021
    @shraey2021 ปีที่แล้ว

    You reckon then this replace the whole need of Tools in Langchain? or the need for Langchain altogether?

    • @daveebbelaar
      @daveebbelaar  ปีที่แล้ว

      This will definitely change things as the LangChain tools are essentially doing this under the hood. They will likely update the library to pick tools based on function calling.

  • @archiee1337
    @archiee1337 ปีที่แล้ว

    Gold

  • @tijldeclerck7772
    @tijldeclerck7772 ปีที่แล้ว

    Hollander!

  • @echandiac
    @echandiac 8 หลายเดือนก่อน

    is this just for python? is it posible to do this on php?

  • @shubhamverma2531
    @shubhamverma2531 6 หลายเดือนก่อน

    what plugin you are using for interactive CLI.

    • @daveebbelaar
      @daveebbelaar  6 หลายเดือนก่อน

      More info on that here: th-cam.com/video/3sIzCFuLgIQ/w-d-xo.html

  • @goranceurukic8185
    @goranceurukic8185 ปีที่แล้ว

    Please don't use eval, result can be something unexpected and you can end up leaking unwanted parts of code/information

  • @RanaAnas-s2h
    @RanaAnas-s2h 8 หลายเดือนก่อน

    well explained

  • @justicecalderon6641
    @justicecalderon6641 ปีที่แล้ว

    What screen recording software do you use?

  • @keithconner3982
    @keithconner3982 9 หลายเดือนก่อน +2

    These videos would be stellar if they didn't have the background music-noise which is extremely annoying.

  • @KilianMpoint
    @KilianMpoint 9 หลายเดือนก่อน

    please cut the very high frequency when you speak, maybe you don't hear that frequency but it's horrible, cut above 15000/15500 hz, please 🙏🙏

    • @daveebbelaar
      @daveebbelaar  9 หลายเดือนก่อน

      I will look into this, thanks! I don't hear it myself.

  • @parkersettle460
    @parkersettle460 7 หลายเดือนก่อน

    Has anyone tried this with a webhook?

  • @SilvioAltmann-ek9rw
    @SilvioAltmann-ek9rw 9 หลายเดือนก่อน

    OMG this is soooo cool! How amazing is this?? Love it. So I just add a random function the way it should be and the calling system is expected to return the right response..... YAYYY!°!!!111🍆💦

  • @Celso-tb6eb
    @Celso-tb6eb 5 หลายเดือนก่อน

    all good, but did the bg music puts me to sleep why you put it

    • @daveebbelaar
      @daveebbelaar  5 หลายเดือนก่อน

      Sleep is good for you

  • @Mis_guidedz
    @Mis_guidedz ปีที่แล้ว

    Wtf

  • @awsick
    @awsick ปีที่แล้ว

    Please do not recommend that folks casually use the `eval` function - that's pretty dangerous!

  • @АндрейТ-г4ж
    @АндрейТ-г4ж ปีที่แล้ว

    Still super unstable( and can't help u reduce gpt requests and even consume more tokens. I hope this helps to transform original answer into answers with params: like {
    "message": {
    "role": "assistant",
    "content": "reply",
    "": "param0",
    "": "param01"
    }
    }