|

3 Cara Mengatasi Error Konflik thinking_budget dan thinking_level pada Gemini API

Memanggil Gemini 3.0 Pro Preview atau gemini-3-flash-preview dan muncul error thinking_budget and thinking_level are not supported together? Ini adalah masalah kompatibilitas yang disebabkan oleh upgrade parameter antara versi model yang berbeda di Google Gemini API. Artikel ini akan mengupas tuntas penyebab utama error ini dan cara konfigurasi yang benar dari sudut pandang evolusi desain API.

Nilai Inti: Setelah membaca artikel ini, kamu akan menguasai cara konfigurasi parameter mode berpikir (thinking mode) yang benar untuk model Gemini 2.5 dan 3.0, menghindari error pemanggilan API yang umum, serta mengoptimalkan performa inferensi dan kontrol biaya.

gemini-api-thinking-budget-level-error-fix-id 图示

Poin Utama Evolusi Parameter Mode Berpikir Gemini API

Versi Model Parameter Rekomendasi Tipe Parameter Contoh Konfigurasi Skenario Penggunaan
Gemini 2.5 Flash/Flash-Lite thinking_budget Integer atau -1 thinking_budget: 0 (nonaktif)
thinking_budget: -1 (dinamis)
Kontrol presisi budget token berpikir
Gemini 3.0 Pro/Flash thinking_level Nilai Enum thinking_level: "minimal"/"low"/"medium"/"high" Konfigurasi simpel berdasarkan skenario
Catatan Kompatibilitas ⚠️ Tidak boleh bersamaan Mengirim kedua parameter akan memicu error 400 Pilih salah satu sesuai versi model

Perbedaan Utama Parameter Mode Berpikir Gemini

Alasan utama Google memperkenalkan parameter thinking_level di Gemini 3.0 adalah untuk menyederhanakan pengalaman pengembang. thinking_budget pada Gemini 2.5 mengharuskan pengembang memperkirakan jumlah token berpikir secara presisi, sementara thinking_level pada Gemini 3.0 mengabstraksi kompleksitas tersebut menjadi 4 level semantik, sehingga menurunkan hambatan konfigurasi.

Perubahan desain ini mencerminkan pilihan Google dalam evolusi API: mengorbankan sedikit kontrol mendetail demi kemudahan penggunaan yang lebih baik dan konsistensi antar model. Untuk sebagian besar skenario aplikasi, abstraksi thinking_level sudah sangat mencukupi. Penggunaan thinking_budget hanya diperlukan saat kamu butuh optimasi biaya yang ekstrem atau kontrol budget token yang sangat spesifik.

💡 Saran Teknis: Dalam pengembangan praktis, kami menyarankan untuk melakukan pengujian pemanggilan antarmuka melalui platform APIYI (apiyi.com). Platform ini menyediakan antarmuka API terpadu yang mendukung model Gemini 2.5 Flash, Gemini 3.0 Pro, Gemini 3.0 Flash, dan lainnya, memudahkan kamu memvalidasi efek nyata serta perbedaan biaya dari berbagai konfigurasi mode berpikir dengan cepat.

Akar Penyebab Kesalahan: Strategi Kompatibilitas ke Depan dalam Desain Parameter

Analisis Pesan Kesalahan API

{
  "status_code": 400,
  "error": {
    "message": "Unable to submit request because thinking_budget and thinking_level are not supported together.",
    "type": "upstream_error",
    "code": 400
  }
}

Informasi inti dari kesalahan ini adalah thinking_budget dan thinking_level tidak boleh ada secara bersamaan. Saat Google memperkenalkan parameter baru di Gemini 3.0, mereka tidak langsung menghapus parameter lama, melainkan menerapkan strategi eksklusivitas:

  • Model Gemini 2.5: Hanya menerima thinking_budget, dan akan mengabaikan thinking_level.
  • Model Gemini 3.0: Mengutamakan thinking_level, namun tetap menerima thinking_budget demi menjaga kompatibilitas ke belakang (backward compatibility). Tapi ingat, keduanya tidak boleh dikirim secara bersamaan.
  • Kondisi Pemicu Kesalahan: Permintaan API mengandung parameter thinking_budget dan thinking_level sekaligus.

Mengapa Kesalahan Ini Terjadi?

Developer biasanya menemui kendala ini dalam 3 skenario berikut:

Skenario Penyebab Karakteristik Kode Tipikal
Skenario 1: Pengisian Otomatis SDK Beberapa framework AI (seperti LiteLLM, AG2) mengisi parameter secara otomatis berdasarkan nama model, sehingga mengirimkan kedua parameter sekaligus. Menggunakan SDK yang sudah dibungkus (wrapper) tanpa memeriksa body permintaan yang sebenarnya.
Skenario 2: Konfigurasi Hardcoded Parameter thinking_budget sudah tertulis permanen di kode, lalu saat beralih ke model Gemini 3.0, nama parameter tersebut lupa diperbarui. Adanya penugasan nilai untuk kedua parameter di file konfigurasi atau kode.
Skenario 3: Salah Identifikasi Alias Model Menggunakan alias seperti gemini-flash-preview yang sebenarnya mengarah ke Gemini 3.0, tapi konfigurasi parameternya masih menggunakan gaya 2.5. Nama model mengandung preview atau latest, namun konfigurasi parameter belum disesuaikan.

gemini-api-thinking-budget-level-error-fix-id 图示

🎯 Saran Pemilihan: Saat beralih versi model Gemini, sebaiknya tes dulu kompatibilitas parameternya melalui platform APIYI apiyi.com. Platform ini mendukung perpindahan cepat antara seri model Gemini 2.5 dan 3.0, memudahkan Anda membandingkan kualitas respons dan perbedaan latensi pada berbagai konfigurasi mode berpikir tanpa harus pusing dengan konflik parameter di lingkungan produksi.

3 Solusi: Memilih Parameter yang Tepat Berdasarkan Versi Model

Solusi 1: Konfigurasi Model Gemini 2.5 (Gunakan thinking_budget)

Model yang Berlaku: gemini-2.5-flash, gemini-2.5-pro, dan sejenisnya.

Penjelasan Parameter:

  • thinking_budget: 0 – Menonaktifkan mode berpikir sepenuhnya untuk latensi dan biaya terendah.
  • thinking_budget: -1 – Mode berpikir dinamis, model menyesuaikan secara otomatis berdasarkan kompleksitas permintaan.
  • thinking_budget: <integer positif> – Menentukan batas maksimal token berpikir secara presisi.

Contoh Sederhana

import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)

response = client.chat.completions.create(
    model="gemini-2.5-flash-preview-04-17",
    messages=[{"role": "user", "content": "Jelaskan prinsip keterkaitan kuantum"}],
    extra_body={
        "thinking_budget": -1  # Mode berpikir dinamis
    }
)
print(response.choices[0].message.content)
Lihat Kode Lengkap (Termasuk Ekstraksi Konten Berpikir)
import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)

response = client.chat.completions.create(
    model="gemini-2.5-flash-preview-04-17",
    messages=[{"role": "user", "content": "Jelaskan prinsip keterkaitan kuantum"}],
    extra_body={
        "thinking_budget": -1,  # Mode berpikir dinamis
        "include_thoughts": True  # Aktifkan pengembalian ringkasan berpikir
    }
)

# Ekstrak konten berpikir (jika diaktifkan)
for part in response.choices[0].message.content:
    if hasattr(part, 'thought') and part.thought:
        print(f"Proses Berpikir: {part.text}")

# Ekstrak jawaban akhir
final_answer = response.choices[0].message.content
print(f"Jawaban Akhir: {final_answer}")

