Catatan Penulis: Apakah Anda mendapatkan error Base64 decoding failed 400 saat memanggil gemini-3-pro-image-preview? Artikel ini akan membedah 6 penyebab umum berdasarkan pesan error aslinya, serta memberikan contoh kode yang benar dalam Python/JavaScript/curl dan panduan pemecahan masalah 5 langkah.
Apakah Anda menemui error 400 ini saat memanggil antarmuka gemini-3-pro-image-preview?
{
"status_code": 400,
"error": {
"message": "Invalid value at 'contents[0].parts[0].inline_data.data' (TYPE_BYTES), Base64 decoding failed for \"/9j/4AAQSkZJ...\" (request id: 2026050117522815159336234238114)",
"type": "shell_api_error",
"code": 400
}
}
Ini bukan masalah pada layanan API, melainkan data Base64 di kolom inline_data.data dalam request body tidak dapat didekode dengan benar oleh backend Gemini. /9j/4AAQSkZJ dalam pesan error adalah header Base64 standar untuk file JPEG (sesuai dengan biner FF D8 FF E0), yang berarti bagian awal data Anda sudah valid, namun ada masalah di bagian lain dari string tersebut yang menyebabkan kegagalan dekode.
Nilai Inti: Artikel ini akan membedah 6 penyebab umum dari error ini, menyediakan contoh kode yang benar untuk Python, JavaScript, dan curl, serta memberikan panduan 5 langkah untuk diagnosis cepat. Jika Anda menggunakan APIYI (apiyi.com) untuk memanggil gemini-3-pro-image-preview, semua solusi dalam artikel ini juga berlaku.

