1. Go to this page and download the library: Download ndrstmr/steg library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ndrstmr / steg example snippets
use Steg\Factory\StegClientFactory;
$steg = StegClientFactory::fromDsn('vllm://localhost:8000/v1?model=llama-3.3-70b-awq');
echo $steg->ask('Erkläre Photosynthese in Leichter Sprache.');
// One-shot: single user prompt
$answer = $steg->ask('What is Leichte Sprache?');
// System + user: most common chat pattern
$answer = $steg->chat(
system: 'You translate German administrative texts into Leichte Sprache.',
user: 'Die Bundesregierung hat neue Gesetze beschlossen.',
);
// Full message history
use Steg\Model\ChatMessage;
$answer = $steg->complete([
ChatMessage::system('You are a helpful assistant.'),
ChatMessage::user('What is the capital of France?'),
ChatMessage::assistant('The capital of France is Paris.'),
ChatMessage::user('And Germany?'),
])->content;
// Streaming
foreach ($steg->stream([ChatMessage::user('Write a poem.')]) as $chunk) {
echo $chunk->delta;
}
use Steg\Model\CompletionOptions;
$steg->ask('Generate JSON.', CompletionOptions::precise()); // temperature 0.1
$steg->ask('Write a story.', CompletionOptions::creative()); // temperature 0.9
$steg->ask('Translate.', CompletionOptions::leichteSprache()); // temperature 0.3
$steg->ask('Anything.', CompletionOptions::default()); // temperature 0.7
// Custom (immutable — returns new instance)
$opts = CompletionOptions::default()->withTemperature(0.5)->withMaxTokens(2048);
if ($steg->isHealthy()) {
foreach ($steg->listModels() as $model) {
echo $model->id.PHP_EOL;
}
}
use Steg\Exception\ConnectionException;
use Steg\Exception\InferenceException;
use Steg\Exception\ModelNotFoundException;
use Steg\Exception\InvalidResponseException;
try {
$response = $steg->ask('Hello');
} catch (ConnectionException $e) {
// Server unreachable or timeout
} catch (ModelNotFoundException $e) {
// Model not loaded on the server
echo 'Missing model: '.$e->getModelId();
} catch (InferenceException $e) {
// Server returned 4xx/5xx
echo 'HTTP '.$e->getHttpStatusCode();
} catch (InvalidResponseException $e) {
// Response parsing failed
}
use Steg\Client\MockClient;
use Steg\StegClient;
// Fixed responses, cycling
$client = new StegClient(MockClient::withResponses([
'First response',
'Second response',
]));
$client->ask('anything'); // → 'First response'
$client->ask('anything'); // → 'Second response'
$client->ask('anything'); // → 'First response' (loops)
// Dynamic responses via callback
$client = new StegClient(MockClient::withCallback(
static fn (array $messages) => 'Echo: '.$messages[0]->content,
));
use Steg\Client\InferenceClientInterface;
final class MyService
{
public function __construct(
private readonly InferenceClientInterface $steg,
) {}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.