Lanskap API: Prinsip yang Berlaku di Mana Saja
Sesi 3.4 · ~5 menit baca
Claude, Gemini, GPT, DeepSeek, Mistral. Nama-namanya berubah. Model baru diluncurkan tiap beberapa bulan. Kalau kamu belajar keunikan satu API dan bangun semuanya di sekitar implementasi spesifik itu, kamu rapuh. Kalau kamu belajar arsitektur bersama yang semua API pakai, kamu portabel.
Setiap LLM API besar mengikuti pola dasar yang sama. Pelajari sekali, dan pindah provider jadi perubahan konfigurasi, bukan proyek membangun ulang.
Arsitektur Universal
Setiap LLM API terdiri dari empat komponen: autentikasi, endpoint, parameter, dan respons terstruktur. Detailnya berbeda antar provider, tapi konsepnya identik.
(API Key)"] --> B["Endpoint
(URL)"] B --> C["Parameter
(model, temperature,
max token, messages)"] C --> D["Respons Terstruktur
(JSON dengan konten,
usage, metadata)"] style A fill:#2a2a28,stroke:#c8a882,color:#ede9e3 style B fill:#2a2a28,stroke:#6b8f71,color:#ede9e3 style C fill:#2a2a28,stroke:#8a8478,color:#ede9e3 style D fill:#2a2a28,stroke:#c47a5a,color:#ede9e3
Komponen 1: Autentikasi
Setiap API butuh bukti bahwa kamu boleh memakainya. Bukti ini adalah API key, string karakter panjang yang berfungsi sebagai identitas sekaligus password kamu. Kamu sertakan di setiap request, biasanya di HTTP header. Provider memakainya untuk mengidentifikasi akun kamu, melacak usage, dan menagih kamu.
Semua provider besar pakai pola yang sama: kamu bikin akun, generate API key di dashboard, dan simpan dengan aman di environment kamu (jangan pernah di kode). Key-nya masuk di Authorization header setiap request.
Komponen 2: Endpoint
Endpoint adalah URL tempat kamu kirim request. Setiap provider punya satu endpoint utama untuk text generation. URL-nya beda, tapi apa yang kamu kirim dan apa yang kamu terima mengikuti struktur yang sama.
| Provider | Endpoint Text Generation | Format Auth Header |
|---|---|---|
| Anthropic (Claude) | api.anthropic.com/v1/messages | x-api-key: YOUR_KEY |
| OpenAI (GPT) | api.openai.com/v1/chat/completions | Authorization: Bearer YOUR_KEY |
| Google (Gemini) | generativelanguage.googleapis.com/v1beta/models/... | API key di URL parameter atau OAuth |
| DeepSeek | api.deepseek.com/v1/chat/completions | Authorization: Bearer YOUR_KEY |
| Mistral | api.mistral.ai/v1/chat/completions | Authorization: Bearer YOUR_KEY |
Perhatikan polanya. Kebanyakan provider mengadopsi format endpoint OpenAI (/v1/chat/completions) karena sudah jadi standar de facto. Anthropic memilih jalan berbeda (/v1/messages), tapi konsepnya identik: kirim POST request ke URL ini dengan prompt dan parameter kamu.
Komponen 3: Parameter
Setiap request text generation menyertakan parameter inti yang sama, walau nama field-nya sedikit bervariasi antar provider.
| Konsep | Apa yang Dikontrol | Range Umum |
|---|---|---|
| Model | Model mana yang memproses request kamu | String spesifik provider (misal "claude-sonnet-4-20250514") |
| System prompt | Instruksi persisten untuk model | Teks bebas, panjang berapa pun dalam context window |
| Messages | Percakapan: pesan user dan respons assistant | Array pasangan role/content |
| Temperature | Keacakan output (rendah = bisa diprediksi, tinggi = kreatif) | 0.0 sampai 1.0 (beberapa sampai 2.0) |
| Max tokens | Panjang maksimum respons | 1 sampai batas output model |
| Top-p | Threshold nucleus sampling | 0.0 sampai 1.0 |
Parameter-nya sama di mana-mana. Pilihan model, system prompt, messages, temperature, max tokens. Pelajari apa fungsi masing-masing sekali, dan kamu paham API setiap provider.
Komponen 4: Respons Terstruktur
Setiap provider mengembalikan objek JSON berisi teks yang di-generate, statistik usage (input token, output token), dan metadata (versi model, alasan berhenti). Nama field-nya beda, tapi informasinya sama.
Respons selalu kasih tahu kamu: apa yang model generate, berapa token yang dikonsumsi (untuk billing), kenapa berhenti generate (kena batas token, selesai natural, atau difilter), dan versi model mana yang memproses request.
Prinsip Portabilitas
Karena semua provider berbagi arsitektur ini, kamu bisa mengabstraksi kode kamu jadi provider-agnostic. Tulis fungsi bernama generate_text() yang menerima system prompt, user prompt, dan parameter. Di dalam fungsi itu, API call pergi ke provider mana pun yang kamu pilih. Ganti provider, ganti satu fungsi. Sisa pipeline kamu ga peduli model mana yang generate teksnya.
Portabilitas ini bukan cuma kemudahan teoritis. Harga model berubah. Model baru mengalahkan yang lama. Provider mengalami outage. Kalau pipeline kamu bisa ganti provider dengan mengubah variabel konfigurasi, kamu resilient. Kalau pipeline kamu hardcode ke satu provider, kamu dependent.
Bacaan Lanjutan
- Messages API Reference (Anthropic Documentation)
- Chat Completions API Reference (OpenAI Documentation)
- Gemini API Documentation (Google AI for Developers)
- Demystifying the Anatomy of a REST API Request (TechAlmirah)
Tugas
- Kunjungi halaman dokumentasi setidaknya dua dari API ini: Claude API, Gemini API, dan OpenAI API.
- Untuk masing-masing, cari dan dokumentasikan: (1) Metode autentikasi, (2) URL endpoint utama text generation, (3) Parameter yang tersedia dan namanya, (4) Format respons dan field utama.
- Buat tabel perbandingan yang menunjukkan kesamaan dan perbedaannya. Perhatikan betapa banyak yang shared antar provider. Elemen shared itulah konsep yang perlu kamu pelajari. Perbedaannya cuma sintaks.