Overview

Example

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

use Cognesy\Instructor\StructuredOutput;
use Cognesy\Schema\Attributes\Description;

class UserWithMixedTypeProperty
{
    public string $name;
    #[Description('Any extra information about the user')]
    public mixed $extraInfo;
}

$text = <<<TEXT
    Jason is 25 years old. He plays football and loves to travel.
    TEXT;


$user = (new StructuredOutput)
    ->withDebugPreset('on')
    ->withMessages($text)
    ->withResponseClass(UserWithMixedTypeProperty::class)
    ->get();

dump($user);

assert($user->name === "Jason");
assert($user->extraInfo !== ''); // not empty, but can be any type
?>