Gemini 3.7 Flash ke 3.8 Flash: Panduan Migrasi API

Pindah dari Gemini 3.7 Flash ke 3.8 Flash: 9 perubahan API dengan JSON sebelum/sesudah, kesalahan tingkat berpikir minimal, aturan call_id, anggaran token, dan pemulihan.

Ashley Goolam

Ashley Goolam

3 September 2026

Gemini 3.7 Flash ke 3.8 Flash: Panduan Migrasi API

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Google merilis Gemini 3.8 Flash pada 2 September 2026, tiga minggu setelah 3.7 Flash, dengan harga perkenalan yang sama dan kecepatan yang kira-kira sama. ID modelnya adalah `gemini-3.8-flash`, tanpa sufiks pratinjau, dan kartu modelnya menggambarkannya sebagai "berdasarkan Gemini 3.7 Flash". Jadi, sebagian besar tim mengharapkan penggantian satu baris. Untuk perintah obrolan biasa, memang begitu. Untuk apa pun yang mengatur parameter pemikiran, menyetel pengambilan sampel, atau menjalankan loop alat, ada sembilan hal yang harus diperiksa, dan dua di antaranya mengembalikan kesalahan yang tidak pernah terjadi pada 3.7 Flash. Panduan ini adalah daftar periksa tersebut, dibangun dari halaman Google Yang baru di Gemini 3.8 Flash dan panduan pengembang Gemini 3. Setiap item memiliki fragmen sebelum dan sesudah untuk kedua bentuk API: API Interaksi, yang kini diperlakukan Google sebagai jalur utama, dan endpoint `generateContent` lama yang masih digunakan sebagian besar kode 3.7 Flash. Setiap fragmen dapat ditempelkan ke Apidog dan dikirim ke endpoint langsung sebelum menyentuh produksi. Jika Anda ingin gambaran umum model terlebih dahulu, mulailah dengan apa itu Gemini 3.8 Flash. Satu catatan pembingkaian sebelum daftar. Google mengatakan 3.8 Flash "bekerja lebih keras" sesuai desain: pada tugas-tugas kompleks, ia mengambil langkah-langkah penalaran yang lebih kecil, memverifikasi pekerjaannya, dan memanggil alat secara berulang. Itu adalah sumber sebagian besar keuntungannya dan juga alasan mengapa migrasi membutuhkan tinjauan anggaran token, bukan hanya perbedaan konfigurasi.button

Apa yang berubah dan apa yang tidak

Area 3.7 Flash 3.8 Flash
ID Model gemini-3.7-flash gemini-3.8-flash
Konteks / Output 1.048.576 / 65.536 Sama
Harga (perkenalan hingga 31 Des 2026) $0,75 / $3,75 per 1 juta Sama, lalu $1,50 / $7,50 untuk keduanya mulai 1 Jan 2027
Level Berpikir rendah, sedang, tinggi Sama; minimal mengembalikan kesalahan validasi; default adalah medium
Token per Tugas dasar +30% token output rata-rata (Analisis Artifisial)
Hasil Fungsi call_id + name Keduanya wajib, diberlakukan
Status Dukungan "tetap didukung penuh", tidak ada tanggal penghentian Saat ini

Sumber untuk baris harga: halaman harga API Gemini Google Gemini API pricing page, di mana baris 3.6, 3.7, dan 3.8 Flash identik.

Langkah 0: putuskan apakah akan pindah sama sekali

Tidak ada yang memaksa migrasi. Posting peluncuran Google menyatakan bahwa "Gemini 3.7 Flash tetap didukung penuh", dan belum ada tanggal penghentian yang diterbitkan. Harga per token tidak berubah, jadi satu-satunya perbedaan biaya adalah penggunaan. Analisis Artifisial mengukur 3.8 Flash pada pemikiran tinggi menggunakan sekitar 48 ribu token output per tugas pada indeks mereka, 30% lebih banyak dari 3.7 Flash, yang menggeser biaya per tugas dari $0,40 menjadi $0,58 pada tingkat yang sama. Skor indeks mereka naik dari 56 menjadi 59, dan akurasi penggunaan alat pada τ³-Banking naik 12 poin menjadi 45%. Jadi, pertukaran adalah lebih banyak kemampuan per tugas untuk lebih banyak token per tugas. Jika beban kerja Anda singkat, sensitif terhadap latensi, atau sudah melewati evaluasinya pada 3.7 Flash, Anda dapat tetap menggunakan yang lama. Perbandingan 3.8 Flash vs 3.7 Flash lengkap memiliki matriks keputusan berdasarkan beban kerja. Jika Anda akan pindah, teruslah membaca.

Langkah 1: tukar ID model di kedua bentuk

API Interaksi (API utama Google untuk Gemini 3.x):

