LLM & AI Modelleri

Gemini 3.8 Flash ve Project Astra: thinking_level Mimarisi ve WebSocket Canlı Ses/Video Ajanları

Google Gemini 3.8 Flash'ın yeni thinking_level kontrolü, Project Astra araştırma hattı ve Gemini Live API ile WebSocket tabanlı gerçek zamanlı medya streaming rehberi.

6 dk
Paylaş:XLinkedIn

Özet & Doğrudan Çözüm (TL;DR)

Google DeepMind'ın Gemini 3.8 Flash modeli, 1M token bağlam penceresi ve 64K çıktı sınırı ile üretim seviyesi yazılım mühendisliği ve ajan iş akışları için optimize edilmiş genel erişim (GA) modelidir. Modelde eski sayısal thinking_budget parametresi yerini thinking_level='low'|'medium'|'high' yapısına bırakmıştır. Eşzamanlı olarak Project Astra araştırma hattının üretim çıktısı olan Gemini Live API, WebSocket üzerinden çift yönlü (bidirectional) 16 kHz PCM16 ses ve gerçek zamanlı video karelerini işleyerek sesli/görsel ajan etkileşimleri sağlar.

Önemli Çıkarımlar:

  • thinking_level Standardı: Gemini 3.8 Flash'ta sayısal token bütçesi yerine low, medium (varsayılan) ve high kategorik seviyeleri.
  • WebSocket Tabanlı Live API: Tarayıcı tarafında WebRTC, backend/media edge ile Google Live API arasında WebSocket bağlantısı.
  • Gerçek Zamanlı Medya Sınırları: 16 kHz PCM16 mono ses parçacıkları ve yaklaşık 1 fps ayrık video kareleri ile düşük gecikmeli etkileşim.
  • DeepSWE Performansı: DeepSWE v1.1'de %73.7, Terminal-bench 2.1'de %89.4 başarı ile Flash sınıfında en güçlü kodlama/ajan performansı.

1. Gemini 3.8 Flash ve thinking_level Paradigması

Google DeepMind'ın Gemini 3.8 Flash modelinde en önemli mimari değişiklik, akıl yürütme bütçesinin sayısal token bütçesi (thinking_budget) yerine kategorik thinking_level ile yapılandırılmasıdır. Desteklenen seviyeler low, medium (varsayılan) ve high olarak belirlenmiştir.

Google'ın resmi üretim tavsiyelerinde, dağıtık sistemlerdeki yarış durumları (race conditions) ve kilitlenme analizleri için doğrudan thinking_level='medium' önerilmektedir. Sadece derin matematiksel ispat ve uç karmaşıklıktaki güvenlik denetimlerinde high seviyesine çıkılmalıdır.

2. Gemini 3.8 Flash Akıl Yürütme ve Yarış Durumu Analizi

Aşağıdaki Python kodu, ödeme yeniden deneme hattındaki yarış durumlarını analiz eden resmi Google GenAI SDK uygulamasını göstermektedir:

gemini_38_flash_reasoning.py
from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=(
        "Analyze a payment retry pipeline for race conditions. "
        "Return: invariant violations, minimal repro timeline, and a safe locking/idempotency redesign."
    ),
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_level="medium")
    ),
)

print(response.text)

3. Project Astra ve Gemini Live API: WebRTC Nerede, WebSocket Nerede?

Project Astra tek bir model adı değil; kesintisiz çok modlu algı, araç kullanımı ve düşük gecikmeli etkileşim araştırma hattıdır. Üretim API'sinde gerçek zamanlı medya Gemini Live API üzerinden WebSocket ile taşınır.

Tarayıcı veya mobil cihaz kullanıcıdan mikron/kamera verisini WebRTC ile uygulamanızın Media Edge/SFU sunucusuna iletir. Media Edge ise PCM16 16 kHz mono ses bloklarını Google GenAI Live API WebSocket oturumuna besler. Bu ayrım kimlik doğrulama, oran sınırlama (rate limiting) ve VAD (Voice Activity Detection) güvenliği için zorunludur.

gemini_live_audio.py
import asyncio
from pathlib import Path
from google import genai
from google.genai import types

MODEL = "gemini-3.1-flash-live-preview"
client = genai.Client()

async def main() -> None:
    config = {
        "response_modalities": ["AUDIO"],
        "input_audio_transcription": {},
    }
    async with client.aio.live.connect(model=MODEL, config=config) as session:
        pcm = Path("input.pcm").read_bytes()
        chunk_bytes = 3200  # ~100 ms @ 16kHz PCM16 mono
        for i in range(0, len(pcm), chunk_bytes):
            await session.send_realtime_input(
                audio=types.Blob(
                    data=pcm[i:i + chunk_bytes],
                    mime_type="audio/pcm;rate=16000",
                )
            )
        await session.send_realtime_input(audio_stream_end=True)
        async for msg in session.receive():
            content = msg.server_content
            if content and content.model_turn:
                for part in content.model_turn.parts:
                    if part.inline_data:
                        Path("output.pcm").open("ab").write(part.inline_data.data)

if __name__ == "__main__":
    asyncio.run(main())

Sıkça Sorulan Sorular

Gemini 3.8 Flash'ta 16K thinking budget atanabilir mi?

Hayır; Gemini 3.8 Flash'ta thinking_budget yerine thinking_level kullanılmalıdır. Medium iyi bir varsayılandır; yalnızca kıyaslamalarda anlamlı kalite artışı görülen görevlerde high seviyesine çıkılmalıdır.

Tarayıcıdan kamerayı doğrudan Gemini Live WebSocket'e bağlamak güvenli midir?

Üretimde istemciden doğrudan Google API'sine bağlanmak yerine backend veya media edge üzerinden kimlik doğrulama, kota denetimi ve ses yeniden örnekleme (resampling) uygulamak güvenlik açısından en doğru yaklaşımdır.

Doğrulanmış Kaynaklar ve Dokümantasyon

İlgili Teknik Rehberler

Bu mimariyle bağlantılı diğer üretim odaklı rehber ve vaka analizlerini inceleyin: