interface FunctionDefinition {
    name: string;
    parameters: Record<string, unknown>;
    description?: string;
    strict?: boolean;
}

Properties

name: string

The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.

parameters: Record<string, unknown>

The parameters the functions accepts, described as a JSON Schema object. See the guide for examples, and the JSON Schema reference for documentation about the format.

To describe a function that accepts no parameters, provide the value {"type": "object", "properties": {}}.

description?: string

A description of what the function does, used by the model to choose when and how to call the function.

strict?: boolean

Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the parameters field. Only a subset of JSON Schema is supported when strict is true. Learn more about Structured Outputs in the function calling guide.