Kembali ke semua artikel
Panduan

Menggunakan OpenAI SDK untuk Memanggil Gemini API: Tutorial Integrasi dengan Hanya Mengubah base_url, key, dan Nama Model

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

Ilustrasi integrasi developer di atas latar krem: di kiri ada jendela kode abu-abu arang, tiga baris konfigurasi base_url, api_key, dan model disorot warna terakota; di kanan ada node cloud Gemini API; keduanya dihubungkan panah garis tipis, di bawah ada kartu harga kecil dan kotak ikon SDK, tanpa logo, tanpa

Google sudah menyatakannya dengan sangat jelas: Gemini API mendukung OpenAI compatibility, sehingga bisa dipanggil dengan OpenAI Python SDK, JavaScript SDK, dan REST; dalam contoh resmi, base_url-nya adalah https://generativelanguage.googleapis.com/v1beta/openai/, dan nama modelnya adalah gemini-3.5-flashGoogle AI for Developers)。
Ini sangat praktis untuk tim yang sudah memiliki kode berbasis OpenAI SDK. Kamu tidak perlu menulis ulang satu set client, tidak perlu mengubah struktur message; cukup ganti tiga konfigurasi terlebih dahulu, jalankan sampai berhasil, lalu putuskan apakah perlu memakai kemampuan native Gemini.

Diagram alur migrasi tiga langkah dengan latar krem muda; di kiri ada kartu konfigurasi lama OpenAI SDK, di tengah panah warna terakota bertuliskan “ubah 3 baris”, di kanan kartu konfigurasi baru Gemini API; tiga barisnya adalah base_url, api_key, model, menggunakan garis tipis abu arang dan sorotan terakota

Lihat dulu tiga bagian yang perlu diubah

Dokumentasi Google menuliskannya dengan jelas setelah contoh: perubahannya hanya tiga item, yaitu api_key, base_url, dan model. OpenAI Python SDK sendiri juga mendukung konfigurasi base_url atau OPENAI_BASE_URLopenai-python),sementara field yang sesuai di Node SDK adalah baseURLopenai-node)。

Contoh Python paling minimal:

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": "你是一个简洁的技术助手。"},
        {"role": "user", "content": "用一句话解释什么是向量数据库。"},
    ],
)

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

Jika kode lama kamu sudah memakai client.chat.completions.create(), kemungkinan besar kamu hanya perlu mengekstrak bagian inisialisasi client menjadi item konfigurasi. Jangan hard-code nama model di dalam fungsi bisnis, karena nanti akan lebih merepotkan saat beralih ke Batch, Flex, atau mengganti model.

Node.js juga memakai pola yang sama

Versi JavaScript hanya mengganti nama field dari base_url menjadi baseURL:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.GEMINI_API_KEY,
  baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});

const resp = await client.chat.completions.create({
  model: "gemini-3.5-flash",
  messages: [{ role: "user", content: "给我一个 Redis 限流方案。" }],
});

console.log(resp.choices[0].message.content);

REST juga bisa dipanggil langsung: POST https://generativelanguage.googleapis.com/v1beta/openai/chat/completions, dengan header request Authorization: Bearer $GEMINI_API_KEY. Ini cocok untuk terlebih dahulu menyingkirkan masalah SDK, proxy, atau environment variable menggunakan curl.

Diagram arsitektur ringkas; di kiri tiga jenis entry Python SDK, Node SDK, dan REST ditampilkan sebagai kartu kecil, lalu mengalir ke satu OpenAI-compatible endpoint yang sama, kemudian terhubung ke Gemini 3.5 Flash; latar krem muda, panah terakota, label abu arang, tanpa merek

Jangan menebak harga dengan perasaan, hitung berdasarkan output

