Tutorial April 25, 2026 · 4 min read · 1 dilihat

Integrasi Claude API di Laravel untuk Pemula

Claude API dari Anthropic membuka peluang baru untuk menambahkan kemampuan AI ke aplikasi Laravel kamu. Mulai dari chatbot, content generation, hingga text analysis, semuanya bisa diimplementasikan dengan mudah tanpa perlu infrastruktur machine learning yang rumit. Tutorial ini memandu kamu step-by-step dari setup awal hingga membuat fitur AI yang production-ready — dengan penjelasan yang ramah untuk developer yang baru pertama kali pakai AI API.

Integrasi Claude API di Laravel untuk Pemula

Claude API dari Anthropic adalah salah satu AI model paling powerful saat ini, dan kabar baiknya — integrasi ke Laravel sangat straightforward. Kamu cuma perlu HTTP Client bawaan Laravel dan API key dari Anthropic, lalu kamu sudah bisa mengirim request ke Claude.

Di artikel ini, kita akan setup dari nol, membuat helper function yang rapi, dan menjalankan contoh kasus nyata yang bisa langsung kamu pakai di project.

1. Setup dan Persiapan Awal

Langkah pertama, daftar di console.anthropic.com dan buat API key baru. Simpan key tersebut di file .env kamu:

ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxx

Pastikan Laravel project kamu minimal versi 9 (untuk fitur HTTP Client yang lengkap). Verifikasi dengan command:

php artisan --version

HTTP Client sudah built-in di Laravel, jadi kamu tidak perlu install package tambahan. Sekarang kita buat service class untuk handle komunikasi dengan Claude API.

2. Membuat Claude Service Class

Buat file baru di app/Services/ClaudeService.php:

<?php

namespace App\Services;

use Illuminate\Support\Facades\Http;

class ClaudeService
{
    private string $apiKey;
    private string $baseUrl = 'https://api.anthropic.com/v1/messages';
    private string $model = 'claude-3-5-sonnet-20241022';

    public function __construct()
    {
        $this->apiKey = config('services.anthropic.api_key');
    }

    public function chat(string $message): string
    {
        $response = Http::withHeaders([
            'x-api-key' => $this->apiKey,
            'anthropic-version' => '2023-06-01',
            'content-type' => 'application/json',
        ])->post($this->baseUrl, [
            'model' => $this->model,
            'max_tokens' => 1024,
            'messages' => [
                [
                    'role' => 'user',
                    'content' => $message,
                ]
            ],
        ]);

        if ($response->failed()) {
            throw new \Exception('Claude API error: ' . $response->body());
        }

        return $response->json('content.0.text');
    }
}

Kita juga perlu update config/services.php untuk store API key dengan aman:

'anthropic' => [
    'api_key' => env('ANTHROPIC_API_KEY'),
],

3. Membuat Controller untuk Handle Request

Buat controller sederhana yang memanfaatkan service kita:

<?php

namespace App\Http\Controllers;

use App\Services\ClaudeService;
use Illuminate\Http\Request;

class ChatController extends Controller
{
    public function __construct(private ClaudeService $claudeService) {}

    public function ask(Request $request)
    {
        $validated = $request->validate([
            'question' => 'required|string|max:1000',
        ]);

        try {
            $response = $this->claudeService->chat($validated['question']);
            
            return response()->json([
                'success' => true,
                'answer' => $response,
            ]);
        } catch (\Exception $e) {
            return response()->json([
                'success' => false,
                'error' => $e->getMessage(),
            ], 500);
        }
    }
}

4. Setup Route dan Testing

Tambahkan route di routes/api.php:

Route::post('/chat', [ChatController::class, 'ask']);

Kamu bisa test menggunakan Postman atau curl:

curl -X POST http://localhost:8000/api/chat \n  -H "Content-Type: application/json" \n  -d '{"question": "Apa itu Laravel?"}'

Jika semuanya setup dengan benar, kamu akan menerima response berisi jawaban dari Claude API.

5. Best Practice dan Tips Penting

  • Rate Limiting: Anthropic memiliki rate limit untuk free tier. Implementasikan caching atau queue untuk mengurangi request berlebihan.
  • Error Handling: Selalu tangkap exception dan berikan feedback yang jelas ke user, jangan leak error message produksi.
  • Model Selection: Dokumentasi Anthropic menunjukkan berbagai model dengan trade-off kecepatan vs akurasi. Pilih sesuai use case kamu.
  • Timeout Setting: Set timeout yang sesuai untuk request HTTP karena Claude API bisa memakan waktu beberapa detik: Http::timeout(30)
  • Cost Monitoring: Monitor usage kamu di console Anthropic untuk menghindari bill yang mengejutkan.

6. Contoh Use Case: Content Generator

Contoh nyata menggunakan Claude untuk generate artikel blog:

public function generateArticle(Request $request)
{
    $topic = $request->input('topic');
    
    $prompt = "Generate a professional blog article about: {$topic}. 
    Format with markdown. Include introduction, 3 main sections, and conclusion.";
    
    $content = $this->claudeService->chat($prompt);
    
    return response()->json([
        'content' => $content,
        'topic' => $topic,
    ]);
}

Feature seperti ini sangat berguna untuk MVP atau prototyping cepat sebelum kamu menambah fitur lebih kompleks.

Kesimpulan

Integrasi Claude API ke Laravel terbukang sangat mudah — cuma butuh HTTP Client, API key, dan struktur service yang baik. Dari sini, kamu bisa expand ke fitur lebih advanced seperti streaming response, conversation history, atau embedding untuk semantic search.

Jangan lupa selalu check dokumentasi Anthropic terbaru untuk update model atau API changes. Selamat eksperimen, dan semoga artikel ini membantu kamu memulai perjalanan AI-powered app di Laravel!

Tags:

#Laravel #Claude API #Tutorial #API Integration #HTTP Client

Share this article: