The `tools` Feature Hallucinate More Than the Deprecated `function_call` - GPT-3.5

Testing Model: gpt-3.5-turbo-1106

I am testing a simple function:

{
      name: "gift_generator",
      description: "this function generates gifts for the user",
      parameters: {
        type: "object",
        properties: {
          occasion: {
            type: "string",
            description:
              "the occasion for the gift. this is the occasion the user has explicitly mentioned. DO NOT make assumptions",
          },
        },
        required: ["occasion"],
      },
    },

With this system message

{
      role: "system",
      content: `You are provided with a function that requires arguments.
If user has explicitly provided all required function arguments, generate a function call.
If one or more required arguments are missing, politely ask the user to provide them.

IMPORTANT: do not make any assumptions.`,
    }

The model behave as expected if I use the (now) deprecated function_call feature. For example, if the user says: “I need a gift”, the models asks for the occasion.

However, if I use this same function with the tools feature, it almost always hallucinates and assumes the occasion is birthday without asking the user.

Is anyone else noticing this with tools?

Thank you!

I noticied that this model has problems with function calling and passing arguments. I tried to use it, but the gpt-3.5-turbo-16k is much better right now. Guess OpenAI is still working on this model.

That makes sense! Still interesting though that functions and tools behave differently with the same model