<?php
$text = <<<TEXT
Jason is 25 years old. He is a programmer. He has a car. He lives
in a small house in Alamo. He likes to play guitar.
TEXT;
$user = new StructuredOutput(
StructuredOutputRuntime::fromProvider(LLMProvider::using('openai'))
->withOutputMode(OutputMode::Json)
)->with(
messages: [['role' => 'user', 'content' => $text]],
responseModel: UserDetail::class,
)->get();
dump($user);
assert($user->age === 25);
assert($user->name === "Jason");
assert(!empty($user->properties));
?>