{"model": "gemini-3.7-flash", "input": "..."}
{"model": "gemini-3.8-flash", "input": "..."}

`generateContent` lawas (masih didukung, tidak ada penghentian):

POST /v1beta/models/gemini-3.7-flash:generateContent
POST /v1beta/models/gemini-3.8-flash:generateContent

SDK Python, kedua jalur:

client.interactions.create(model="gemini-3.8-flash", input=..., generation_config={"thinking_level": "medium"})
client.models.generate_content(model="gemini-3.8-flash", contents=..., config=types.GenerateContentConfig(thinking_config=types.ThinkingConfig(thinking_level="low")))

Jika Anda belum pernah menggunakan API Interaksi, panduan API 3.8 Flash mencakup kedua bentuk secara menyeluruh; panduan API 3.7 Flash yang lebih lama hanya mencakup `generateContent`, itulah mengapa panduan ini menunjukkan keduanya.

Daftar periksa migrasi sembilan item

Kerjakan ini secara berurutan. Item 1 hingga 4 adalah perubahan konfigurasi yang langsung terlihat. Item 5 dan 6 memengaruhi loop alat dan status multi-giliran. Item 7 hingga 9 adalah perubahan perencanaan dan media yang hanya akan Anda tangkap dalam pengujian.

1. Petakan thinking_level: "minimal" ke "low"

Ini adalah yang pertama rusak. 3.8 Flash menerima `low`, `medium`, dan `high`. Mengirim `minimal` mengembalikan kesalahan validasi. Default ketika Anda tidak mengirim apa-apa adalah `medium`. Gemini 3 Pro default ke `high`, jadi jangan menyalin konfigurasi Pro dan berasumsi itu cocok. Sebelum (3.7 Flash, Interaksi):

{"generation_config": {"thinking_level": "minimal"}}

Setelah (3.8 Flash):

{"generation_config": {"thinking_level": "low"}}

Bentuk lawas, setelah:

{"generationConfig": {"thinkingConfig": {"thinkingLevel": "low"}}}

Dokumentasi berpikir Google menggambarkan `low` sebagai pengaturan latensi dan `medium` sebagai default untuk kode kompleks dan pekerjaan agentic. Level mana yang akan digunakan per rute adalah artikelnya sendiri; untuk tujuan migrasi, `low` adalah pengganti langsung untuk `minimal`.

2. Hapus temperature, top_p, dan top_k

Panduan Google untuk setiap model Gemini 3 adalah menjaga suhu pada default 1.0. Menurunkannya "dapat menyebabkan pengulangan atau kinerja yang menurun". Banyak konfigurasi 3.7 Flash membawa `temperature: 0.2` yang tersisa dari generasi sebelumnya. Hapus kunci pengambilan sampel daripada mengaturnya. Sebelum:

{"generationConfig": {"temperature": 0.2, "topP": 0.9, "topK": 40}}

Setelah:

{"generationConfig": {"thinkingConfig": {"thinkingLevel": "medium"}}}

Jika Anda menggunakan suhu rendah untuk mendapatkan JSON yang dapat diulang, gunakan output terstruktur sebagai gantinya. Ini didukung pada 3.8 Flash dan memberi Anda respons berbentuk skema tanpa menyentuh pengambilan sampel.

3. Ganti thinking_budget dengan thinking_level

`thinking_budget` adalah batas token integer. `thinking_level` adalah enum string. Tidak ada pemetaan aritmatika di antara keduanya, jadi pilih level berdasarkan niat: rute latensi mendapatkan `low`, rute default mendapatkan `medium`, rute multi-langkah tersulit mendapatkan `high`. Sebelum:

{"generationConfig": {"thinkingConfig": {"thinkingBudget": 4096}}}

Setelah:

{"generationConfig": {"thinkingConfig": {"thinkingLevel": "low"}}}

Token berpikir masih ditagih sebagai token output dan dilaporkan dalam `usageMetadata.thoughtsTokenCount`, jadi kontrol biaya bergerak dari batas keras ke pilihan level ditambah pernyataan dalam pengujian Anda (lihat bagian regresi di bawah).

4. Hapus candidate_count

Gemini 3 dan yang lebih baru tidak mendukung beberapa kandidat. Hapus kunci, dan hapus kode apa pun yang mengindeks `candidates[1]` atau lebih. Sebelum:

{"generationConfig": {"candidateCount": 2}}

Setelah:

{"generationConfig": {}}

Jika Anda mengambil sampel beberapa kandidat untuk memilih yang terbaik, penggantinya pada 3.8 Flash adalah tingkat pemikiran yang lebih tinggi, yang melakukan verifikasi dalam satu respons.

5. Letakkan call_id dan name pada setiap hasil fungsi

