Angka utama Gemini 4 Argon—1 juta token—adalah batas output per respons, bukan jendela konteks. Google menyatakan satu respons Argon dapat mencapai 1 juta token, sekitar 16 kali dari batas sebelumnya 64K. Namun, Google belum menerbitkan ukuran jendela input Argon. Selain itu, Argon saat ini hanya tersedia bagi pembela Program Fairwind; pelanggan API berbayar akan menyusul setelah akses dibuka. Lihat panduan tanggal rilis dan akses.
Respons sepanjang itu mengubah asumsi dasar dalam desain API: panggilan tidak selalu selesai dalam hitungan detik, bodi respons tidak selalu aman dimuat seluruhnya ke memori, dan biaya per permintaan tidak lagi kecil atau mudah diprediksi. Artikel ini membahas cara menyiapkan streaming, timeout, batas output, penyimpanan, dan pengujian di Apidog sebelum akses Argon tersedia. Untuk konteks model, baca apa itu Gemini 4 Argon; untuk format request, lihat panduan API Gemini 4 Argon.
1 juta token output bukan jendela konteks 1 juta
Beberapa halaman menyebut angka 1 juta sebagai jendela konteks Argon. Itu tidak akurat. Dalam postingan peluncurannya, Google menyatakan bahwa mereka memperluas “batas token output model menjadi 1 juta token yang memimpin industri.”
Batas sebelumnya, 64K, konsisten dengan batas output 65.536 token pada Gemini 3.1 Pro Preview. Ukuran input adalah angka terpisah dan belum diumumkan Google untuk Argon.
Google memang menjelaskan evaluasi konteks panjangnya dalam metodologi evaluasi, menggunakan prompt antara 256K hingga 1 juta token. Namun, itu adalah subset benchmark, bukan spesifikasi API. Di sisi lain, Vals AI mencantumkan output maksimum 262K untuk konfigurasi Argon yang mereka uji. Jadi, gunakan batas 1 juta sebagai batas yang diumumkan Google, tetapi verifikasi batas endpoint yang benar-benar Anda gunakan.
| Model | Output maks per respons | Jendela input atau konteks |
|---|---|---|
| Gemini 4 Argon | 1 juta (batas yang ditetapkan Google) | Belum diterbitkan |
| Gemini 3.1 Pro Preview | 65.536 | 1.048.576 |
| Gemini 3.8 Flash | 65.536 | 1.048.576 |
| GPT-6 Astra | 128.000 | 1.050.000 (input maks 922K) |
| Claude Opus 5.5 | 128K (300K pada Batch dengan header beta) | 1 juta |
Setiap pesaing membatasi output sinkron hingga 128K, sehingga batas Argon yang diumumkan sekitar 8x lebih besar. Google mengaitkan kapasitas ini dengan kedalaman penalaran: model dapat menghasilkan ratusan ribu token dalam satu lintasan untuk menyelesaikan masalah sulit. Untuk membandingkan desain pekerjaan panjang pada model lain, lihat tugas 18 jam Claude Opus 5.5 dan panduan API GPT-6 Astra.
Hitung biaya respons maksimal sebelum deploy
Output Argon dikenakan biaya:
- Tarif intro: $10 per 1 juta token output
- Tarif standar: $20 per 1 juta token output
Artinya, satu respons penuh 1 juta token dapat berbiaya:
Tarif intro : 1.000.000 × $10 / 1.000.000 = $10,00
Tarif standar : 1.000.000 × $20 / 1.000.000 = $20,00
Tambahkan biaya input ke perhitungan tersebut. Contohnya, prompt 200.000 token menambahkan:
Tarif intro : 200.000 × $2 / 1.000.000 = $0,40
Tarif standar : $0,80
Jadi, satu panggilan maksimal dengan input 200K token dapat berbiaya:
- $10,40 pada tarif intro
- $20,80 pada tarif standar
Jika pekerjaan terjadwal memicu 100 panggilan seperti itu, biayanya dapat mencapai $1.040 pada tarif intro.
Token berpikir membuat estimasi ini lebih rumit. Pada model Gemini saat ini, token berpikir ditagihkan sebagai output. Google belum menjelaskan apakah Argon mengikuti aturan yang sama atau apakah token berpikir dihitung terhadap batas 1 juta. Karena itu, jawaban yang terlihat pendek tetap dapat menghasilkan biaya output besar. Lihat harga Gemini 4 Argon untuk skenario tambahan, termasuk input cache dengan diskon 95%.
Streaming wajib untuk respons panjang
Panggilan non-streaming tidak mengembalikan data hingga seluruh respons selesai dibuat. Untuk output ratusan ribu token, koneksi bisa senyap cukup lama hingga timeout idle di klien, proxy, gateway, atau load balancer menutup koneksi.
Gunakan streaming dengan endpoint:
:streamGenerateContent?alt=sse
Endpoint tersebut mengirim Server-Sent Events (SSE). Proses setiap event ketika tiba dan langsung tulis hasilnya ke disk atau object storage. Jangan mengumpulkan seluruh respons ke satu string di memori.
Contoh berikut menggunakan Gemini 3.8 Flash sebagai pengganti sementara, karena Google belum menerbitkan ID model Argon. Konfigurasi dasarnya tersedia di panduan API Gemini 3.8 Flash.
import json
import os
import requests
MODEL = os.environ.get("GEMINI_MODEL", "gemini-3.8-flash")
URL = (
"https://generativelanguage.googleapis.com/v1beta/models/"
f"{MODEL}:streamGenerateContent?alt=sse"
)
body = {
"contents": [
{
"parts": [
{
"text": "Write a test plan for every endpoint in a payments API."
}
]
}
],
"generationConfig": {
"maxOutputTokens": 60000
},
}
usage = None
with requests.post(
URL,
json=body,
stream=True,
timeout=(10, 120),
headers={"x-goog-api-key": os.environ["GEMINI_API_KEY"]},
) as response, open("response.txt", "a", encoding="utf-8") as output:
response.raise_for_status()
for line in response.iter_lines(decode_unicode=True):
if not line or not line.startswith("data:"):
continue
event = json.loads(line[5:])
for candidate in event.get("candidates", []):
for part in candidate.get("content", {}).get("parts", []):
output.write(part.get("text", ""))
output.flush()
usage = event.get("usageMetadata", usage)
print(usage)
Pada contoh tersebut:
-
timeout=(10, 120)berarti timeout koneksi 10 detik dan timeout baca 120 detik. - Dalam
requests, timeout baca adalah interval maksimum antar-byte, bukan durasi maksimum seluruh request. - Jika event terus masuk, koneksi dapat tetap berjalan lebih lama dari 120 detik.
- Setiap potongan teks langsung disimpan ke
response.txt. - Pada Gemini 3.8 Flash, event terakhir membawa
usageMetadatayang dapat dicatat untuk pelacakan token dan biaya.
Periksa timeout di setiap lompatan
Klien HTTP bukan satu-satunya komponen yang dapat memutus stream. Respons panjang juga melewati reverse proxy, API gateway, load balancer, dan kemungkinan runtime serverless.
| Lompatan | Yang harus diperiksa | Gejala jika salah |
|---|---|---|
| Klien HTTP | Timeout baca/idle dan timeout total request | Exception di tengah streaming, terutama pada jawaban panjang |
| Reverse proxy | Timeout baca dan buffering respons untuk text/event-stream
|
Event tiba sekaligus atau stream terputus |
| API gateway | Durasi request maksimum | Request gagal pada waktu yang sama setiap kali |
| Load balancer | Timeout idle | Koneksi putus saat jeda panjang sebelum event pertama |
| Fungsi serverless | Batas waktu eksekusi maksimum | Fungsi berhenti ketika model masih menghasilkan output |
Jika respons panjang selalu gagal pada waktu yang sama, kemungkinan ada batas durasi tetap pada salah satu lapisan. Streaming tidak dapat memperbaiki batas keras seperti itu. Pindahkan pekerjaan dari jalur request langsung ke proses latar belakang.
Jalankan pekerjaan panjang di latar belakang
Untuk pekerjaan terpanjang, jangan pertahankan koneksi HTTP pengguna hingga model selesai. Gunakan eksekusi latar belakang.
Interactions API mendukung pekerjaan panjang melalui:
background=true
Eksekusi latar belakang bergantung pada interaksi yang disimpan. Dokumentasi menyebut store=false tidak kompatibel dengan background execution, jadi biarkan penyimpanan aktif untuk request ini.
Praktiknya:
- Buat interaksi dengan
background=true. - Simpan ID interaksi yang dikembalikan.
- Ambil status dan hasil mengikuti endpoint polling yang dijelaskan dokumentasi Google.
- Jangan menebak endpoint atau format polling.
- Saat Argon tersedia, rencanakan pekerjaan besar untuk berjalan melalui Interactions API.
Tetapkan batas output secara sengaja
Batas 1 juta token adalah plafon, bukan target default. Pada generateContent, gunakan generationConfig.maxOutputTokens untuk membatasi biaya dan durasi setiap respons.
{
"generationConfig": {
"maxOutputTokens": 60000
}
}
Pada Gemini 3.8 Flash, token berpikir dihitung terhadap batas tersebut. Dalam pengujian yang dibatasi hingga 2.000 token, hasilnya terdiri dari 1.340 token berpikir dan 656 token terlihat. Untuk Interactions API, konfirmasi field batas output pada dokumentasi Google sebelum digunakan dalam produksi.
Gunakan tabel berikut untuk menetapkan batas biaya per request.
| Batas output | Biaya output kasus terburuk, standar ($20/1 juta) | Intro ($10/1 juta) |
|---|---|---|
| 64.000 | $1,28 | $0,64 |
| 128.000 | $2,56 | $1,28 |
| 500.000 | $10,00 | $5,00 |
| 1.000.000 | $20,00 | $10,00 |
Jika respons mencapai batas, anggap hasilnya belum lengkap. Periksa finishReason pada event terakhir:
MAX_TOKENS
Nilai tersebut berarti respons dipotong oleh batas output. Lanjutkan pada giliran berikutnya atau naikkan batas hanya untuk pekerjaan yang memang membutuhkan output lebih panjang.
Simpan dan urai output besar tanpa buffering
Satu juta token berarti respons berukuran beberapa megabita. Terapkan aturan berikut agar worker tidak kehabisan memori atau membuat duplikasi output mahal:
- Tulis setiap potongan data saat tiba ke file atau unggahan object storage multipart.
- Pertahankan file parsial jika koneksi putus.
- Jangan mengulang request dari awal secara buta karena Anda dapat menghasilkan dan menagih output yang sama lagi.
- Minta format JSON Lines jika membutuhkan data terstruktur, sehingga setiap baris dapat diurai sendiri.
- Catat
usageMetadatadan jumlah byte, bukan seluruh isi respons ke log aplikasi. - Periksa batas ukuran kolom database, message queue, dan payload internal sebelum mengirim output 800K token.
Uji streaming panjang di Apidog sebelum akses Argon dibuka
Anda dapat menguji desain klien, parser, dan timeout menggunakan Gemini 3.8 Flash serta mock SSE lokal. Unduh Apidog, lalu lakukan tiga pemeriksaan berikut.
1. Amati event streaming
Kirim request streaming ke Gemini 3.8 Flash menggunakan variabel lingkungan:
GEMINI_API_KEY
GEMINI_MODEL
Apidog mengurai respons text/event-stream dan menampilkan event pada tampilan Timeline saat event tiba. Gunakan tampilan ini untuk memeriksa:
- Ukuran setiap chunk
- Jeda antar-event
- Event yang tertahan atau dibuffer
-
usageMetadatapada event akhir
2. Simulasikan respons jauh lebih panjang
Gemini 3.8 Flash dibatasi hingga 65.536 token output. Untuk menguji parser dan timeout pada volume mendekati 1 juta token, jalankan mock SSE berikut.
# long_stream_mock.py: Gemini-shaped SSE for parser and timeout tests (fake data)
import json
import time
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
EVENTS = 20000
DELAY = 0.005
CHUNK = "lorem ipsum " * 40
class Handler(BaseHTTPRequestHandler):
def do_POST(self):
self.rfile.read(int(self.headers.get("Content-Length", 0)))
self.send_response(200)
self.send_header("Content-Type", "text/event-stream")
self.end_headers()
for i in range(EVENTS):
event = {
"candidates": [
{
"content": {
"parts": [
{
"text": CHUNK
}
]
}
}
]
}
if i == EVENTS - 1:
event["usageMetadata"] = {
"promptTokenCount": 1200,
"candidatesTokenCount": 950000,
"thoughtsTokenCount": 40000,
"totalTokenCount": 991200
}
self.wfile.write(
f"data: {json.dumps(event)}\n\n".encode()
)
self.wfile.flush()
time.sleep(DELAY)
ThreadingHTTPServer(("127.0.0.1", 8787), Handler).serve_forever()
Arahkan base URL environment mock ke:
http://127.0.0.1:8787
Lalu kirim request streaming yang sama. Stream ini berjalan sekitar dua menit—128 detik dalam pengujian—dan menghasilkan sekitar 9,6 juta karakter teks. Gunakan untuk menemukan:
- Parser yang masih buffering seluruh respons
- Proxy yang menahan event SSE
- Timeout baca terlalu pendek
- Worker yang terlalu banyak menggunakan memori
3. Tegaskan jumlah token dan batas biaya
Untuk request generateContent non-streaming, tambahkan assertion bahwa:
candidatesTokenCount + thoughtsTokenCount <= maxOutputTokens
Selain itu, hitung biaya dari usageMetadata dan pastikan nilainya tidak melampaui batas yang Anda terima untuk satu request. Panduan API Argon menyediakan skrip perhitungan biaya yang dapat digunakan kembali.
FAQ
Apakah 1 juta adalah jendela konteks Gemini 4 Argon?
Tidak. Angka 1 juta adalah batas output per respons, naik dari 64K. Google belum menerbitkan jendela input Argon.
Berapa biaya respons Argon 1 juta token?
Output berbiaya $10 pada tarif intro dan $20 pada tarif standar, ditambah biaya input. Lihat harga Gemini 4 Argon untuk skenario tambahan.
Bisakah saya menghasilkan respons 1 juta token hari ini?
Belum, kecuali organisasi Anda termasuk kelompok Fairwind dengan akses Argon. Gemini 3.8 Flash dan 3.1 Pro Preview membatasi output pada 65.536 token. Vals AI juga mencantumkan batas 262K untuk konfigurasi Argon yang diuji.
Apakah respons Argon yang panjang harus di-stream?
Google belum menerbitkan panduan streaming khusus Argon. Namun, request non-streaming yang berjalan beberapa menit akan terkena risiko timeout idle di seluruh stack. Gunakan streaming atau background execution melalui Interactions API.
Bagaimana Argon dibandingkan dengan GPT-6 Astra dan Claude Opus 5.5?
Keduanya membatasi output sinkron hingga 128K. Anthropic mengizinkan 300K pada Batch dengan header beta. Batas Argon 1 juta token yang diumumkan Google sekitar 8 kali lebih besar.
Langkah berikutnya
Tambahkan streaming dan batas output ke klien Gemini Anda sekarang menggunakan Gemini 3.8 Flash. Jalankan pengujian terhadap mock stream panjang hingga tidak ada lapisan di stack Anda yang memotong koneksi atau men-buffer seluruh respons.
Saat ID model Argon tersedia, cukup ubah GEMINI_MODEL, lalu jalankan kembali suite pengujian yang sama di Apidog.

Top comments (0)