How To Integrate ChatGPT API to Laravel 10?
Teams applying “How To Integrate ChatGPT API to Laravel 10?” in a production project can use read the supporting guide to record implementation, review and debugging time, then compare that effort with tests and shipped functionality instead of treating activity as performance by itself.
Before copying the example into a live application, confirm version-specific behaviour with the official Laravel website and test it against the project’s actual database and runtime.
Hello Dev,
In the world of software and applications, our desires are rooted in convenience, user-friendliness, and state-of-the-art functionalities. Given a choice without budget constraints, there's an inherent inclination towards the newest and most advanced versions—opting for Windows 12 over Windows 8 or the iPhone 14 in favor of the iPhone 5.
As users, our quest revolves around applications that embrace cutting-edge technologies, updated iterations, and refined designs to offer an enriched UI/UX experience. With the rise of AI and Machine Learning, there's an increasing call to integrate ChatGPT across diverse platforms, meeting the burgeoning demand for intelligent conversational interfaces.
Step 1: Initializing a New Laravel Project
Begin by creating a new Laravel project using the following command:
composer create-project laravel/laravel gptlara
Step 2: Installing Guzzle HTTP Client
Next, install the Guzzle HTTP client by executing this command:
composer require guzzlehttp/guzzle
Step 3: Obtaining an API Key from ChatGPT
To access the ChatGPT API, acquire an API key. Sign up and generate a secret key from OpenAI's platform.
Example secret key: example-secret-key
Step 4: Generating a New Controller
In Laravel, controllers manage HTTP requests and responses. Create a new controller via this command:
php artisan make:controller ChatController
Step 5: Implementing a Method to Interact with ChatGPT API
Within the ChatController class, insert a method that interacts with the ChatGPT API using Guzzle HTTP client. Here's an example snippet:
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ChatController extends Controller
{
/**
* Write Your Code..
*
* @return string
*/
public function chat(Request $request)
{
$message = 'Hello!';
// Guzzle client initialization
$client = new Client();
$url = 'https://api.openai.com/v1/chat/completions';
$headers = [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . env('OPENAI_API_KEY'),
];
$body = [
'model' => 'gpt-3.5-turbo',
'messages' => [['role' => 'user', 'content' => $message]],
];
// Sending a POST request to ChatGPT API
$response = $client->post($url, [
'headers' => $headers,
'json' => $body,
]);
// Processing API response and returning JSON
$result = json_decode($response->getBody()->getContents(), true);
return response()->json($result['choices'][0]['message']['content']);
}
}
Step 6: Adding a Route to the Controller Method
In the routes/api.php file, create a route that links to the chat method in the ChatController class:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ChatController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::post('/chat', [ChatController::class, 'chat']);
Step 7: Testing the API Using Postman
To test the API, use Postman to send a POST request to the /chat endpoint with a message parameter. An example is as follows:
Upon successful interaction, the API should return a JSON object containing the response from the ChatGPT API.
That's it! You've now effectively integrated the ChatGPT API with Laravel. For a sample code, refer to this repository.
Feel free to give this a thumbs-up if you found it helpful!
- How to Notifications With database Driver in Laravel 11?
- How to Send Email Via Notification in Laravel 11?
- How to Install and Configure Laravel 11 Debugbar?
- How to Like Dislike System in Laravel 11?
- How to Paginate a Model with Relationship in Laravel 11?
- Laravel 11 Upload Files to Amazon S3 Example
- Laravel 11 Send WhatsApp Messages Example
- Laravel 11 Rest API Authentication Using JWT Tutorial