Saran: Model Gemini 2.5 akan dipensiunkan pada 3 Maret 2026. Sangat disarankan untuk segera bermigrasi ke seri Gemini 3.0. Anda bisa menggunakan platform APIYI apiyi.com untuk membandingkan perbedaan kualitas respons sebelum dan sesudah migrasi dengan cepat.

Solusi 2: Konfigurasi Model Gemini 3.0 (Gunakan thinking_level)

Model yang Berlaku: gemini-3.0-flash-preview, gemini-3.0-pro-preview

Penjelasan Parameter:

  • thinking_level: "minimal" – Berpikir minimal, hampir nol budget, perlu mengirimkan Signature Berpikir (Thought Signatures).
  • thinking_level: "low" – Berpikir intensitas rendah, cocok untuk mengikuti instruksi sederhana dan percakapan santai.
  • thinking_level: "medium" – Berpikir intensitas sedang, cocok untuk tugas penalaran umum (hanya didukung Gemini 3.0 Flash).
  • thinking_level: "high" – Berpikir intensitas tinggi, memaksimalkan kedalaman penalaran untuk masalah kompleks (nilai default).

Contoh Sederhana

import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)

response = client.chat.completions.create(
    model="gemini-3.0-flash-preview",
    messages=[{"role": "user", "content": "Analisis kompleksitas waktu dari kode ini"}],
    extra_body={
        "thinking_level": "medium"  # Berpikir intensitas sedang
    }
)
print(response.choices[0].message.content)
Lihat Kode Lengkap (Termasuk Pengiriman Signature Berpikir)
import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)

# Percakapan putaran pertama
response_1 = client.chat.completions.create(
    model="gemini-3.0-flash-preview",
    messages=[{"role": "user", "content": "Desain algoritma LRU Cache"}],
    extra_body={
        "thinking_level": "high",
        "include_thoughts": True
    }
)

# Ekstrak signature berpikir (Gemini 3.0 mengembalikannya secara otomatis)
thought_signatures = []
for part in response_1.choices[0].message.content:
    if hasattr(part, 'thought_signature'):
        thought_signatures.append(part.thought_signature)

# Percakapan putaran kedua, kirim signature untuk menjaga rantai penalaran
response_2 = client.chat.completions.create(
    model="gemini-3.0-flash-preview",
    messages=[
        {"role": "user", "content": "Desain algoritma LRU Cache"},
        {"role": "assistant", "content": response_1.choices[0].message.content, "thought_signatures": thought_signatures},
        {"role": "user", "content": "Optimalkan kompleksitas ruang dari algoritma ini"}
    ],
    extra_body={
        "thinking_level": "high"
    }
)
print(response_2.choices[0].message.content)

💰 Optimasi Biaya: Untuk proyek yang sensitif terhadap biaya, Anda bisa mempertimbangkan penggunaan Gemini 3.0 Flash API melalui platform APIYI apiyi.com. Platform ini menawarkan skema biaya yang fleksibel dan harga yang lebih terjangkau, sangat pas untuk tim kecil maupun developer individu. Padukan dengan thinking_level: "low" untuk menekan biaya lebih jauh.

Solusi 3: Strategi Adaptasi Parameter untuk Perpindahan Model Dinamis

Skenario Penggunaan: Jika kode Anda perlu mendukung model Gemini 2.5 dan 3.0 secara bersamaan.

Fungsi Adaptasi Parameter Cerdas

