Gemini düşünüyor

Gemini 3 ve 2.5 serisi modeller, akıl yürütme ve çok adımlı planlama yeteneklerini önemli ölçüde geliştiren dahili bir "düşünme süreci" kullanır. Bu sayede kodlama, ileri matematik ve veri analizi gibi karmaşık görevlerde oldukça etkili olurlar.

Bu kılavuzda, Gemini API'yi kullanarak Gemini'ın düşünme özellikleriyle nasıl çalışacağınız gösterilmektedir.

Düşünerek içerik üretme

Düşünme modeliyle istek başlatmak, diğer içerik oluşturma isteklerine benzer. Temel fark, model alanında düşünme desteği olan modellerden birini belirtmektir:

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3-flash-preview",
    input="Explain the concept of Occam's Razor and provide a simple, everyday example."
)
print(interaction.steps[-1].content[0].text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
    model: "gemini-3-flash-preview",
    input: "Explain the concept of Occam's Razor and provide a simple, everyday example."
});
console.log(interaction.steps.at(-1).content[0].text);

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gemini-3-flash-preview",
    "input": "Explain the concept of Occam'\''s Razor and provide a simple example."
  }'

Düşünce özetleri

Düşünce özetleri, modelin dahili akıl yürütme süreci hakkında bilgi verir. Varsayılan olarak yalnızca son çıktı döndürülür. thinking_summaries ile düşünce özetlerini etkinleştirebilirsiniz:

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3-flash-preview",
    input="What is the sum of the first 50 prime numbers?",
    generation_config={
        "thinking_summaries": "auto"
    }
)

for step in interaction.steps:
    if step.type == "thought":
        print("Thought summary:")
        for content_block in step.summary:
            if content_block.type == "text":
                print(content_block.text)
        print()
    elif step.type == "model_output":
        for content_block in step.content:
            if content_block.type == "text":
                print("Answer:")
                print(content_block.text)
                print()

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
    model: "gemini-3-flash-preview",
    input: "What is the sum of the first 50 prime numbers?",
    generationConfig: {
        thinkingSummaries: "auto"
    }
});

for (const step of interaction.steps) {
    if (step.type === "thought") {
        console.log("Thought summary:");
        for (const contentBlock of step.summary) {
            if (contentBlock.type === "text") console.log(contentBlock.text);
        }
    } else if (step.type === "model_output") {
        for (const contentBlock of step.content) {
            if (contentBlock.type === "text") {
                console.log("Answer:");
                console.log(contentBlock.text);
            }
        }
    }
}

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gemini-3-flash-preview",
    "input": "What is the sum of the first 50 prime numbers?",
    "generationConfig": {
      "thinkingSummaries": "auto"
    }
  }'

Düşünerek izleme

Oluşturma sırasında artımlı düşünce özetleri almak için akışı kullanın. Bu işlem, oluşturuldukça artımlı özetler döndürür:

Python

from google import genai

client = genai.Client()

prompt = """
Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue.
Alice does not live in the red house.
Bob does not live in the green house.
Carol does not live in the red or green house.
Which house does each person live in?
"""

thoughts = ""
answer = ""

stream = client.interactions.create(
    model="gemini-3-flash-preview",
    input=prompt,
    generation_config={
        "thinking_summaries": "auto"
    },
    stream=True
)

thoughts = ""
answer = ""

for event in stream:
    if event.event_type == "step.delta":
        if event.delta.type == "thought":
            if not thoughts:
                print("Thinking...")
            summary_text = getattr(event.delta, 'text', '')
            print(f"[Thought] {summary_text}", end="")
            thoughts += summary_text
        elif event.delta.type == "text" and event.delta.text:
            if not answer:
                print("\nAnswer:")
            print(event.delta.text, end="")
            answer += event.delta.text

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const prompt = `Alice, Bob, and Carol each live in a different house on the same
street: red, green, and blue. Alice does not live in the red house.
Bob does not live in the green house.
Carol does not live in the red or green house.
Which house does each person live in?`;

let thoughts = "";
let answer = "";

const stream = await client.interactions.create({
    model: "gemini-3-flash-preview",
    input: prompt,
    generationConfig: {
        thinkingSummaries: "auto"
    },
    stream: true
});