I. Analisis Mendalam Error Base64 decoding failed
Sebelum mulai melakukan perbaikan, pahami arti setiap kolom dalam pesan error ini agar Anda tidak membuang waktu.
1.1 Penjelasan per Kolom Pesan Error
| Kolom | Arti | Arah Perbaikan |
|---|---|---|
status_code: 400 |
Error klien HTTP 400 | Masalah format request body, bukan kegagalan server |
contents[0].parts[0] |
Error terletak pada bagian pertama dari konten ke-1 | Periksa bagian gambar pertama |
inline_data.data |
Kolom data dari inline data | Kolom ini harus berupa string Base64 murni |
(TYPE_BYTES) |
Tipe kolom adalah byte array | Backend Gemini mengharapkan hasil dekode berupa bytes |
Base64 decoding failed for "/9j/..." |
Dekode gagal, awal yang terbaca adalah /9j/ |
Byte awal valid, masalah ada di tengah atau akhir |
request id: 2026050... |
ID unik permintaan | Berikan ID ini saat menghubungi dukungan teknis |
1.2 Mengapa diawali /9j/4AAQSkZJ tapi tetap gagal?
/9j/4AAQSkZJ adalah awal standar untuk pengodean Base64 file JPEG (sesuai dengan biner FF D8 FF E0 00 10 4A 46 49 46, yaitu JPEG SOI + APP0 + penanda "JFIF"). Ini berarti:
- ✅ Data Anda memang benar gambar JPEG
- ✅ Byte awal sepenuhnya valid
- ❌ Namun, string lengkap mengandung karakter ilegal atau masalah struktur di suatu tempat
Karakteristik ini menepis kemungkinan bahwa "data benar-benar salah". Masalah kemungkinan besar ada di bagian tengah data, padding akhir, atau proses transmisi/escape string.
1.3 Skenario yang memicu error ini
gemini-3-pro-image-preview adalah model pembuatan dan pengeditan gambar terbaru dari Google. Anda perlu memasukkan inline_data dalam skenario berikut:
- Gambar ke gambar (Image-to-Image): Membuat gambar baru berdasarkan gambar referensi
- Pengeditan gambar: Melakukan modifikasi lokal pada gambar asli
- Penggabungan multi-gambar: Memasukkan beberapa gambar referensi untuk digabungkan
- Transfer gaya: Menggunakan gambar referensi sebagai templat gaya
Setiap skenario yang memerlukan input data gambar dapat memicu error Base64 decoding failed.
💡 Saran diagnosis cepat: Jika Anda menggunakan layanan proksi API APIYI (apiyi.com) untuk
gemini-3-pro-image-preview, Anda dapat melihat log permintaan lengkap dan request_id di konsol. Membandingkan panjang dan konteninline_data.datayang dikirim secara aktual jauh lebih efisien daripada melakukan pengecekan melalui API resmi secara langsung.
二、6 Penyebab Umum Kesalahan Base64 decoding failed
Diurutkan berdasarkan frekuensi kemunculannya, kami sarankan Anda melakukan pengecekan sesuai urutan berikut.
2.1 Penyebab 1: Menyertakan awalan data URI (Paling umum, sekitar 40% kasus)
Ini adalah kesalahan yang paling sering terjadi. Pengembang sering kali menyalin string base64 langsung dari HTML/frontend:
❌ Penulisan yang salah:
{
"inline_data": {
"mime_type": "image/jpeg",
"data": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAA..."
}
}
✅ Penulisan yang benar:
{
"inline_data": {
"mime_type": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQAA..."
}
}
Awalan data:image/jpeg;base64, hanya digunakan dalam tag <img> browser atau background CSS. Field inline_data.data pada Gemini API hanya menerima string Base64 murni.
2.2 Penyebab 2: String mengandung karakter baris baru atau spasi (sekitar 25% kasus)
Banyak fungsi pengodean Base64 secara otomatis menambahkan baris baru setiap 76 karakter (format PEM), atau Anda mungkin tidak sengaja menyertakan karakter \n atau \r saat membaca file.
❌ Contoh masalah (Python):
import base64
# Salah: Menggunakan encodebytes() akan menyisipkan baris baru
with open("photo.jpg", "rb") as f:
data = base64.encodebytes(f.read()).decode() # Mengandung \n
✅ Penulisan yang benar:
import base64
# Benar: Menggunakan b64encode() tidak akan menyisipkan baris baru
with open("photo.jpg", "rb") as f:
data = base64.b64encode(f.read()).decode("utf-8")
2.3 Penyebab 3: Pengodean URL menyebabkan penggantian karakter (sekitar 15% kasus)
Karakter Base64 menyertakan + dan /, yang dalam transmisi URL dapat diubah menjadi %2B dan %2F. Beberapa klien HTTP secara otomatis melakukan pengodean URL, yang menyebabkan backend Gemini gagal melakukan dekode.
❌ Gejala kesalahan:
Asli: /9j/4AAQSkZJRg+abc=
Setelah transmisi: %2F9j%2F4AAQSkZJRg%2Babc%3D
✅ Solusi:
- Pastikan Content-Type adalah
application/json, bukanapplication/x-www-form-urlencoded - Kirim Base64 di dalam body JSON, bukan sebagai parameter query URL
- Gunakan parameter
json=pada klien HTTP (seperti Python requests), alih-alih menggabungkan string secara manual
2.4 Penyebab 4: String Base64 terpotong (sekitar 10% kasus)
Jika gambar Anda berukuran besar (beberapa MB), data mungkin terpotong selama transmisi karena alasan berikut:
- Koneksi internet terputus dan mencoba kirim ulang
- Batasan panjang string pada klien HTTP
- Terpotong oleh batasan panjang field saat serialisasi JSON
- Batasan ukuran body pada proksi perantara
Cara pengecekan: Hitung panjang string Base64 asli, lalu bandingkan dengan panjang body permintaan yang sebenarnya dikirim. Setelah dikodekan ke Base64, panjangnya sekitar 4/3 kali ukuran file asli. JPEG berukuran 2MB akan menjadi sekitar 2,67MB setelah dikodekan.
2.5 Penyebab 5: Pengodean URL-safe Base64 (sekitar 5% kasus)
base64.urlsafe_b64encode() pada Python atau Buffer.from(buf).toString('base64url') pada Node.js akan menghasilkan URL-safe Base64 yang menggunakan - dan _ sebagai pengganti + dan /.
❌ Salah:
data = base64.urlsafe_b64encode(image_bytes).decode() # Mengandung - dan _
✅ Benar:
data = base64.b64encode(image_bytes).decode("utf-8") # Mengandung + dan /
Gemini API hanya menerima Base64 standar (RFC 4648 §4), bukan URL-safe Base64 (RFC 4648 §5).
2.6 Penyebab 6: Padding yang hilang atau berlebih (sekitar 5% kasus)
Panjang string Base64 harus merupakan kelipatan 4, dengan pengisi = di bagian akhir. "Mode ketat" pada beberapa pustaka akan menghapus = di akhir, yang menyebabkan backend Gemini gagal melakukan dekode.
❌ Salah:
/9j/4AAQSkZJRgABAQAAAQABAAD ← Panjang 27, bukan kelipatan 4
✅ Benar:
/9j/4AAQSkZJRgABAQAAAQABAAD= ← Ditambah = di akhir, panjang 28
Jika Anda menggunakan fungsi standar base64.b64encode(), padding akan ditangani secara otomatis dengan benar, tidak perlu ditambahkan secara manual.
Tiga, 5 Langkah Cepat Memeriksa Kesalahan Base64 decoding failed