def get_thinking_config(model_name: str, complexity: str = "medium") -> dict:
    """
    Memilih parameter mode berpikir yang benar secara otomatis berdasarkan versi model.

    Args:
        model_name: Nama model Gemini
        complexity: Kompleksitas berpikir ("minimal", "low", "medium", "high", "dynamic")

    Returns:
        Dictionary parameter yang cocok untuk extra_body
    """
    # Daftar model Gemini 3.0
    gemini_3_models = [
        "gemini-3.0-flash-preview",
        "gemini-3.0-pro-preview",
        "gemini-3-flash",
        "gemini-3-pro"
    ]

    # Daftar model Gemini 2.5
    gemini_2_5_models = [
        "gemini-2.5-flash-preview-04-17",
        "gemini-2.5-flash-lite",
        "gemini-2-flash",
        "gemini-2-flash-lite"
    ]

    # Cek versi model
    if any(m in model_name for m in gemini_3_models):
        # Gemini 3.0 menggunakan thinking_level
        level_map = {
            "minimal": "minimal",
            "low": "low",
            "medium": "medium",
            "high": "high",
            "dynamic": "high"  # Default ke tinggi
        }
        return {"thinking_level": level_map.get(complexity, "medium")}

    elif any(m in model_name for m in gemini_2_5_models):
        # Gemini 2.5 menggunakan thinking_budget
        budget_map = {
            "minimal": 0,
            "low": 512,
            "medium": 2048,
            "high": 8192,
            "dynamic": -1
        }
        return {"thinking_budget": budget_map.get(complexity, -1)}

    else:
        # Model tidak dikenal, default ke parameter Gemini 3.0
        return {"thinking_level": "medium"}

# Contoh penggunaan
import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)

model = "gemini-3.0-flash-preview"  # Bisa diganti secara dinamis
thinking_config = get_thinking_config(model, complexity="high")

response = client.chat.completions.create(
    model=model,
    messages=[{"role": "user", "content": "Pertanyaan Anda"}],
    extra_body=thinking_config
)

gemini-api-thinking-budget-level-error-fix-id 图示

Kompleksitas Berpikir Gemini 2.5 (thinking_budget) Gemini 3.0 (thinking_level) Skenario yang Direkomendasikan
Minimal 0 "minimal" Instruksi sederhana, aplikasi throughput tinggi
Rendah 512 "low" Chatbot, QA ringan
Sedang 2048 "medium" Tugas penalaran umum, pembuatan kode
Tinggi 8192 "high" Pemecahan masalah kompleks, analisis mendalam
Dinamis -1 "high" (Default) Menyesuaikan kompleksitas secara otomatis

🚀 Mulai Cepat: Kami menyarankan penggunaan platform APIYI apiyi.com untuk membangun prototipe Anda dengan cepat. Platform ini menyediakan antarmuka API Gemini yang siap pakai tanpa konfigurasi ribet. Selesaikan integrasi dalam 5 menit dan nikmati kemudahan gonta-ganti parameter mode berpikir untuk membandingkan hasilnya secara instan.

Penjelasan Mendalam Mekanisme Thought Signatures (Tanda Tangan Pemikiran) Gemini 3.0

Apa itu Thought Signatures?

Gemini 3.0 memperkenalkan Thought Signatures (Tanda Tangan Pemikiran), yang merupakan representasi terenkripsi dari proses penalaran internal model. Saat kamu mengaktifkan include_thoughts: true, model akan mengembalikan tanda tangan terenkripsi dari proses berpikirnya dalam respons. Kamu bisa menyertakan tanda tangan ini di percakapan berikutnya agar model tetap konsisten dengan rantai penalaran sebelumnya.

Fitur Utama:

  • Representasi Terenkripsi: Konten tanda tangan tidak bisa dibaca manusia, hanya bisa dipahami oleh model.
  • Menjaga Rantai Penalaran: Dengan meneruskan tanda tangan dalam percakapan multi-putaran, model bisa melanjutkan penalaran berdasarkan pemikiran sebelumnya.
  • Pengembalian Otomatis: Secara default, Gemini 3.0 akan mengembalikan Thought Signatures meskipun tidak diminta secara eksplisit.

Skenario Penggunaan Thought Signatures

