Skip to content

About

⚡️ OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with OpenAI API

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

GitHub Workflow Status (master) Total Downloads Latest Version License


OpenAI PHP for Laravel is a PHP API client that allows you to interact with the Open AI API. This package is maintained by Squipix and forked from the openai-php/laravel project.

Note: This repository contains the Laravel integration for OpenAI PHP. For the framework-agnostic client, see squipix/openai-php-client (fork of openai-php/client).

Get Started

Requires PHP 8.2+

First, install OpenAI via the Composer package manager:

composer require squipix/openai-php

Next, execute the install command:

php artisan openai:install

This will create a config/openai.php configuration file in your project, which you can modify to your needs using environment variables. Blank environment variables for the OpenAI API key and organization id are already appended to your .env file.

OPENAI_API_KEY=sk-...
OPENAI_ORGANIZATION=org-...

Finally, you may use the OpenAI facade to access the OpenAI API:

use OpenAI\Laravel\Facades\OpenAI;

$response = OpenAI::responses()->create([
    'model' => 'gpt-5',
    'input' => 'Hello!',
]);

echo $response->outputText; // Hello! How can I assist you today?

Configuration

Configuration is done via environment variables or directly in the configuration file (config/openai.php).

OpenAI API Key and Organization

Specify your OpenAI API Key and organization. This will be used to authenticate with the OpenAI API - you can find your API key and organization on your OpenAI dashboard, at https://openai.com.

OPENAI_API_KEY=
OPENAI_ORGANIZATION=

OpenAI Project

For implementations that require a project ID, you can specify the OpenAI project ID in your environment variables.

OPENAI_PROJECT=proj_...

OpenAI API Base URL

The base URL for the OpenAI API. By default, this is set to api.openai.com/v1.

OPENAI_BASE_URL=

Request Timeout

The timeout may be used to specify the maximum number of seconds to wait for a response. By default, the client will time out after 30 seconds.

OPENAI_REQUEST_TIMEOUT=

Usage

For usage examples, take a look at the squipix/openai-php-client repository.

Testing

The OpenAI facade comes with a fake() method that allows you to fake the API responses.

The fake responses are returned in the order they are provided to the fake() method.

All responses are having a fake() method that allows you to easily create a response object by only providing the parameters relevant for your test case.

use OpenAI\Laravel\Facades\OpenAI;
use OpenAI\Responses\Responses\CreateResponse;

OpenAI::fake([
    CreateResponse::fake([
        'choices' => [
            [
                'text' => 'awesome!',
            ],
        ],
    ]),
]);

$response = OpenAI::responses()->create([
    'model' => 'gpt-5',
    'input' => 'PHP is ',
]);

expect($response->outputText)->toBe('awesome!');

After the requests have been sent there are various methods to ensure that the expected requests were sent:

use OpenAI\Resources\Responses;

// assert completion create request was sent
OpenAI::assertSent(Responses::class, function (string $method, array $parameters): bool {
    return $method === 'create' &&
        $parameters['model'] === 'gpt-5' &&
        $parameters['prompt'] === 'PHP is ';
});

For more testing examples, take a look at the squipix/openai-php-client repository.


OpenAI PHP for Laravel is an open-sourced software licensed under the MIT license.

About

⚡️ OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with OpenAI API

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages