PHP code example of softcreatr / php-perplexity-ai-sdk

1. Go to this page and download the library: Download softcreatr/php-perplexity-ai-sdk 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/ */

    

softcreatr / php-perplexity-ai-sdk example snippets




declare(strict_types=1);

leHttp\Psr7\HttpFactory;
use SoftCreatR\PerplexityAI\PerplexityAI;

$factory = new HttpFactory();
$perplexity = new PerplexityAI(
    requestFactory: $factory,
    streamFactory: $factory,
    uriFactory: $factory,
    httpClient: new Client(['stream' => true]),
    apiKey: (string) getenv('PERPLEXITY_API_KEY'),
);

use const JSON_THROW_ON_ERROR;

$response = $perplexity->createAgentResponse([
    'model' => 'openai/gpt-5-mini',
    'input' => 'Give me a one-sentence summary of PSR-18.',
]);

$result = json_decode((string) $response->getBody(), true, 512, JSON_THROW_ON_ERROR);

$response = $perplexity->createChatCompletion([
    'model' => 'sonar',
    'messages' => [
        ['role' => 'user', 'content' => 'When did Wolfgang Amadeus Mozart die?'],
    ],
]);

$perplexity->createEmbedding([
    'model' => 'pplx-embed-v1-0.6b',
    'input' => 'A sentence to embed.',
]);

$perplexity->retrieveAgentResponse([
    'id' => 'resp_abc123',
]);

$perplexity->createChatCompletion([], [
    'model' => 'sonar',
    'messages' => [['role' => 'user', 'content' => 'Summarize PSR-18.']],
]);

$response = $perplexity->request(
    'retrieveAgentResponse',
    ['id' => 'resp_abc123'],
    customHeaders: ['X-Trace-Id' => 'trace_abc123'],
);

$perplexity->createChatCompletion(
    [
        'model' => 'sonar',
        'messages' => [['role' => 'user', 'content' => 'Write a short haiku about PHP.']],
        'stream' => true,
    ],
    static function (array $event): void {
        echo $event['choices'][0]['delta']['content'] ?? '';
    },
);

use SoftCreatR\PerplexityAI\Exception\PerplexityAIException;

try {
    $perplexity->listModels();
} catch (PerplexityAIException $exception) {
    error_log(sprintf(
        'Perplexity request %s failed (%d): %s',
        $exception->getRequestId() ?? 'unknown',
        $exception->getCode(),
        $exception->getMessage(),
    ));
}
bash
cp .env.example .env
php examples/sonar/createChatCompletion.php
bash
composer install
composer test
composer analyse
vendor/bin/php-cs-fixer fix --dry-run --diff