DEV Community

Cover image for Gemini 4 Argon 1M Çıkış Tokenları: Milyon Token Yanıtı API Yığınınızı Nasıl Etkiler
Tobias Hoffmann
Tobias Hoffmann

Posted on Originally published at apidog.com

Gemini 4 Argon 1M Çıkış Tokenları: Milyon Token Yanıtı API Yığınınızı Nasıl Etkiler

Gemini 4 Argon’un öne çıkan özelliği olan 1 milyon jeton, bağlam penceresi değil, çıktı sınırıdır. Google, tek bir Argon yanıtının önceki 64K sınırının yaklaşık 16 katı olan 1 milyon jetona ulaşabileceğini ve Argon’un giriş penceresini henüz yayımlamadığını belirtiyor. Henüz çağrılabilecek bir model de yok: Argon bugün yalnızca Fairwind Programı savunucularına sunuluyor; Google erişimi açtıktan sonra ücretli API müşterileri de erişebilecek. Ayrıntılar için yayın tarihi ve erişim kılavuzuna bakın.

Apidog'u bugün deneyin

Bu kadar uzun bir yanıt, çoğu API yığınının dayandığı üç varsayımı bozar:

  1. Çağrılar saniyeler içinde tamamlanır.
  2. Yanıt gövdesi belleğe sığar.
  3. İstek maliyeti küçük ve öngörülebilirdir.

Bu rehberde, erişim açılmadan önce tam kapasiteli bir yanıtın maliyetini, akışını, zaman aşımlarını, çıktı sınırlarını, depolamayı ve bunları Apidog ile nasıl test edeceğinizi ele alacağız. Modelin genel görünümü için Gemini 4 Argon nedir, istek yapıları için Gemini 4 Argon API kılavuzu yazılarına bakın.

1M çıktı jetonu, 1M bağlam penceresi değildir

Argon için bazı sayfalar 1M sayısını bağlam penceresi olarak tanımlıyor. Bu yanlış bir yorumdur.

Google’ın lansman yazısı, modelin çıktı jetonu limitini “sektör lideri 1M jetona” genişlettiğini söylüyor. Bu, Google’ın önceki en iyi Pro modeli olan Gemini 3.1 Pro Preview’daki 65.536 jetonluk çıktı sınırının yaklaşık 16 katıdır.

Giriş limiti ayrı bir değerdir ve Google henüz bunu yayımlamadı. Değerlendirme metodolojisinde 256K ile 1M jeton arasında istemler kullanılmış olsa da bu, bir özellik ilanı değil, değerlendirme alt kümesidir.

Çıktı tarafında da dikkat edilmesi gereken bir nokta vardır: Vals AI, test ettiği Argon yapılandırması için 262K maksimum çıktı listeliyor. Google model limitinin 1M olduğunu söylerken, en az bir üçüncü taraf değerlendirici kullandığı uç noktada daha düşük bir sınır gördü.

Model Yanıt başına maksimum çıktı Giriş veya bağlam penceresi
Gemini 4 Argon 1M (Google’ın belirttiği sınır) Yayınlanmadı
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 (922K maksimum giriş)
Claude Opus 5.5 128K (Beta başlığıyla Batch üzerinde 300K) 1M

Her rakip, senkron çıktıyı 128K ile sınırlandırıyor. Bu nedenle Argon’un belirtilen 1M limiti yaklaşık 8 kat daha yüksektir.

Google’ın gerekçesi muhakeme derinliğidir: yeterli alanla model, tek bir yörüngede yüz binlerce jeton üretebilir ve zor problemleri tek seferde çözebilir. Diğer sağlayıcıların uzun işleri nasıl ele aldığını görmek için Claude Opus 5.5’in 18 saatlik görevlerine ve GPT-6 Astra API kılavuzuna bakın.

Maksimum kapasiteli bir yanıtın maliyeti nedir?

Önce maliyet tavanını hesaplayın.

Argon’un tanıtım döneminde çıktı fiyatı 1M jeton başına 10$, sonrasında ise 20$ olarak faturalandırılır. Tam uzunlukta bir yanıtın yalnızca çıktı maliyeti:

  • Giriş dönemi: 1.000.000 × 10$/1M = 10,00$
  • Standart dönem: 1.000.000 × 20$/1M = 20,00$