Ini adalah gangguan keras kedua. Pada 3.8 Flash, setiap hasil fungsi yang Anda kirimkan kembali harus membawa `id` panggilan dan `name` fungsi. Panduan Gemini 3 Google mengatakan untuk "memastikan semua objek `FunctionResponse` menyertakan `call_id` dan `name`". Kode yang hanya mengulang nama akan gagal pada giliran hasil alat. API Interaksi, setelah:

{
  "previous_interaction_id": "<id dari langkah function_call>",
  "input": [{
    "type": "function_result",
    "name": "get_weather",
    "call_id": "<id dari langkah function_call>",
    "result": [{"type": "text", "text": "{\"temp_c\": 24}"}]
  }]
}

Langkah `function_call` model memberi Anda `id`, `name`, dan `arguments`; salin dua yang pertama langsung kembali. Dalam bentuk lawas, bagian `functionResponse` membawa nilai yang sama dalam bidang yang dieja `id` (cocok dengan `id` pada bagian `functionCall` model) bersama dengan `name` dan `response`. Referensi pemanggilan fungsi Google memiliki contoh kanonis, dan panduan pemanggilan fungsi 3.8 Flash menjelaskan seluruh loop dua giliran, termasuk mengapa 3.8 Flash memanggil alat lebih banyak kali per tugas daripada 3.7 Flash.

6. Lewatkan tanda tangan pemikiran kembali persis seperti yang diterima

Model Gemini 3 melampirkan tanda tangan pemikiran ke bagian respons. Saat Anda membangun giliran berikutnya sendiri, kembalikan setiap bagian tanpa perubahan, termasuk tanda tangan, untuk semua jenis bagian, tidak hanya teks. Menghapus atau menserialisasinya ulang akan menurunkan kontinuitas model pada langkah berikutnya. API Interaksi menghilangkan pekerjaan ini ketika Anda membiarkan server menyimpan status: teruskan `previous_interaction_id` dan Google menyimpan riwayat. Jika Anda menyetel `store: false` untuk panggilan tanpa status, Anda memiliki riwayat lagi dan harus mengirimkan blok pemikiran dan tanda tangan sendiri. Dalam `generateContent` lawas, Anda selalu memiliki riwayat, jadi audit kode apa pun yang membangun ulang `contents` dari salinan respons terakhir yang dipotong.

7. Anggarkan lebih banyak token per rute

Item ini tidak memiliki kesalahan untuk ditangkap, itulah mengapa sering terlewat. Angka token output +30% dari Analisis Artifisial adalah rata-rata di seluruh indeks mereka pada pemikiran tinggi. Kata-kata Google sendiri adalah bahwa model "dapat menggunakan lebih banyak token pada tugas yang berjalan lebih lama dan kompleks, sesuai desain" dan bahwa penggunaan meningkat "terutama pada tingkat usaha yang lebih tinggi". Rencanakan per rute, bukan secara global:

Juga tinjau kembali batas 65.536 token output. Perintah 3.7 Flash yang mengembalikan 40 ribu token dengan pemikiran sekarang mungkin mendekati batas. Jika Anda memodelkan tagihan, rincian harga 3.8 Flash menghitung angka per tugas di ketiga level.

8. Uji media_resolution_high pada PDF versus video

3.8 Flash menerima masukan teks, gambar, video, audio, dan PDF. Pengaturan resolusi media mengubah berapa banyak token yang dikonsumsi setiap masukan media, dan biaya berbeda berdasarkan jenis media, sehingga pengaturan yang sama yang murah pada halaman PDF bisa mahal pada video panjang. Jangan menggunakan pengaturan resolusi tinggi global dari 3.7 Flash tanpa mengukurnya. Kirim satu PDF representatif dan satu video representatif pada setiap resolusi dan bandingkan `usageMetadata.promptTokenCount` di antara keduanya.

9. Hapus semua panggilan segmentasi gambar

Segmentasi gambar tidak didukung pada model Gemini 3. Jika alur kerja era 3.7 Flash masih mengarahkan segmentasi melalui model Gemini yang lebih lama, jalur itu terpisah dari migrasi ini; jika perintah meminta masker segmentasi dari 3.8 Flash, harapkan gagal daripada mengembalikan output yang dapat digunakan. Pembuatan gambar, pembuatan audio, dan Live API juga tidak didukung pada 3.8 Flash, menurut halaman model.

Buat rencana regresi di Apidog

