openai-php/laravel
Community-maintained OpenAI PHP integration for Laravel. Install via Composer and artisan, configure API key in .env, then use the OpenAI facade to call OpenAI endpoints (e.g., Responses API) from your Laravel app.
Pros:
responses, conversations, fineTuning, realtime, containers) via facades, allowing granular access to OpenAI’s capabilities..env or config/openai.php aligns with Laravel’s conventions, reducing boilerplate.fake() method for mocking API responses simplifies unit/integration testing, critical for CI/CD pipelines.openai/client package can be extended for custom use cases (e.g., webhooks, async processing).Cons:
Laravel Compatibility:
responses facade).OpenAI API Alignment:
gpt-5 model support, rate limit handling via RateLimitException).Data Flow:
realtime facade) may require additional infrastructure (e.g., queues, WebSockets).API Stability:
openai/client package for updates.openai-php/client to a minor version) and implement retry logic for transient failures.Performance:
429 errors.Security:
.env; ensure:
config('services.openai') for runtime access (avoid hardcoding).Testing:
fake() method to mock responses.Use Case Scope:
Scaling Requirements:
OPENAI_BASE_URL for Azure OpenAI)?Cost Management:
Maintenance:
Compliance:
OPENAI_BASE_URL pointing to EU endpoints)?Laravel Ecosystem:
OpenAI::responses()->create() over direct service container binding for simplicity in controllers/blades.OpenAI\Client instance to the container:
$this->app->singleton(\OpenAI\Client::class, function ($app) {
return OpenAI::client();
});
GeneratingResponse, ResponseGenerated) for observability.PHP Extensions:
OpenAI facades (e.g., FineTuningJob).Database:
ai_responses) with columns for:
model, prompt, response, tokens_used, created_at.Observers or Model Events to log interactions.Assessment Phase:
Pilot Integration:
responses facade.// routes/web.php
Route::post('/chat', function (Request $request) {
$response = OpenAI::responses()->create([
'model' => 'gpt-4',
'prompt' => $request->input('message'),
'max_tokens' => 150,
]);
return response()->json(['reply' => $response->outputText]);
});
Incremental Rollout:
OpenAI::fineTuning()->create()).Testing:
/chat endpoint).public function test_chat_endpoint()
{
OpenAI::fake([
CreateResponse::fake(['choices' => [['text' => 'Hello!']]]),
]);
$response = $this->postJson('/chat', ['message' => 'Hi']);
$response->assertJson(['reply' => 'Hello!']);
}
Deprecation:
Laravel Versions:
PHP Versions:
OpenAI API:
OPENAI_BASE_URL to point to beta endpoints (e.g., api.openai.com/v1/beta).Third-Party Packages:
openai-php/client directly to prevent version mismatches.Prerequisites:
Core Integration:
php artisan openai:install..env and `config/openai.phpHow can I help you explore Laravel packages today?