Skenario Perlu Mengirim Tanda Tangan? Keterangan
Tanya Jawab Satu Putaran ❌ Tidak Perlu Pertanyaan mandiri, tidak butuh menjaga rantai penalaran.
Percakapan Multi-putaran (Sederhana) ❌ Tidak Perlu Konteks sudah cukup, tidak ada ketergantungan penalaran yang kompleks.
Percakapan Multi-putaran (Penalaran Kompleks) ✅ Perlu Contoh: Refactoring kode, pembuktian matematika, analisis multi-langkah.
Mode Pemikiran Minimal (minimal) ✅ Wajib thinking_level: "minimal" mewajibkan pengiriman tanda tangan, jika tidak akan muncul error 400.
Contoh Kode Pengiriman Thought Signature
import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)

# Putaran 1: Minta model merancang algoritma
response_1 = client.chat.completions.create(
    model="gemini-3.0-pro-preview",
    messages=[{"role": "user", "content": "Rancang sebuah algoritma distributed rate limiting"}],
    extra_body={
        "thinking_level": "high",
        "include_thoughts": True
    }
)

# Ekstrak thought signature
signatures = []
for part in response_1.choices[0].message.content:
    if hasattr(part, 'thought_signature'):
        signatures.append(part.thought_signature)

# Putaran 2: Optimasi berdasarkan penalaran sebelumnya
response_2 = client.chat.completions.create(
    model="gemini-3.0-pro-preview",
    messages=[
        {"role": "user", "content": "Rancang sebuah algoritma distributed rate limiting"},
        {
            "role": "assistant",
            "content": response_1.choices[0].message.content,
            "thought_signatures": signatures  # Mengirimkan thought signature
        },
        {"role": "user", "content": "Bagaimana cara menangani masalah ketidakkonsistenan jam terdistribusi?"}
    ],
    extra_body={"thinking_level": "high"}
)

💡 Praktik Terbaik: Untuk skenario yang membutuhkan penalaran kompleks dalam beberapa putaran (seperti desain sistem, optimasi algoritma, atau peninjauan kode), disarankan untuk mencoba perbedaan efek pengiriman Thought Signatures melalui platform APIYI (apiyi.com). Platform ini mendukung penuh mekanisme Thought Signatures Gemini 3.0, memudahkan kamu memvalidasi kualitas penalaran di berbagai konfigurasi.

Pertanyaan yang Sering Diajukan (FAQ)

Q1: Mengapa Gemini 2.5 Flash masih mengembalikan konten pemikiran meskipun thinking_budget=0 sudah diatur?

Ini adalah bug yang sudah diketahui pada versi Gemini 2.5 Flash Preview 04-17, di mana thinking_budget=0 tidak dijalankan dengan benar. Masalah ini telah dikonfirmasi di forum resmi Google.

Solusi Sementara:

  • Gunakan thinking_budget=1 (nilai minimal) alih-alih 0.
  • Upgrade ke Gemini 3.0 Flash dan gunakan thinking_level="minimal".
  • Filter konten pemikiran di sisi post-processing (jika API mengembalikan field thought).

Direkomendasikan untuk beralih ke model Gemini 3.0 Flash melalui APIYI (apiyi.com). Platform ini mendukung versi terbaru yang dapat menghindari bug semacam ini.

Q2: Bagaimana cara mengetahui apakah saya sedang menggunakan model Gemini 2.5 atau 3.0?

Metode 1: Periksa Nama Model

  • Gemini 2.x: Nama mengandung 2.5-flash, 2-flash-lite.
  • Gemini 3.x: Nama mengandung 3.0-flash, 3-pro, gemini-3-flash.

Metode 2: Kirim Permintaan Tes

# Cukup kirimkan thinking_level dan amati responsnya
response = client.chat.completions.create(
    model="nama-model-kamu",
    messages=[{"role": "user", "content": "test"}],
    extra_body={"thinking_level": "low"}
)
# Jika kembali error 400 dan ada pesan tidak mendukung thinking_level, berarti itu Gemini 2.5

