Skip to content

Basic use via StructuredOutput

Overview

Mixin-based inference was removed in 2.0. Use StructuredOutput directly:

use Cognesy\Instructor\StructuredOutput;

$user = StructuredOutput::using('openai')
    ->with(
        messages: 'Jason is 25 years old and works as an engineer.',
        responseModel: User::class,
    )
    ->getObject();

Example

<?php
require 'examples/boot.php';

use Cognesy\Instructor\StructuredOutput;

class User {
    public int $age;
    public string $name;
}

$user = StructuredOutput::using('openai')
    ->with(
        messages: "Jason is 25 years old and works as an engineer.",
        responseModel: User::class,
    )
    ->getObject();

dump($user);

assert(isset($user->name));
assert(isset($user->age));
assert($user->name === 'Jason');
assert($user->age === 25);
?>