1. Go to this page and download the library: Download gridwb/laravel-perplexity 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/ */
gridwb / laravel-perplexity example snippets
use Gridwb\LaravelPerplexity\Facades\Perplexity;
use Gridwb\LaravelPerplexity\Responses\Agent\OutputItems\MessageOutputItem;
$response = Perplexity::agent()->createResponse([
'model' => 'openai/gpt-5.2',
'input' => 'What are the latest developments in AI?',
'tools' => [
[
'type' => 'web_search',
],
],
'instructions' => 'You have access to a web_search tool. Use it for questions about current events, news, or recent developments. Use 1 query for simple questions. Keep queries brief: 2-5 words. NEVER ask permission to search - just search when appropriate',
]);
foreach ($response->output as $outputItem) {
/**
* One of the output item classes:
* \Gridwb\LaravelPerplexity\Responses\Agent\OutputItems\MessageOutputItem
* \Gridwb\LaravelPerplexity\Responses\Agent\OutputItems\SearchResultsOutputItem
* \Gridwb\LaravelPerplexity\Responses\Agent\OutputItems\FetchUrlResultsOutputItem
* \Gridwb\LaravelPerplexity\Responses\Agent\OutputItems\FunctionCallOutputItem
*/
if ($outputItem instanceof MessageOutputItem) {
foreach ($outputItem->content as $content) {
echo $content->text; // full content
}
}
}
use Gridwb\LaravelPerplexity\Facades\Perplexity;
use Gridwb\LaravelPerplexity\Responses\Agent\StreamAgentResponse;
use Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\TextDeltaEvent;
$stream = Perplexity::agent()->createStreamedResponse([
'model' => 'openai/gpt-5.2',
'input' => 'What are the latest developments in AI?',
'tools' => [
[
'type' => 'web_search',
],
],
'instructions' => 'You have access to a web_search tool. Use it for questions about current events, news, or recent developments. Use 1 query for simple questions. Keep queries brief: 2-5 words. NEVER ask permission to search - just search when appropriate',
]);
/** @var StreamAgentResponse $response */
foreach ($stream as $response) {
/**
* One of the stream event classes:
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\ResponseCreatedEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\ResponseInProgressEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\ResponseCompletedEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\ResponseFailedEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\OutputItemAddedEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\OutputItemDoneEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\TextDeltaEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\TextDoneEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\ReasoningStartedEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\SearchQueriesEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\SearchResultsEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\FetchUrlQueriesEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\FetchUrlResultsEvent
* \Gridwb\LaravelPerplexity\Responses\Agent\StreamEvents\ReasoningStoppedEvent
*/
$event = $response->event;
if ($event instanceof TextDeltaEvent) {
echo $event->delta; // delta content
}
}
use Gridwb\LaravelPerplexity\Facades\Perplexity;
$authToken = '<string>';
Perplexity::authentication()->revokeAuthToken($authToken);
use Gridwb\LaravelPerplexity\Facades\Perplexity;
$response = Perplexity::embeddings()->createEmbeddings([
'input' => 'Scientists explore the universe driven by curiosity.',
'model' => 'pplx-embed-v1-4b',
]);
foreach ($response->data as $embedding) {
echo $embedding->object;
echo $embedding->index;
echo $embedding->embedding;
}
use Gridwb\LaravelPerplexity\Facades\Perplexity;
$response = Perplexity::embeddings()->createContextualizedEmbeddings([
'input' => [
// Document 1: Three chunks
[
'Curiosity begins in childhood with endless questions about the world.',
'As we grow, curiosity drives us to explore new ideas and challenge assumptions.',
'Scientific breakthroughs often start with a simple curious question.',
],
// Document 2: Two chunks
[
'The Curiosity rover explores Mars, searching for signs of ancient life.',
'Each discovery on Mars sparks new questions about our place in the universe.',
],
],
'model' => 'pplx-embed-context-v1-4b',
]);
foreach ($response->data as $contextualizedEmbedding) {
echo $contextualizedEmbedding->object;
echo $contextualizedEmbedding->index;
foreach ($contextualizedEmbedding->data as $embedding) {
echo $embedding->object;
echo $embedding->index;
echo $embedding->embedding;
}
}
use Gridwb\LaravelPerplexity\Facades\Perplexity;
$response = Perplexity::search()->search([
'query' => 'latest AI developments 2026',
]);
foreach ($response->results as $result) {
echo $result->title;
echo $result->url;
echo $result->snippet;
echo $result->date;
echo $result->lastUpdated;
}
use Gridwb\LaravelPerplexity\Facades\Perplexity;
$response = Perplexity::sonar()->createChatCompletion([
'model' => 'sonar',
'messages' => [
[
'role' => 'user',
'content' => 'How many stars are there in our galaxy?',
],
],
]);
foreach ($response->choices as $choice) {
echo $choice->message->content; // full content
// ...
}
use Gridwb\LaravelPerplexity\Facades\Perplexity;
use Gridwb\LaravelPerplexity\Responses\Sonar\ChatCompletionResponse;
$stream = Perplexity::sonar()->createStreamedChatCompletion([
'model' => 'sonar',
'messages' => [
[
'role' => 'user',
'content' => 'How many stars are there in our galaxy?',
],
],
]);
/** @var ChatCompletionResponse $response */
foreach ($stream as $response) {
foreach ($response->choices as $choice) {
echo $choice->delta->content; // delta content
// ...
}
}
use Gridwb\LaravelPerplexity\Facades\Perplexity;
$response = Perplexity::sonar()->createAsyncChatCompletion([
'request' => [
'model' => 'sonar-deep-research',
'messages' => [
[
'role' => 'user',
'content' => 'How many stars are there in our galaxy?',
],
],
],
]);
echo $response->id;
echo $response->model;
echo $response->status->value;
// ...