for await (const event of stream) {
    if (event.type === "step.delta") {
        if (event.delta.type === "thought") {
            if (!thoughts) console.log("Thinking...");
            process.stdout.write(`[Thought] ${event.delta.text || ""}`);
            thoughts += event.delta.text || "";
        } else if (event.delta.type === "text" && event.delta.text) {
            if (!answer) console.log("\nAnswer:");
            process.stdout.write(event.delta.text);
            answer += event.delta.text;
        }
    }
}

Kontrollü düşünme

Gemini modelleri, varsayılan olarak dinamik düşünme özelliğini kullanır ve isteğin karmaşıklığına göre akıl yürütme çabasını otomatik olarak ayarlar. Ancak bu davranışı yapılandırma parametrelerini kullanarak kontrol edebilirsiniz.

Düşünme düzeyleri (Gemini 3)

Gemini 3 modelleri ve sonraki sürümler için önerilen thinking_level parametresi, akıl yürütme davranışını kontrol etmenizi sağlar.

Düşünme Düzeyi Gemini 3.1 Pro Gemini 3 Pro (Kullanımdan kaldırıldı) Gemini 3 Flash Açıklama
minimal Desteklenmiyor Desteklenmiyor Destekleniyor Çoğu sorgu için "düşünme" ayarıyla eşleşir. Model, karmaşık kodlama görevlerinde çok az düşünebilir. Sohbet veya yüksek gönderim hacmine sahip uygulamalarda gecikmeyi en aza indirir. minimal, düşünme özelliğinin kapalı olduğunu garanti etmez.
low Destekleniyor Destekleniyor Destekleniyor Gecikmeyi ve maliyeti en aza indirir. Talimatları uygulama, sohbet veya yüksek işleme hızlı uygulamalar için en iyisidir.
medium Destekleniyor Desteklenmiyor Destekleniyor Çoğu görev için dengeli düşünme
high Destekleniyor (Varsayılan, Dinamik) Destekleniyor (Varsayılan, Dinamik) Destekleniyor (Varsayılan, Dinamik) Akıl yürütme derinliğini en üst düzeye çıkarır. Modelin ilk (düşünme içermeyen) çıkış jetonuna ulaşması önemli ölçüde daha uzun sürebilir ancak çıkış daha dikkatli bir şekilde gerekçelendirilir.

Python

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3-flash-preview",
    input="Provide a list of 3 famous physicists and their key contributions",
    generation_config={
        "thinking_level": "low"
    }
)
print(interaction.steps[-1].content[0].text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

const interaction = await client.interactions.create({
    model: "gemini-3-flash-preview",
    input: "Provide a list of 3 famous physicists and their key contributions",
    generationConfig: {
        thinkingLevel: "low"
    }
});
console.log(interaction.steps.at(-1).content[0].text);

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gemini-3-flash-preview",
    "input": "Provide a list of 3 famous physicists and their key contributions",
    "generation_config": {
      "thinking_level": "low"
    }
  }'

Gemini 3 Pro'da düşünme özelliğini devre dışı bırakamazsınız. Gemini 3 Flash da tam düşünme kapatma özelliğini desteklemez ancak minimal ayarı, modelin düşünmeyeceği anlamına gelir (ancak yine de düşünebilir).

Düşünce imzaları

Gemini API durum bilgisi içermez. Bu nedenle model, her API isteğini bağımsız olarak ele alır ve çok adımlı etkileşimlerde önceki adımlardaki düşünce bağlamına erişemez.

Çok turlu etkileşimlerde düşünce bağlamının korunmasını sağlamak için Gemini, modelin dahili düşünce sürecinin şifrelenmiş temsilleri olan düşünce imzalarını döndürür.

  • Gemini 2.5 modelleri, düşünme etkinleştirildiğinde ve istek işlev çağrısı, özellikle de işlev bildirimleri içerdiğinde düşünce imzaları döndürür.
  • Gemini 3 modelleri, her tür parça için düşünce imzaları döndürebilir. Tüm imzaları her zaman alındığı şekilde geri geçirmenizi öneririz ancak bu, işlev çağrısı imzaları için zorunludur. Daha fazla bilgi için Düşünce İmzaları sayfasını inceleyin.
  • İmzalar, yanıttaki diğer bölümlerle birlikte modelden döndürülür. Örneğin, işlev çağrısı veya metin bölümleri. Yanıtın tamamını sonraki dönüşlerde tüm parçalarıyla birlikte modele geri gönderin.
  • İmzalı bölümleri birleştirmeyin.
  • Bir bölümü imzalı, diğer bölümü imzasız olarak birleştirmeyin.

