Logo
© 2019 - 2026 SantriKoding.

On This Page

Mobile navigation

Laravel 13 AI #6 Processing Background dengan Laravel Jobs

like emoticon 0
love emoticon 0
insightful emoticon 0
fire emoticon 0
cheer emoticon 0
celebrate emoticon 0
Laravel 13 AI #6 Processing Background dengan Laravel Jobs

Halo semuanya! 👋

Pernahkah teman-teman menggunakan aplikasi AI dan harus menunggu loading sangat lama di layar? Itu terjadi karena proses AI (LLM) membutuhkan waktu beberapa detik (bahkan menit) untuk merespons.

Di Part 6 ini, kita akan belajar solusinya: Laravel Jobs & Queues. Kita akan memindahkan proses analisis AI ke background agar pengguna bisa terus menggunakan aplikasi tanpa harus menunggu proses analisis selesai.


Step 1 - Membuat Job Analisis

Jalankan perintah berikut untuk membuat kelas Job baru:

php artisan make:job AnalyzeThesisJob

Step 2 - Implementasi Logika Job

Buka file app/Jobs/AnalyzeThesisJob.php. Di sini kita akan menggabungkan ekstraksi teks dan pemanggilan AI Agent.

app/Jobs/AnalyzeThesisJob.php

public function handle(PdfService $pdfService): void
{
    // 1. Update status jadi processing
    $this->thesis->update(['status' => 'processing']);

    try {
        // 2. Ekstrak Teks menggunakan Service yang sudah kita buat di Part 4
        $text = $pdfService->extractText($this->thesis->file_path);

        // 3. Panggil AI Agent
        $agent = new ThesisAnalyzerAgent();
        $response = $agent->prompt("Analisis draf ini secara mendalam: " . $text);
        $data = $response->toArray();

        // 4. Simpan Feedback ke Database
        foreach ($data['feedbacks'] as $item) {
            $this->thesis->analyses()->create([
                'analysis_type' => $item['type'],
                'result' => $item,
            ]);
        }

        // 5. Update status jadi completed
        $this->thesis->update([
            'status' => 'completed',
            'analysis_results' => ['summary' => $data['summary'] ?? 'Analisis selesai.']
        ]);
    } catch (\Exception $e) {
        \Log::error("Analysis failed: " . $e->getMessage());
        $this->thesis->update(['status' => 'failed']);
    }
}

Step 3 - Memanggil Job dari Controller

Ubah method store atau buat route baru untuk memicu Job ini secara asynchronous.

app/Http/Controllers/DocumentController.php

public function analyze(Document $document)
{
    dispatch(new AnalyzeThesisJob($document));

    return back()->with('info', 'Analisis sedang berjalan di latar belakang.');
}

Step 4 - Menjalankan Queue Worker

Agar Job yang masuk ke antrean diproses, kita perlu menjalankan worker. Buka terminal baru dan jalankan:

php artisan queue:work

Sekarang, saat user klik tombol "Analisis", aplikasi akan langsung merespons dan proses AI yang berat akan dikerjakan oleh worker di balik layar.


kesimpulan

Dengan menggunakan Laravel Jobs, pengalaman pengguna (UX) aplikasi kita meningkat drastis. Tidak ada lagi layar freeze saat menunggu AI. Aplikasi terasa jauh lebih cepat dan profesional.

Pada Part 7 nanti, kita akan membangun fitur yang lebih cerdas lagi: Logic Link & Reference Checker. Kita akan mengajari AI cara mengecek "Benang Merah" antar bab skripsi.

Jika teman-teman ada kendala saat konfigurasi Queue (misal pakai Redis atau Database), silakan tanya di kolom komentar ya!

Semoga bermanfaat! 😊

Artikel ini dibaca sebanyak 108 kali

Syahrizal AS
Back End Developer

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komentar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

Memuat komentar...

0
0
0
SHARE