Kembali ke semua artikel
Panduan

Tutorial Migrasi Memanggil Gemini API dengan OpenAI SDK: Cukup Ubah base_url, API Key, dan Nama Model

14 Juni 2026 · 9 menit baca · Claude / GPT / Gemini

Ilustrasi migrasi developer di atas latar krem: di kiri jendela kode OpenAI SDK, di kanan kartu endpoint Gemini API, di tengah tiga garis terakota berlabel base_url, API Key, model, dengan ikon kecil abu arang untuk Python dan TypeScript

Per 2026-06-14, dokumentasi Gemini OpenAI compatibility dari Google menuliskannya dengan sangat langsung: jika Anda sudah punya kode library OpenAI Python atau TypeScript, Anda bisa mengakses Gemini dengan mengganti API Key, base_url, dan nama model; model contoh di dokumentasi adalah gemini-3.5-flash, dan halaman kompatibilitas terakhir diperbarui pada 2026-05-18 (Google AI for Developers). Ini bukan “keajaiban lapisan adaptasi”, melainkan hanya mengirim request OpenAI SDK ke endpoint kompatibel yang disediakan Google.

Diagram alur migrasi tiga langkah dengan latar krem muda, tiga kartu langkah berwarna terakota dari kiri ke kanan: ganti GEMINI_API_KEY, ganti base_url, ganti model; bagian bawah menghubungkan tiga pintu masuk Python, TypeScript, REST dengan garis tipis abu arang

Instal SDK dulu, jangan ganti paradigma pemanggilan

Jika proyek Anda sudah memakai OpenAI Python SDK resmi, cukup pertahankan chat.completions.create(). Repositori OpenAI Python SDK tetap menjadi sumber klien resmi (openai-python), dan antarmuka kompatibel Google juga menerima bentuk pemanggilan yang sama.

from openai import OpenAI

client = OpenAI(
    api_key="GEMINI_API_KEY",
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[
        {"role": "system", "content": "You are a concise code reviewer."},
        {"role": "user", "content": "Review this Python function for edge cases."},
    ],
)

print(resp.choices[0].message.content)

API Key dibuat dari Google AI Studio (AI Studio API key). Perhatikan garis miring di akhir: /v1beta/openai/, bukan antarmuka native Gemini biasa seperti /v1beta/models/....

REST juga bisa dipanggil dengan bentuk OpenAI

Untuk server-side, debugging curl, atau health check gateway, Anda tidak selalu membutuhkan SDK. Path REST yang diberikan dokumentasi kompatibilitas Google adalah /openai/chat/completions:

curl "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $GEMINI_API_KEY" \
  -d '{
    "model": "gemini-3.5-flash",
    "messages": [
      {"role": "user", "content": "Give me a 5-point migration checklist."}
    ]
  }'

Jalankan perintah ini lebih dulu saat migrasi. Ini bisa memisahkan empat jenis masalah: Key, nama model, jalur keluar jaringan, dan izin billing, sehingga lebih hemat waktu dibanding langsung debug di layanan bisnis.

Bagaimana reasoning_effort dipetakan

Kontrol thinking Gemini dan reasoning_effort OpenAI memiliki area yang tumpang tindih, dan Google secara jelas mengatakan keduanya jangan dikirim bersamaan. Lapisan kompatibilitas akan memetakan parameter bergaya OpenAI ke parameter thinking Gemini (Google OpenAI compatibility).

OpenAI reasoning_effort Gemini 3 thinking_level Gemini 2.5 thinking_budget
minimal minimal atau low 1024
low low 1024
medium medium 8192
high high 24576

Untuk migrasi yang konservatif, jangan kirim reasoning_effort terlebih dahulu dan biarkan model memakai nilai default. Jika ingin mengontrol biaya, tambahkan low untuk tugas dengan konteks panjang, lalu amati kualitas output dan tagihan token.

Ilustrasi visual tabel pemetaan parameter horizontal, kolom kiri abu arang berisi empat level OpenAI reasoning_effort, kolom kanan terakota berisi Gemini thinking_level dan thinking_budget, masing-masing dihubungkan dengan garis tipis di tengah

Jangan hanya melihat nama model saat menghitung harga

Halaman harga resmi Google mencantumkan harga standar Gemini 2.5 Pro dan Flash dengan jelas, dalam satuan per 1 juta token, dan harga output mencakup thinking tokens (Gemini API pricing).

Model Harga input Harga output
gemini-2.5-pro, prompt ≤ 200k $1.25 $10.00
gemini-2.5-pro, prompt > 200k $2.50 $15.00
gemini-2.5-flash, input teks/gambar/video $0.30 $2.50
gemini-2.5-flash, input audio $1.00 $2.50

Saran saya: untuk chat, klasifikasi, dan tugas kode ringan, mulai dengan Flash; untuk reasoning kompleks, sintesis dokumen panjang, dan refactoring kode, baru beralih ke Pro. Ambang prompt 200k pada Pro akan langsung memengaruhi harga input dan output, jadi jangan menjejalkan log, cuplikan retrieval, dan system prompt berulang begitu saja.

Checklist migrasi

  1. Ganti OPENAI_API_KEY menjadi GEMINI_API_KEY, dibuat dari AI Studio.
  2. Ubah base_url menjadi https://generativelanguage.googleapis.com/v1beta/openai/.
  3. Ubah nama model menjadi model Gemini yang kompatibel, misalnya gemini-3.5-flash.
  4. Uji koneksi dengan REST curl terlebih dahulu, lalu sambungkan kembali ke SDK.
  5. Hentikan sementara kustomisasi reasoning_effort, tambahkan lagi setelah kualitas terkonfirmasi.
  6. Catat biaya token input, output, dan thinking, terutama ambang 200k pada Pro.

Jika Anda juga perlu menghubungkan Claude/GPT

Jika hanya menghubungkan Gemini, memakai endpoint kompatibel resmi Google adalah jalur paling bersih. Namun begitu proyek juga harus memakai Claude, GPT, dan Gemini sekaligus, banyak Key, banyak billing, dan banyak SDK akan merepotkan. Jalur yang lebih praktis adalah onehop: kompatibel dengan OpenAI/Anthropic, cukup ubah base_url menjadi https://api.onehop.ai/v1, lalu Anda bisa memakai OpenAI SDK yang sama untuk memanggil Claude/GPT/Gemini; fokusnya adalah harga lebih rendah daripada resmi, akun baru mendapat $10, dan tidak perlu mengikat kartu.

from openai import OpenAI

client = OpenAI(
    api_key="ONEHOP_API_KEY",
    base_url="https://api.onehop.ai/v1",
)

resp = client.chat.completions.create(
    model="anthropic/claude-sonnet-4.5",
    messages=[{"role": "user", "content": "Refactor this API handler."}],
)
print(resp.choices[0].message.content)

Jika sekarang Anda hanya ingin membuat akses multi-model berjalan, Anda bisa langsung mencoba: memanggil Claude dan model lain di onehop, atau ambil kuota terlebih dahulu: daftar dan langsung mendapat kredit uji coba $10. Kunci migrasi bukan mengganti banyak lapisan abstraksi, melainkan menyusutkan variabel menjadi tiga hal: endpoint, key, model.