Fiyatlandırma

Düşünme özelliği etkinleştirildiğinde yanıt fiyatlandırması, çıkış jetonlarının ve düşünme jetonlarının toplamıdır. Oluşturulan düşünce jetonlarının toplam sayısını total_thought_tokens alanından alabilirsiniz.

Python

# ...
print("Thoughts tokens:", interaction.usage.total_thought_tokens)
print("Output tokens:", interaction.usage.total_output_tokens)

JavaScript

// ...
console.log(`Thoughts tokens: ${interaction.usage.totalThoughtTokens}`);
console.log(`Output tokens: ${interaction.usage.totalOutputTokens}`);

Düşünme modelleri, nihai yanıtın kalitesini artırmak için tam düşünceler üretir ve ardından düşünce süreci hakkında bilgi vermek için özetler oluşturur. Fiyatlandırma, API'den yalnızca özet çıkışı yapılmasına rağmen modelin oluşturması gereken tam düşünce jetonlarına göre belirlenir.

Jetonlar hakkında daha fazla bilgiyi Jeton sayımı kılavuzunda bulabilirsiniz.

En iyi uygulamalar

Bu bölümde, düşünce modellerini verimli bir şekilde kullanmayla ilgili yönergeler yer almaktadır.

Hata ayıklama ve yönlendirme

  • Akıl yürütmeyi inceleme: Düşünme modellerinden beklediğiniz yanıtı alamadığınızda Gemini'ın düşünce özetlerini dikkatlice analiz etmek faydalı olabilir. Görevi nasıl parçaladığını ve sonuca nasıl ulaştığını görebilir, bu bilgileri kullanarak doğru sonuçlara ulaşmak için düzeltmeler yapabilirsiniz.

  • Gerekçelendirme konusunda rehberlik etme: Özellikle uzun bir çıktı almak istiyorsanız isteminizde rehberlik sağlayarak modelin düşünme miktarını sınırlayabilirsiniz. Bu sayede, yanıtınız için daha fazla jeton çıktısı ayırabilirsiniz.

Görevin karmaşıklığı

  • Kolay görevler (Düşünme devre dışı olabilir): Karmaşık akıl yürütme gerektirmeyen basit isteklerde düşünme gerekli değildir. Örnekler:
    • "DeepMind nerede kuruldu?"
    • "Bu e-postada toplantı mı isteniyor yoksa sadece bilgi mi veriliyor?"
  • Orta zorluktaki görevler (Varsayılan/Biraz düşünme): Birçok yaygın istek, adım adım işleme veya daha derin bir anlayıştan yararlanır. Örnekler:
    • Fotosentez ve büyüme arasındaki benzerlikleri açıklayın.
    • Elektrikli arabalar ile hibrit arabaları karşılaştırın ve aralarındaki farkları belirtin.
  • Zor görevler (Maksimum düşünme kapasitesi): Gerçekten karmaşık zorluklar için yüksek bir düşünme bütçesi ayarlamanızı öneririz. Bu tür görevler, modelin tüm muhakeme ve planlama yeteneklerini kullanmasını gerektirir. Örnekler:
    • AIME 2025'teki 1. problemi çözün: Tüm tam sayı tabanlarının toplamını bulun. b > 9...
    • Kullanıcı kimlik doğrulaması da dahil olmak üzere gerçek zamanlı borsa verilerini görselleştiren bir web uygulaması için Python kodu yazın. Mümkün olduğunca verimli hale getirin.

Desteklenen modeller

Model Varsayılan Düşünme Desteklenen Seviyeler
gemini-3.1-pro-preview Açık (yüksek) düşük, orta, yüksek
gemini-3-flash-preview Açık (yüksek) en az, düşük, orta, yüksek
gemini-3-pro-preview Açık (yüksek) düşük, yüksek
gemini-2.5-pro Açık Bütçe: 128-32768
gemini-2.5-flash Açık Bütçe: 0-24576
gemini-2.5-flash-lite Kapalı Bütçe: 0-24576

Düşünen modeller, Gemini'ın tüm araçları ve özellikleriyle çalışır. Bu sayede modeller, harici sistemlerle etkileşime girebilir, kod yürütebilir veya gerçek zamanlı bilgilere erişebilir ve sonuçları muhakemelerine dahil edebilir.

Sırada ne var?