Periksa poin-poin berikut secara berurutan, sebagian besar kesalahan Base64 decoding failed dapat ditemukan dalam 3 langkah pertama.
3.1 Langkah 1: Periksa awalan data URI
Tindakan pemeriksaan:
# Contoh Python
if data.startswith("data:"):
print("⚠️ Mengandung awalan data URI, perlu dihapus")
data = data.split(",", 1)[1] # Hapus data:image/...;base64,
Kondisi lolos: Field data dimulai dengan header format gambar seperti /9j/ (JPEG), iVBORw0KGgo (PNG), R0lGOD (GIF), UklGR (WebP), dll., dan tidak mengandung awalan data:.
3.2 Langkah 2: Bersihkan baris baru dan spasi
Tindakan pemeriksaan:
# Hapus semua karakter spasi
import re
data = re.sub(r"\s+", "", data)
Kondisi lolos: String tidak mengandung \n, \r, \t, atau spasi.
3.3 Langkah 3: Verifikasi legalitas Base64
Lakukan dekode lokal sekali sebelum mengirim permintaan. Jika dekode lokal saja gagal, pasti ada masalah:
import base64
try:
decoded = base64.b64decode(data, validate=True)
print(f"✅ Dekode berhasil, jumlah byte asli: {len(decoded)}")
except Exception as e:
print(f"❌ Dekode gagal: {e}")
Jika dekode lokal berhasil tetapi API masih memberikan error, lanjutkan ke langkah keempat.
3.4 Langkah 4: Verifikasi kebenaran mime_type
mime_type harus sesuai dengan format gambar yang sebenarnya. Nilai legal yang umum:
| Format Asli | mime_type yang Benar | Karakteristik Header Base64 |
|---|---|---|
| JPEG | image/jpeg |
/9j/4AAQSkZJ |
| PNG | image/png |
iVBORw0KGgo |
| WebP | image/webp |
UklGR |
| GIF | image/gif |
R0lGOD |
| HEIC | image/heic |
AAAAFGZ0eXBoZWlj |
Jika Anda menyatakan mime_type: image/png tetapi datanya adalah JPEG (dimulai dengan /9j/), Gemini juga akan memberikan error.
3.5 Langkah 5: Periksa batasan ukuran gambar
Gemini API memiliki batasan pada total ukuran satu permintaan:
- Total inline_data ≤ 20MB (sebelum pengodean)
- Satu gambar disarankan ≤ 7MB (sebelum pengodean)
- Gambar yang sangat besar harus menggunakan File API untuk diunggah terlebih dahulu, lalu direferensikan
Jika gambar terlalu besar, disarankan untuk mengompres atau mengubah ukurannya terlebih dahulu sebelum dikirim.
🎯 Tips Diagnostik: Jika Anda melakukan pemanggilan gemini-3-pro-image-preview melalui APIYI apiyi.com, Anda dapat menggunakan
request_iddi konsol untuk memeriksa kembali body permintaan lengkap dan log respons. Ini jauh lebih mudah untuk menemukan masalah dibandingkan koneksi langsung ke API resmi. Log layanan proksi API akan menampilkan ukuran sebenarnya dari body permintaan dan di mana posisi data tersebut terpotong.
Empat, Contoh Pemanggilan yang Benar untuk gemini-3-pro-image-preview dalam Berbagai Bahasa
Berikut adalah contoh paling sederhana dan terverifikasi yang bisa langsung Anda gunakan.
4.1 Contoh Lengkap Python (Direkomendasikan menggunakan library requests)
import base64
import requests
# 1. Membaca dan mengodekan gambar
def encode_image(image_path):
with open(image_path, "rb") as f:
return base64.b64encode(f.read()).decode("utf-8")
# 2. Menyusun permintaan
api_key = "sk-your-apiyi-key" # Ganti dengan kunci API Anda
base_url = "https://vip.apiyi.com/gemini" # Alamat layanan proksi API APIYI
model = "gemini-3-pro-image-preview"
image_b64 = encode_image("input.jpg")
payload = {
"contents": [{
"parts": [
{
"inline_data": {
"mime_type": "image/jpeg", # Harus sesuai dengan format asli
"data": image_b64 # Base64 murni, tanpa awalan
}
},
{
"text": "Ubah gambar ini menjadi gaya lukisan malam berbintang Van Gogh"
}
]
}]
}
# 3. Mengirim permintaan
response = requests.post(
f"{base_url}/v1beta/models/{model}:generateContent",
headers={
"x-goog-api-key": api_key,
"Content-Type": "application/json" # Kunci: Format JSON
},
json=payload # Kunci: Gunakan json= bukan data=
)
print(response.json())
4.2 Contoh Lengkap JavaScript / Node.js
const fs = require('fs');
const fetch = require('node-fetch');
async function callGemini() {
// 1. Membaca dan mengodekan gambar (Base64 standar, bukan base64url)
const imageBuffer = fs.readFileSync('input.jpg');
const imageB64 = imageBuffer.toString('base64'); // ✅ Jangan gunakan 'base64url'
// 2. Menyusun permintaan
const apiKey = 'sk-your-apiyi-key';
const baseUrl = 'https://vip.apiyi.com/gemini'; // Proksi APIYI
const model = 'gemini-3-pro-image-preview';
const payload = {
contents: [{
parts: [
{
inline_data: {
mime_type: 'image/jpeg',
data: imageB64 // Base64 murni
}
},
{ text: 'Ubah gambar ini menjadi gaya lukisan malam berbintang Van Gogh' }
]
}]
};
// 3. Mengirim permintaan
const response = await fetch(
`${baseUrl}/v1beta/models/${model}:generateContent`,
{
method: 'POST',
headers: {
'x-goog-api-key': apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
}
);
console.log(await response.json());
}
callGemini();
4.3 Contoh Baris Perintah (curl)
# 1. Mengodekan gambar dan simpan ke file (menghindari batasan panjang baris perintah)
base64 -i input.jpg -o input.b64
# Atau di macOS: base64 -w 0 input.jpg > input.b64
# 2. Menyusun payload JSON
cat > payload.json <<EOF
{
"contents": [{
"parts": [
{
"inline_data": {
"mime_type": "image/jpeg",
"data": "$(cat input.b64)"
}
},
{ "text": "Ubah gambar ini menjadi gaya lukisan malam berbintang Van Gogh" }
]
}]
}
EOF
# 3. Mengirim permintaan
curl -X POST \
"https://vip.apiyi.com/gemini/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "x-goog-api-key: sk-your-apiyi-key" \
-H "Content-Type: application/json" \
-d @payload.json
⚠️ Catatan untuk curl: Secara default,
curl -d "$(base64 input.jpg)"di macOS akan menyisipkan karakter baris baru. Pastikan untuk menggunakanbase64 -w 0(Linux) ataubase64 -i ... | tr -d '\n'(macOS) untuk menghapus baris baru tersebut.
Lima, Permintaan Salah vs Benar: Perbandingan Lengkap

| Item Pemeriksaan | Contoh Salah | Contoh Benar |
|---|---|---|
| Awalan bidang data | data:image/jpeg;base64,/9j/... |
/9j/4AAQSkZJ... |
| Penanganan baris baru | Berisi \n setiap 76 karakter |
String kontinu satu baris |
| Kumpulan karakter | Berisi - _ (URL-safe) |
Berisi + / (standar) |
| Padding akhir | Tanpa = atau kelebihan = |
Padding otomatis yang benar |
| mime_type | Tidak sesuai format asli | Harus sesuai ketat dengan format asli |
| Header HTTP | application/x-www-form-urlencoded |
application/json |
| Metode transmisi | Parameter kueri URL | Bidang body JSON |
| Ukuran gambar | > 20MB per gambar | ≤ 7MB per gambar |
VI. Keunggulan menggunakan APIYI untuk memanggil gemini-3-pro-image-preview
Jika Anda masih belum bisa menemukan masalahnya setelah melakukan pengecekan, menggunakan layanan proksi API APIYI (apiyi.com) untuk gemini-3-pro-image-preview menawarkan beberapa kemudahan yang jelas:
| Keunggulan | Penjelasan |
|---|---|
| Log permintaan lengkap | Konsol dapat menampilkan permintaan/respons lengkap yang sesuai dengan request_id |
| Pengecekan kesalahan cepat | Identifikasi penyebab kegagalan secara instan melalui request_id |
| Kompatibilitas format asli | Tidak perlu mengubah kode, cukup ganti base_url saja |
| Tanpa batas konkurensi | Skenario pengeditan gambar massal tidak akan terkena limitasi (rate limit) |
| Promo isi ulang | Isi ulang 100 USD dapat bonus 10% (≈ diskon 15% dari harga resmi) |
| Pembayaran Rupiah | Pembayaran langsung via WeChat/Alipay (atau metode lokal lainnya) |
Menghubungkan APIYI untuk memanggil gemini-3-pro-image-preview hanya memerlukan perubahan pada dua variabel:
# Antarmuka resmi
base_url = "https://generativelanguage.googleapis.com"
# Ubah ke layanan proksi APIYI (kode lainnya tetap sama)
base_url = "https://vip.apiyi.com/gemini"
VII. FAQ Masalah Umum: Base64 decoding failed
Q1: Mengapa base64.b64decode() lokal berhasil, tetapi saat memanggil API malah error?
Penyebab paling mungkin adalah masalah pada proses transmisi. Situasi umum:
- Klien HTTP mengubah
+menjadi%2B(seharusnya menggunakanapplication/jsonbukan form-urlencoded) - String terpotong saat serialisasi JSON (periksa batasan ukuran body)
- Proksi atau gateway perantara memiliki batasan ukuran body (seperti
client_max_body_sizedi nginx)
Jika Anda mencurigai masalah pada jaringan, Anda dapat menggunakan layanan proksi API APIYI (apiyi.com). Log konsol akan menampilkan konten sebenarnya dari body permintaan saat mencapai server proksi, sehingga lebih mudah untuk dilacak.
Q2: Format gambar apa saja yang didukung oleh gemini-3-pro-image-preview?
Mime_type yang didukung meliputi:
image/jpeg(disarankan, ukuran file paling kecil)image/png(untuk skenario dengan saluran transparan)image/webp(keseimbangan antara kualitas dan ukuran)image/gif(hanya mengambil frame pertama)image/heic/image/heif(format foto iPhone)
Format BMP, TIFF, SVG, dll. tidak didukung dan perlu dikonversi terlebih dahulu.
Q3: Berapa banyak gambar yang bisa dikirim dalam satu request?
Satu permintaan gemini-3-pro-image-preview mendukung maksimal:
- Bagian inline_data: 3-5 gambar (tergantung pada total ukuran gambar)
- Total data: ≤ 20MB (jumlah semua inline_data sebelum pengkodean)
- Saran: Jika memerlukan referensi lebih dari 5 gambar, gunakan File API untuk mengunggah terlebih dahulu, lalu referensikan melalui
file_data
Q4: Muncul error Base64 decoding failed, tetapi model lain (seperti gemini-2.5-flash) berjalan normal?
Situasi ini biasanya terjadi karena gemini-3-pro-image-preview memiliki standar yang lebih ketat terhadap format gambar. Validasi input pada model baru lebih ketat:
- Model lama mungkin menoleransi awalan atau baris baru tertentu
- Model baru memvalidasi secara ketat sesuai RFC 4648 §4
- Disarankan untuk menulis ulang sesuai contoh benar yang paling sederhana di bagian 4.1 artikel ini, dan lakukan verifikasi satu per satu.
Q5: Saat menggunakan APIYI (apiyi.com), base_url apa yang harus digunakan?
Base_url standar untuk memanggil gemini-3-pro-image-preview melalui APIYI adalah:
https://vip.apiyi.com/gemini
Path endpoint lengkapnya adalah:
https://vip.apiyi.com/gemini/v1beta/models/gemini-3-pro-image-preview:generateContent
Kunci API dikirim melalui header permintaan x-goog-api-key, persis sama dengan standar resmi Google.
Q6: Apa fungsi dari request_id?
request_id (seperti 2026050117522815159336234238114) adalah identitas unik untuk permintaan tersebut, fungsinya:
- Diberikan saat menghubungi dukungan teknis untuk mempercepat pelacakan masalah
- Referensi saat mereproduksi masalah, tim teknis dapat memeriksa log permintaan lengkap
- Statistik pola kesalahan, jika beberapa request_id menunjukkan kesalahan yang sama, itu menandakan adanya masalah sistemik
Jika Anda menggunakan layanan proksi APIYI (apiyi.com), Anda dapat langsung mencari request_id di konsol untuk melihat detailnya tanpa perlu menghubungi bantuan tambahan.
Q7: Bagaimana cara mengompresi gambar yang terlalu besar?
Disarankan menggunakan Pillow di sisi klien untuk kompresi awal:
from PIL import Image
import io
import base64
def compress_image(path, max_size_kb=2048):
img = Image.open(path)
# Skala sisi terpanjang ke 1568 (rekomendasi Gemini)
img.thumbnail((1568, 1568))
buffer = io.BytesIO()
img.save(buffer, format="JPEG", quality=85, optimize=True)
return base64.b64encode(buffer.getvalue()).decode("utf-8")
Setelah dikompresi, kualitas visual biasanya tetap terjaga sementara ukuran file berkurang drastis, sehingga menghindari pemicuan limit 20MB.
Q8: Apa maksud dari pesan kesalahan (TYPE_BYTES)?
TYPE_BYTES adalah identitas tipe field dari Google Protocol Buffers, yang menunjukkan bahwa field tersebut di backend Gemini diharapkan menerima array byte yang sudah didekode (bytes). Ketika dekode Base64 gagal, sistem tidak bisa mendapatkan bytes, sehingga muncul pesan kesalahan ini. Ini adalah petunjuk validasi protobuf tingkat rendah, bukan masalah konfigurasi.
VIII. Key Takeaways Poin Utama
- ✅ Inti Kesalahan: String Base64 pada field
inline_data.datagagal didekode oleh backend Gemini. - ✅ 6 Penyebab Umum (berdasarkan frekuensi): Prefiks URI data / karakter baris baru / encoding URL / pemotongan data / karakter URL-safe / kesalahan padding.
- ✅ 5 Langkah Troubleshooting: Hapus prefiks → Bersihkan spasi → Verifikasi lokal → Periksa mime_type → Periksa ukuran file.
- ✅ Rekomendasi Python: Gunakan
base64.b64encode()+ parameterjson=pada library requests. - ✅ Rekomendasi JavaScript: Gunakan
Buffer.toString('base64')(bukan 'base64url'). - ✅ Rekomendasi curl: Tulis Base64 ke file terlebih dahulu, lalu referensikan dengan
-d @file.json. - ✅ Keunggulan APIYI: Kompatibilitas format asli, log dapat dilacak melalui request_id di konsol, dan tanpa batas konkurensi.
- ✅ Hubungi Dukungan: Simpan request_id untuk mempercepat pelacakan masalah.
IX. Kesimpulan
Kesalahan Base64 decoding failed pada gemini-3-pro-image-preview 99% disebabkan oleh kesalahan konstruksi permintaan di sisi klien, bukan kegagalan server. Pesan kesalahan yang menampilkan /9j/4AAQSkZJ sudah memberi tahu kita bahwa byte awal adalah JPEG Base64 yang valid. Masalah biasanya terjadi di tengah proses data—entah itu kontaminasi prefiks, karakter baris baru, encoding URL, karakter URL-safe, atau data yang terpotong.
Dengan mengikuti 5 langkah troubleshooting di bab ketiga, sebagian besar masalah dapat diidentifikasi dalam waktu kurang dari 5 menit. Untuk skenario yang lebih kompleks (seperti ukuran file yang tetap besar setelah dikompresi, kombinasi banyak gambar, atau encoding khusus), Anda dapat merujuk pada contoh lengkap dalam tiga bahasa pemrograman di bab keempat yang siap pakai.
Jika Anda sedang mencari solusi akses gemini-3-pro-image-preview yang stabil untuk proyek multimodal, APIYI apiyi.com menyediakan layanan proksi API untuk seri model Gemini yang lengkap. Kompatibilitas format aslinya mencapai 100% (cukup ganti base_url), tanpa batas konkurensi (sangat ramah untuk skenario pengeditan gambar massal), bonus isi ulang 10% untuk setiap 100 USD (setara diskon 15% dari harga resmi), mendukung pembayaran Rupiah (tanpa perlu kartu kredit luar negeri), dan konsol yang memungkinkan pelacakan log lengkap melalui request_id (sangat mengurangi biaya troubleshooting).
🎯 Saran Langkah Selanjutnya: Ikuti 5 langkah troubleshooting di bab ketiga secara berurutan. Jika masalah belum teratasi, catat request_id Anda dan kirimkan ke dukungan teknis APIYI apiyi.com, sertakan body permintaan Anda (pastikan menyembunyikan informasi sensitif). Biasanya, masalah dapat diidentifikasi secara akurat dalam waktu 1 jam.
Referensi
-
Dokumentasi Resmi Google Gemini API: Pemahaman dan pembuatan gambar
- Tautan:
ai.google.dev/gemini-api/docs/image-generation - Penjelasan: Spesifikasi kolom inline_data / file_data, daftar mime_type
- Tautan:
-
Panduan Pengembang Gemini 3: Panduan migrasi model baru
- Tautan:
ai.google.dev/gemini-api/docs/gemini-3 - Penjelasan: Perbedaan antara gemini-3-pro-image-preview dengan model lama
- Tautan:
-
RFC 4648 – The Base16, Base32, and Base64 Data Encodings: Spesifikasi standar Base64
- Tautan:
datatracker.ietf.org/doc/html/rfc4648 - Penjelasan: Perbedaan antara standar Base64 §4 vs URL-safe Base64 §5
- Tautan:
-
Situs Resmi APIYI: Layanan proksi API untuk seluruh seri Gemini / Claude / OpenAI
- Tautan:
apiyi.com - Penjelasan: Kompatibilitas format asli, tanpa batas konkurensi, isi saldo dalam Rupiah, bonus 10% untuk pengisian saldo 100 USD
- Tautan:
Penulis: Tim Teknis
Terakhir Diperbarui: 02-05-2026
Tentang APIYI: APIYI apiyi.com adalah penyedia layanan proksi API Model Bahasa Besar yang profesional. Kami menyediakan akses stabil untuk berbagai model seperti gemini-3-pro-image-preview, Claude Sonnet 4.5, Claude Opus 4.7, seri GPT, dan lainnya. Layanan kami sepenuhnya kompatibel dengan format asli Gemini/OpenAI/Anthropic. Konsol kami mendukung pengecekan log permintaan lengkap melalui request_id, menawarkan bonus 10% untuk pengisian saldo 100 USD (setara dengan diskon 15% dari harga resmi), tanpa batasan konkurensi, serta dukungan teknis yang responsif.