Migrasi dengan dua perubahan mendasar dan pergeseran penggunaan token membutuhkan perbandingan yang dapat diulang, bukan curl satu kali. Berikut adalah penyiapan yang kami gunakan di Apidog, yang berfungsi karena Apidog adalah klien API dan pelari pengujian: ia mengirim permintaan, memeriksa respons, dan menjadwalkan jalannya. Itu tidak menjalankan model. Lingkungan dan variabel. Buat lingkungan Gemini dengan `GEMINI_API_KEY` disimpan sebagai variabel rahasia dan variabel `MODEL`. Gunakan `{{MODEL}}` di URL permintaan `generateContent` dan di bidang `model` permintaan Interaksi, sehingga permintaan yang disimpan sama berjalan terhadap salah satu model. Prompt emas. Simpan 10 hingga 20 prompt yang mewakili rute asli Anda: giliran obrolan singkat, ekstraksi output terstruktur, panggilan fungsi dua giliran dengan alat yang dimock, satu input PDF dan satu input video. Masing-masing adalah satu permintaan dalam skenario pengujian. Asersi. Tambahkan tiga per permintaan:

Berdampingan. Duplikat skenario, atur `MODEL` ke `gemini-3.7-flash` di satu dan `gemini-3.8-flash` di yang lain, dan jalankan keduanya. Laporan pengujian Apidog menunjukkan lulus/gagal per asersi dan isi respons, sehingga perbedaan token per prompt terlihat dalam satu tampilan daripada direkonstruksi dari log. Untuk skenario panggilan fungsi, tambahkan asersi bahwa `call_id` yang Anda kirimkan kembali sama dengan `id` dari `function_call` langkah sebelumnya. Jadwalkan. Ubah skenario 3.8 Flash menjadi jadwal berjalan sehingga batas token diperiksa setiap hari selama jendela peluncuran. Panduan pengujian API terjadwal mencakup penyiapan. Jika Anda lebih suka mengikuti di aplikasi, Unduh Apidog dan impor fragmen curl di atas.

Rollback: pertahankan 3.7 Flash di balik flag konfigurasi

Karena 3.7 Flash tetap didukung penuh dan berbagi harga 3.8 Flash, rollback ini murah: pertahankan ID model dalam konfigurasi daripada kode.

{"gemini_model": "gemini-3.8-flash", "gemini_fallback_model": "gemini-3.7-flash"}

Tiga aturan membuat flag aman:

FAQ

Apakah Gemini 3.8 Flash lebih mahal dari 3.7 Flash? Tidak per token. Keduanya $0,75 input / $3,75 output per 1 juta hingga 31 Desember 2026, dan keduanya naik menjadi $1,50 / $7,50 pada 1 Januari 2027. Per tugas, 3.8 Flash menggunakan lebih banyak token sesuai desain; Analisis Artifisial mengukur sekitar 30% lebih banyak token output pada indeks mereka pada pemikiran tinggi.

Apa yang terjadi jika saya membiarkan thinking_level: "minimal" tetap ada? Permintaan gagal dengan kesalahan validasi pada 3.8 Flash. Ganti dengan low. Panduan tingkat berpikir menjelaskan apa yang dilakukan setiap tingkat yang tersisa dan cara mengukur perbedaannya.

Apakah saya harus pindah ke API Interaksi untuk menggunakan 3.8 Flash? Tidak. generateContent digambarkan sebagai warisan tetapi tetap didukung penuh tanpa tanggal penghentian, dan 3.8 Flash berfungsi di atasnya. API Interaksi menambahkan status percakapan sisi server melalui previous_interaction_id, yang menghilangkan pembukuan tanda tangan pemikiran pada item 6.

Apakah 3.7 Flash akan dihentikan? Google mengatakan "tetap didukung penuh" dan belum menerbitkan tanggal penghentian. Itulah yang membuat rollback flag konfigurasi dapat dilakukan.

Dapatkah saya mempertahankan suhu yang sama yang saya sesuaikan untuk 3.7 Flash? Saran Google untuk semua model Gemini 3 adalah membiarkan suhu pada 1.0. Jika Anda sudah menimpanya pada 3.7 Flash, migrasi ini adalah saatnya untuk menghapusnya dan memeriksa evaluasi Anda; output terstruktur adalah rute yang didukung untuk bentuk deterministik.

Kirimkan secara bertahap

Migrasi itu sendiri kecil: satu perubahan ID, empat penghapusan atau penggantian nama konfigurasi, dua bidang loop alat, dan audit tanda tangan. Bagian yang memakan waktu adalah membuktikan bahwa anggaran token bertahan per rute, dan itu adalah masalah pengujian. Simpan prompt emas, aserdi pada skema dan batas token, jalankan 3.7 dan 3.8 Flash berdampingan sampai angkanya stabil, lalu balik flag satu rute pada satu waktu. Jika sebuah rute mengalami regresi, flag akan mengirimkannya kembali ke 3.7 Flash tanpa perubahan kode, dan Anda mempertahankan rute yang ditingkatkan.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.