Function return values must be JSON serializable

Since the LLM at the heart of Inferable is generating instructions based on the return values of your functions, it’s important that the return values are JSON serializable, so that the AI model can understand them.

Number of functions

Inferable currently supports a maximum of 1000 functions per cluster. This is a soft limit and customers can request an increase by contacting support at [email protected].

Go Struct Reference Limitation in JSON Schema Generation

This section is specific to the Golang SDK. Other language SDKs are not affected by this limitation.

When defining input arguments for your functions, avoid using struct references in Go. Our JSON schema generation doesn’t fully support $ref in the resulting schema, which can lead to issues during function registration and execution.

Here’s an example of what to avoid:

type Address struct {
    Street  string
    City    string
    Country string
}

type Person struct {
    Name    string
    Address *Address  // This reference will cause issues
}

func ProcessPerson(input Person) {
    // Function logic here
}

This will cause issues with function registration and execution.

Recommended Approach:

type Person struct {
    Name    string
    Address struct {
        Street  string
        City    string
        Country string
    }
}

func ProcessPerson(input Person) {
    // Function logic here
}

If the SDK detects that you’re using a struct reference, it will log a warning and not register the function.