Overview

You can provide your own LLM configuration data to Instructor object with DSN string. This is useful for inline configuration or for building configuration from admin UI, CLI arguments or environment variables.

Example

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

use Cognesy\Instructor\Instructor;
use Cognesy\Polyglot\LLM\Data\LLMConfig;
use Cognesy\Polyglot\LLM\Enums\OutputMode;
use Cognesy\Utils\Env;

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

$user = (new Instructor)
    ::fromDSN('connection=xai,model=grok-2')
    ->respond(
        messages: "Our user Jason is 25 years old.",
        responseModel: User::class,
        mode: OutputMode::Tools,
    );

dump($user);

assert(isset($user->name));
assert(isset($user->age));
?>