softcreatr/php-perplexity-ai-sdk

A powerful and easy-to-use PHP SDK for the pplx API, allowing seamless integration of advanced AI-powered features into your PHP projects.

1.1.0 2024-01-10 14:37 UTC

This package is auto-updated.

Last update: 2024-04-12 10:26:13 UTC


README

Build Latest Release ISC licensed Plant Tree Codecov branch Code Climate maintainability

This PHP library provides a simple wrapper for the PerplexityAI API, allowing you to easily integrate the PerplexityAI API into your PHP projects.

Features

  • Easy integration with PerplexityAI API
  • Supports all PerplexityAI API endpoints
  • Utilizes PSR-17 and PSR-18 compliant HTTP clients, and factories for making API requests

Requirements

Installation

You can install the library via Composer:

composer require softcreatr/php-perplexity-ai-sdk

Usage

First, include the library in your project:

<?php

require_once 'vendor/autoload.php';

Then, create an instance of the PerplexityAI class with your API key, organization (optional), an HTTP client, an HTTP request factory, and an HTTP stream factory:

use SoftCreatR\PerplexityAI\PerplexityAI;

$apiKey = 'your_api_key';

// Replace these lines with your chosen PSR-17 and PSR-18 compatible HTTP client and factories
$httpClient = new YourChosenHttpClient();
$requestFactory = new YourChosenRequestFactory();
$streamFactory = new YourChosenStreamFactory();
$uriFactory = new YourChosenUriFactory();

$pplx = new PerplexityAI($requestFactory, $streamFactory, $uriFactory, $httpClient, $apiKey);

Now you can call any supported PerplexityAI API endpoint using the magic method __call:

$response = $pplx->createChatCompletion([
    'model' => 'mistral-7b-instruct',
    'messages' => [
        [
            'role' => 'system',
            'content' => 'Be precise and concise.'
        ],
        [
            'role' => 'user',
            'content' => 'How many stars are there in our galaxy?'
        ]
    ],
]);

// Process the API response
if ($response->getStatusCode() === 200) {
    $responseObj = json_decode($response->getBody()->getContents(), true);
    
    print_r($responseObj);
} else {
    echo "Error: " . $response->getStatusCode();
}

For more details on how to use each endpoint, refer to the PerplexityAI API documentation, and the examples provided in the repository.

Supported Methods

Chat Completions

Changelog

For a detailed list of changes and updates, please refer to the CHANGELOG.md file. We adhere to Semantic Versioning and document notable changes for each release.

Known Problems and limitations

Streaming Support

Currently, streaming is not supported. It's planned to address this limitation asap. For now, please be aware that these methods cannot be used for streaming purposes.

If you require streaming functionality, consider using an alternative implementation or keep an eye out for future updates to this library.

License

This library is licensed under the ISC License. See the LICENSE file for more information.

Maintainers 🛠️

Sascha Greuel
Sascha Greuel

Contributors ✨