Giriş maliyeti ayrıca eklenir. Örneğin 200.000 jetonluk bir istem:

  • Giriş dönemi fiyatlarıyla: 200.000 × 2$/1M = 0,40$
  • Standart fiyatlarla: 200.000 × 4$/1M = 0,80$

Bu durumda tek bir tam kapasiteli çağrı:

  • Giriş döneminde: 10,40$
  • Standart dönemde: 20,80$

100 çağrı çalıştıran bir gece işi, giriş dönemi fiyatlarıyla yaklaşık 1.040$ maliyet oluşturur.

Düşünce jetonları bu hesabı karmaşıklaştırabilir. Mevcut Gemini modellerinde düşünce jetonları çıktı olarak faturalandırılır. Google, Argon’un aynı kurala uyup uymadığını veya düşünce jetonlarının 1M sınırına dahil olup olmadığını henüz belirtmedi.

Bu nedenle kısa görünen bir yanıt bile yüksek çıktı maliyeti oluşturabilir. Daha fazla senaryo için Gemini 4 Argon fiyatlandırma kılavuzuna bakın.

Akış neden zorunludur?

Akışsız bir çağrı, model tüm yanıtı bitirene kadar hiçbir veri döndürmez. Yüz binlerce jetonluk üretimde bu durum uzun ve sessiz bir bağlantı demektir.

Bu sırada aşağıdaki bileşenlerden biri bağlantıyı kapatabilir:

  • HTTP istemcisi
  • Ters proxy
  • API ağ geçidi
  • Yük dengeleyici
  • Sunucusuz çalışma zamanı

Bunun yerine SSE akışı kullanın. generateContent çağrısında yöntemi aşağıdaki biçime dönüştürün:

:streamGenerateContent?alt=sse
Enter fullscreen mode Exit fullscreen mode

Google, her olayda kısmi aday içeriği içeren sunucu tarafından gönderilen olaylar (SSE) döndürür. Olayları geldikleri anda okuyun ve yazın; tüm gövdeyi bellekte birleştirmeyin.

Aşağıdaki örnek bugün Gemini 3.8 Flash ile çalışır. Argon model kimliği henüz yayımlanmadığı için model adı ortam değişkeninden alınır. Kurulum için Gemini 3.8 Flash API kılavuzuna bakabilirsiniz.

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 r, open("response.txt", "a", encoding="utf-8") as out:
    r.raise_for_status()

    for line in r.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", []):
                out.write(part.get("text", ""))

        out.flush()
        usage = event.get("usageMetadata", usage)

print(usage)
Enter fullscreen mode Exit fullscreen mode

Bu örnekte:

timeout=(10, 120)
Enter fullscreen mode Exit fullscreen mode
  • 10 saniye bağlantı zaman aşımı ayarlar.
  • 120 saniye okuma zaman aşımı ayarlar.

requests kütüphanesinde okuma zaman aşımı, toplam istek süresi değildir. Baytlar arasındaki en uzun boşluğu ifade eder. Akış sürekli veri gönderdiği sürece çağrı uzun süre çalışabilir.

Her parça doğrudan diske yazılır. Gemini 3.8 Flash’ta her olay çalışan bir usageMetadata değeri taşıyabilir; son olay, günlükleme ve faturalandırma için nihai jeton sayılarını verir.

Her atlamada zaman aşımlarını kontrol edin

İstemciniz tek sorun noktası değildir. Uzun akışlar birden fazla altyapı katmanından geçebilir.

Atlama noktası Kontrol edilmesi gereken Yanlış yapılandırmadaki belirti
HTTP istemcisi Okuma, boşta kalma ve toplam istek zaman aşımı Yalnızca uzun yanıtlarda akış ortasında istisna
Ters proxy Okuma zaman aşımı ve text/event-stream yanıt ara belleğe alma Olaylar toplu gelir veya akış kesilir
API ağ geçidi Maksimum istek süresi İstekler her seferinde aynı sürede başarısız olur
Yük dengeleyici Boşta kalma zaman aşımı İlk olaydan önceki uzun duraklamalarda bağlantı düşer
Sunucusuz fonksiyon Maksimum yürütme süresi Model yazmaya devam ederken fonksiyon sona erer