Per 2026-06-14, halaman pricing resmi Gemini mencantumkan harga standar gemini-3.5-flash sebesar input $1.50 / 1M tokens dan output $9.00 / 1M tokens, sedangkan Batch dan Flex sama-sama input $0.75 / 1M tokens dan output $4.50 / 1M tokensGemini API pricing)。Pihak resmi juga menuliskan bahwa harga output mencakup thinking tokens, jadi untuk tugas reasoning jangan hanya melihat harga input.

Mode Input / 1M tokens Output / 1M tokens Skenario yang cocok
Standard $1.50 $9.00 Request online, latensi rendah
Batch $0.75 $4.50 Pemrosesan batch offline
Flex $0.75 $4.50 Bisa menerima penjadwalan elastis

Saran saya sederhana: chat, Agent, dan plugin editor sebaiknya mulai dengan Standard; ringkasan log, pembersihan data, dan evaluasi offline sebisa mungkin gunakan Batch/Flex. Untuk tugas dengan output panjang, selisih biaya akan semakin membesar.

Jebakan yang paling mudah ditemui saat migrasi

Pertama, jangan sampai melewatkan /openai/ di akhir base_url. Banyak kasus 404 atau model tidak ditemukan pada dasarnya terjadi karena request masuk ke path native Gemini, bukan path kompatibel.
Kedua, bedakan environment variable dengan jelas. OPENAI_API_KEY bisa tetap digunakan untuk OpenAI, sementara untuk Gemini sebaiknya pakai GEMINI_API_KEY secara terpisah; jangan biarkan dua provider di CI berebut variable yang sama.
Ketiga, jalankan models.list() terlebih dahulu. Dokumentasi Google menyediakan contoh untuk melihat daftar model dan mengambil model; sebelum production, gunakan itu untuk memastikan region akun, permission, dan model ID semuanya tidak bermasalah.
Keempat, kemampuan seperti streaming, function calling, dan input gambar memang memiliki contoh di compatibility layer, tetapi jangan berasumsi semua parameter OpenAI didukung satu banding satu. Gunakan satu request bisnis nyata untuk regresi terlebih dahulu.

Jika kamu ingin mengurangi pengelolaan key

Jika tim memakai Claude, GPT, dan Gemini sekaligus, mengajukan akses satu per satu, menautkan kartu, dan mengatur kuota akan sangat merepotkan. Jalur yang lebih praktis adalah memakai onehop: ubah base_url OpenAI SDK menjadi https://api.onehop.ai/v1, gunakan key dari onehop, lalu kamu bisa memanggil Claude, GPT, dan Gemini melalui antarmuka kompatibel OpenAI/Anthropic. Posisinya adalah membantu kamu mengurangi kerepotan integrasi; harganya lebih rendah daripada resmi, akun baru mendapat $10, tanpa perlu menautkan 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="gemini-3.5-flash",
    messages=[{"role": "user", "content": "把这段报错日志总结成三条原因。"}],
)

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

Jika ingin mencoba Claude atau routing multi-model, kamu bisa langsung lihat: Memanggil Claude dan model lain di onehop. Jika ingin menjalankan contoh kecil terlebih dahulu dan tidak ingin menautkan kartu, gunakan pintu masuk ini: Daftar dan langsung dapat kredit percobaan $10.

Kesimpulan: jadikan konfigurasi dulu, jangan hard-code vendor

Nilai terbesar dari OpenAI compatibility milik Gemini kali ini bukanlah “bertambah satu model lagi”, melainkan biaya migrasinya yang cukup rendah. Masukkan base_url, api_key, dan model ke konfigurasi, sementara kode bisnis tetap memakai chat completions dari OpenAI SDK.
Setelah berhasil berjalan, tambahkan tiga hal: catat token input/output, pilih Standard atau Batch/Flex berdasarkan tugas, dan jadikan model ID sebagai switch rollout bertahap. Dengan begitu, hari ini kamu menghubungkan Gemini, besok menghubungkan Claude atau layanan kompatibel lain, tanpa perlu lagi mengubah kode bisnis inti.