Metode 3: Lihat Header Respons API
Beberapa implementasi API akan mengembalikan field X-Model-Version di header respons, sehingga versi model bisa langsung diidentifikasi.

Q3: Berapa banyak token yang dihabiskan untuk setiap tingkat thinking_level di Gemini 3.0?

Google belum mempublikasikan anggaran token yang tepat untuk setiap thinking_level, namun memberikan panduan berikut:

thinking_level Biaya Relatif Latensi Relatif Kedalaman Penalaran
minimal Paling Rendah Paling Rendah Hampir Tanpa Berpikir
low Rendah Rendah Penalaran Dangkal
medium Menengah Menengah Penalaran Menengah
high Tinggi Tinggi Penalaran Mendalam

Saran Penggunaan:

  • Gunakan platform APIYI (apiyi.com) untuk membandingkan konsumsi token aktual di setiap level.
  • Gunakan petunjuk yang sama, panggil level low/medium/high secara bergantian, dan perhatikan perbedaan biayanya.
  • Pilih level yang sesuai berdasarkan kebutuhan bisnis kamu (Kualitas Respons vs Biaya).
Q4: Bisakah saya memaksa penggunaan thinking_budget di Gemini 3.0?

Bisa, tapi tidak disarankan.

Untuk menjaga kompatibilitas ke belakang (backwards compatibility), Gemini 3.0 tetap menerima parameter thinking_budget, namun dokumentasi resmi menyatakan:

"Meskipun thinking_budget diterima untuk kompatibilitas ke belakang, menggunakannya dengan Gemini 3 Pro mungkin menghasilkan performa yang kurang optimal."

Alasannya:

  • Mekanisme penalaran internal Gemini 3.0 telah dioptimalkan khusus untuk thinking_level.
  • Memaksa penggunaan thinking_budget bisa melewati strategi penalaran versi baru.
  • Hal ini dapat menyebabkan penurunan kualitas respons atau peningkatan latensi.

Cara yang Benar:

  • Migrasi ke parameter thinking_level.
  • Gunakan fungsi adaptasi parameter (seperti yang dijelaskan pada "Solusi 3") untuk memilih parameter yang tepat secara dinamis.

Ringkasan

Poin inti terkait error thinking_budget dan thinking_level pada Gemini API:

  1. Parameter Saling Eksklusif: Gemini 2.5 menggunakan thinking_budget, sedangkan Gemini 3.0 menggunakan thinking_level. Keduanya tidak boleh dikirim secara bersamaan.
  2. Identifikasi Model: Tentukan versi berdasarkan nama model; seri 2.5 menggunakan thinking_budget, seri 3.0 menggunakan thinking_level.
  3. Adaptasi Dinamis: Gunakan fungsi adaptasi parameter untuk memilih parameter yang tepat secara otomatis berdasarkan nama model guna menghindari hard-coding.
  4. Thinking Signature: Gemini 3.0 memperkenalkan mekanisme thinking signature (tanda tangan pemikiran). Dalam skenario penalaran kompleks multi-putaran, tanda tangan ini perlu dikirim untuk menjaga rantai penalaran.
  5. Saran Migrasi: Gemini 2.5 akan dihentikan pada 3 Maret 2026. Disarankan untuk segera bermigrasi ke seri 3.0.

Kami merekomendasikan penggunaan APIYI apiyi.com untuk memvalidasi efek nyata dari berbagai konfigurasi mode berpikir secara cepat. Platform ini mendukung seluruh seri model Gemini, menyediakan antarmuka terpadu, serta metode penagihan yang fleksibel, sangat cocok untuk pengujian perbandingan cepat maupun implementasi di lingkungan produksi.


Penulis: Tim Teknis APIYI | Jika ada kendala teknis, silakan kunjungi APIYI apiyi.com untuk mendapatkan lebih banyak solusi integrasi model AI.

Similar Posts