Live data from Hacker News

New GPT3.5/4 Function Calling in OpenAI API

platform.openai.com

1–3 of 3 posts

Re: New GPT3.5/4 Function Calling in OpenAI API

#2
TLDR, you can now pass a list of functions into a chat completion and the model will respond appropriately to "call" your function.

  response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo-0613",
        messages=[{"role": "user", "content": "What's the weather like in Boston?"}],
        functions=[
            {
                "name": "get_current_weather",
                "description": "Get the current weather in a given location",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "type": "string",
                            "description": "The city and state, e.g. San Francisco, CA",
                        },
                        "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
                    },
                    "required": ["location"],
                },
            }
        ],
        function_call="auto",
    )

Re: New GPT3.5/4 Function Calling in OpenAI API

#3
post #2

TLDR, you can now pass a list of functions into a chat completion and the model will respond appropriately to "call" your function. response = openai.ChatCompletion.create( model="gpt-3.5-turbo-0613", messages=[{"role": "user", "content": "What's the weather like in Boston?"}], functions=[ { "name": "get_current_weather", "description": "Get the current weather in a given location", "parameters": { "type": "object",…

If GPT thinks a function call is warranted based on the input, then it fills in a "function_call" parameter in its response and provides the arguments. You then call the function using those arguments and in your next call to ChatCompletion, you pass in the response from your function.

  message = response["choices"][0]["message"]

    # Step 2, check if the model wants to call a function
    if message.get("function_call"):
        function_name = message["function_call"]["name"]

  ...

  second_response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo-0613",
            messages=[
                {"role": "user", "content": "What is the weather like in boston?"},
                message,
                {
                    "role": "function",
                    "name": function_name,
                    "content": function_response,
                },
            ],
        )