Uzun çağrılarınız her zaman aynı sürede kesiliyorsa sabit bir limit vardır. Bu durumda akış tek başına çözüm olmayabilir; işi istek-yanıt yolundan çıkarmanız gerekir.

Uzun işleri arka planda çalıştırın

En uzun işler için üretimi canlı HTTP bağlantısından ayırın.

Google’ın Etkileşimler API’si, uzun görevler için background=true ile arka plan yürütmesini destekler.

Uygulama yaklaşımı:

  1. Uzun görevi background=true ile başlatın.
  2. Depolamayı açık bırakın.
  3. Tamamlanmış etkileşimi Google’ın belgelerinde tanımlanan yöntemle alın.
  4. Yoklama uç noktalarını tahmin etmeyin; yalnızca belgelenen akışı kullanın.

Arka plan çalıştırmaları depolanmış etkileşimlere bağlıdır. Belgeler, store=false değerinin arka plan yürütme ile uyumsuz olduğunu belirtir. Bu nedenle bu tür isteklerde depolamayı kapatmayın.

Google yeni modellerin Etkileşimler API’sinde yayımlandığını söylediğinden, Argon’un uzun işlerini bu akış üzerinde planlamak mantıklıdır.

Çıktıyı bilinçli olarak sınırlayın

1M sınırı hedef değil, tavandır.

generateContent üzerinde her yanıtı şu alanla sınırlandırabilirsiniz:

{
  "generationConfig": {
    "maxOutputTokens": 60000
  }
}
Enter fullscreen mode Exit fullscreen mode

Gemini 3.8 Flash’ta düşünce jetonları bu sınıra dahil edilir. Örneğin 2.000 jetonla sınırlanan bir testte:

  • 1.340 düşünce jetonu
  • 656 görünür jeton

döndürülebilir.

Etkileşimler API’si kullanıyorsanız, çıktı sınırı alanını kullanmadan önce Google dokümanlarında doğrulayın.

Çağrı başına kabul ettiğiniz maliyete göre sınır belirleyin:

Çıktı sınırı En kötü durum çıktı maliyeti, standart dönem (20$/1M) Giriş dönemi (10$/1M)
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$

Bir yanıt sınıra ulaştığında erken kesilir. Bu yanıtı tamamlanmış kabul etmeyin.

Son olaydaki finishReason değerini kontrol edin:

MAX_TOKENS
Enter fullscreen mode Exit fullscreen mode

Bu değer, modelin çıktıyı belirlediğiniz limit nedeniyle durdurduğunu gösterir. Ardından iki seçeneğiniz vardır:

  • Takip çağrısında devam ettirmek
  • Bu iş için çıktı sınırını yükseltmek

Büyük çıktıları ara belleğe almadan depolayın ve ayrıştırın

Bir milyon jeton, yanıt başına megabaytlarca metin anlamına gelir. Çalışan süreçlerin bellek sınırına çarpmaması için aşağıdaki kuralları uygulayın:

  • Tek bir dev dize oluşturmak yerine parçaları geldikçe dosyaya veya çok parçalı nesne yüklemesine yazın.
  • Bağlantı kesilirse kısmi dosyayı saklayın. Baştan körlemesine tekrar denemek çıktıyı yeniden üretir ve yeniden faturalandırılır.
  • Yapısal veri gerekiyorsa JSON Lines isteyin. Böylece her satır, dev JSON belgesinin kapanmasını beklemeden ayrıştırılabilir.
  • Tüm yanıt gövdelerini loglamak yerine usageMetadata ve bayt sayısını kaydedin.
  • 800K jetonluk bir yanıt gelmeden önce veritabanı sütun limitlerini ve kuyruk mesajı boyutlarını kontrol edin.

Erişim açılmadan önce Apidog’da test edin

Argon erişimi açılmadan önce tüm akışı vekil veya yerel taklit üzerinden prova edebilirsiniz. Apidog’u indirin ve aşağıdaki üç kontrolü uygulayın.

1. Akışı izleyin

Gemini 3.8 Flash’a karşı SSE isteğini gönderin.

Ortam değişkenleri:

GEMINI_API_KEY
GEMINI_MODEL
Enter fullscreen mode Exit fullscreen mode

