Mungkin Anda sudah pernah sebelumnya bermain dengan ai dengan menggunakan ChatGPT atau yang lain mirip dengan itu. Tapi kali ini kita akan menggunakan open ai dengan Laravel. Jadi, mari kita mulai.
Apa itu Open AI?
Open AI adalah sebuah platform yang memungkinkan kita untuk membuat AI yang dapat digunakan untuk berbagai keperluan.
Membuat Project Laravel
Pertama-tama kita akan membuat project Laravel terlebih dahulu.
laravel new open-ai-with-laravel
Atau Anda bisa menggunakan composer untuk membuat project Laravel.
composer create-project --prefer-dist laravel/laravel open-ai-with-laravel
Install Package Open AI
Setelah itu, maka kita bisa lanjut ke langkah selanjutnya yaitu menginstall package yang telah dibuat oleh Nuno Maduro.
composer require openai-php/laravel
Setelah itu, silakan publish vendor tersebut dengan menggunakan perintah berikut.
php artisan vendor:publish --provider="OpenAI\Laravel\ServiceProvider"
Dengan perintah itu, maka kita akan diberikan 1 file dengan nama openai.php yang berada di dalam folder config. Perhatikan pada bagian:
return [
'api_key' => env('OPENAI_API_KEY'),
// ...
];
Yang itu berarti dia berharap kita mempunyai sebuah environment variable dengan nama OPENAI_API_KEY. Jadi, silakan buat environment variable tersebut di dalam file .env Anda.
OPENAI_API_KEY=sk-...
Anda bisa melihat open ai key Anda di platform.openai.com/. Jika Anda belum mempunyai akun, silakan daftar terlebih dahulu.
Untuk menggunakan package ini sangat mudah sekali pastinya. API nya sangat mudah dipahami.
use OpenAI\Laravel\Facades\OpenAI;
$result = OpenAI::completions()->create([
'model' => 'text-davinci-003',
'prompt' => 'Do you have a cat ?',
]);
echo $result['choices'][0]['text'];
Atau Anda juga bisa menggunakan model lain seperti misalnya gpt-3.5-turbo.
Anda bisa melihat semua model di Open AI Models.
$response = OpenAI::chat()->create([
'model' => config('openai.model.turbo'),
'messages' => [[
'role' => 'user',
'content' => $request->input('prompt'),
]],
]);
return collect($result['choices'])->map(fn ($choice) => [
'index' => $choice['index'],
'role' => ucfirst($choice['message']['role']),
'content' => str($choice['message']['content'])->markdown(),
'finish_reason' => $choice['finish_reason'],
]);
Simple Workflow
Karena kita tidak mempunyai setup yang sangat serius disini, jadi saya berencana untuk memandu Anda menggunakan laravel command saja.
Membuat Command
Pertama sekali, silakan buat command terlebih dahulu.
php artisan make:command AskAi
Dengan begitu, maka kita akan diberikan file baru tepatnya di dalam folder app/Console/Commands/AskAi.php. Silakan buka file tersebut dan ubah menjadi seperti berikut.
namespace App\Console\Commands;
use OpenAI\Laravel\Facades\OpenAI;
use Illuminate\Console\Command;
class AskAiCommand extends Command
{
protected $signature = 'ask:ai';
protected $description = 'Asking for help the to AI';
public function handle(): void
{
$ask = $this->ask('Your question?');
$result = OpenAI::completions()->create([
'model' => 'text-davinci-003',
'prompt' => $ask,
'max_tokens' => 250,
]);
$this->warn($ask);
$this->info($result['choices'][0]['text']);
}
}
Dengan begitu, maka kita bisa menjalankan command tersebut dengan menggunakan perintah berikut.
php artisan ask:ai
Kurang lebih akan seperti ini hasilnya.

Jadi jika Anda bekerja dengan controller, sudah pasti Anda bisa mengganti $this->ask('Your question?') menjadi $request->get('question') atau yang lainnya.
Semoga artikel ini bermanfaat dan selamat mencoba. Saya irsyad, sampai jumpa di artikel selanjutnya.
Irsyad A. Panjaitan
Let's start living like no one can help us in any event, so that when we are helped in certain times, it becomes a plus in itself.
Artikel yang Terkait
- Belajar Cache Flexible di Laravel
Irsyad A. Panjaitan
- Membuat Fitur Multi Bahasa di Laravel Inertia React
Irsyad A. Panjaitan
- Laravel Script: composer run dev
Irsyad A. Panjaitan
- Apa yang Baru di Inertia.js 2.0
Irsyad A. Panjaitan
- Membuat Custom Rule Validator untuk Nomor Telepon Indonesia dengan Laravel
Abd. Asis
- Like System dengan Laravel Polymorphic
Irsyad A. Panjaitan
- Laravel Dengan Multi Koneksi Database: Panduan Langkah demi Langkah
Abd. Asis