Apidog, text/event-stream yanıtlarını ayrıştırır ve her olayı Zaman Çizelgesi görünümünde geldikçe gösterir. Böylece şunları gözlemleyebilirsiniz:

  • Olay yığın boyutları
  • Olaylar arasındaki boşluklar
  • Nihai usageMetadata
  • Proxy veya istemci kaynaklı gecikmeler

2. Çok daha uzun sahte yanıt akışı çalıştırın

Gemini 3.8 Flash çıktısı 65.536 jetonla sınırlıdır. Daha büyük bir akış davranışını test etmek için yerelde Gemini biçimli bir SSE taklidi çalıştırın:

# long_stream_mock.py
# Parser ve timeout testleri için Gemini biçimli sahte SSE verisi

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()
Enter fullscreen mode Exit fullscreen mode

Apidog’da bir taklit ortam oluşturun ve temel URL’yi aşağıdaki adrese ayarlayın:

http://127.0.0.1:8787
Enter fullscreen mode Exit fullscreen mode

Ardından aynı akış isteğini bu ortam üzerinden gönderin.

Bu akış yaklaşık iki dakika sürer; testte 128 saniye sürdü ve yaklaşık 9,6 milyon karakter metin taşıdı. Bu yük, aşağıdaki sorunları görünür hale getirmek için yeterlidir:

  • Yanıtı ara belleğe alan ayrıştırıcılar
  • Olayları bekleten proxy’ler
  • Çok kısa okuma zaman aşımları
  • Bellekte tüm yanıtı birleştiren istemci kodu

3. Jeton sayılarını doğrulayın

Akışsız bir generateContent isteğinde aşağıdakileri kontrol edin:

candidatesTokenCount + thoughtsTokenCount <= belirlediğiniz çıktı sınırı
Enter fullscreen mode Exit fullscreen mode

Ayrıca hesaplanan maliyetin Argon fiyatlarında belirlediğiniz maliyet tavanının altında kaldığını doğrulayın.

Hazır maliyet betiği için Argon API kılavuzuna bakın.

SSS

1M, Gemini 4 Argon’un bağlam penceresi midir?

Hayır. 1M, yanıt başına çıktı sınırıdır ve 64K’dan artırılmıştır. Google, Argon’un giriş penceresini yayımlamadı.

1M jetonluk bir Argon yanıtının maliyeti ne kadardır?

Giriş fiyatlarıyla 10$, standart fiyatlarla 20$ çıktı maliyeti oluşur. Buna giriş maliyeti de eklenir. Daha fazla senaryo için Gemini 4 Argon fiyatlandırmasına bakın.

Bugün 1M jetonluk bir yanıt oluşturabilir miyim?

Kuruluşunuz Fairwind grubunda Argon erişimine sahip değilse hayır. Gemini 3.8 Flash ve 3.1 Pro Preview çıktıyı 65.536 jetonla sınırlar. Vals AI ise test ettiği Argon yapılandırmasında 262K maksimum çıktı listeler.

Uzun Argon yanıtlarını akışla mı aktarmak zorundayım?

Google, Argon için özel akış rehberliği yayımlamadı. Ancak dakikalarca süren akışsız çağrılar, altyapınızdaki her boşta kalma zaman aşımına maruz kalır. Akış kullanın veya Etkileşimler API’sinde arka plan yürütmesini tercih edin.

Argon’un çıktı sınırı GPT-6 Astra ve Claude Opus 5.5 ile nasıl karşılaştırılır?

Her ikisi de senkron çıktıyı 128K ile sınırlar. Anthropic, beta başlığıyla Batch üzerinde 300K’ya izin verir. Argon’un belirtilen 1M limiti bunun yaklaşık 8 katıdır.

Sıradaki adımınız

Şimdi Gemini istemcinize, Gemini 3.8 Flash üzerinde:

  1. SSE akışı ekleyin.
  2. Bir maxOutputTokens sınırı belirleyin.
  3. Yerel uzun akış taklidiyle test edin.
  4. Yığınınızdaki hiçbir bileşen akışı kesmeyene kadar zaman aşımlarını ayarlayın.
  5. Argon model kimliği yayımlandığında yalnızca GEMINI_MODEL değerini değiştirin.
  6. Aynı testleri Apidog üzerinde yeniden çalıştırın.

Top comments (0)