Pemikiran Gemini

Model seri Gemini 2.5 menggunakan "proses berpikir" internal yang secara signifikan meningkatkan kemampuan penalaran dan perencanaan multi-langkahnya, sehingga sangat efektif untuk tugas kompleks seperti coding, matematika lanjutan, dan analisis data.

Panduan ini menunjukkan cara menggunakan kemampuan berpikir Gemini menggunakan Gemini API.

Sebelum memulai

Pastikan Anda menggunakan model seri 2.5 yang didukung untuk berpikir. Anda mungkin akan merasa lebih mudah jika menjelajahi model ini di AI Studio sebelum mempelajari API:

Membuat konten dengan pemikiran

Memulai permintaan dengan model pemikiran mirip dengan permintaan pembuatan konten lainnya. Perbedaan utamanya terletak pada penentuan salah satu model dengan dukungan pemikiran di kolom model, seperti yang ditunjukkan dalam contoh pembuatan teks berikut:

Python

from google import genai  client = genai.Client(api_key="GOOGLE_API_KEY") prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example." response = client.models.generate_content(     model="gemini-2.5-pro",     contents=prompt )  print(response.text) 

JavaScript

import { GoogleGenAI } from "@google/genai";  const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });  async function main() {   const prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example.";    const response = await ai.models.generateContent({     model: "gemini-2.5-pro",     contents: prompt,   });    console.log(response.text); }  main(); 

Go

// import packages here  func main() {   ctx := context.Background()   client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GOOGLE_API_KEY")))   if err != nil {     log.Fatal(err)   }   defer client.Close()    model := client.GenerativeModel("gemini-2.5-pro")   resp, err := model.GenerateContent(ctx, genai.Text("Explain the concept of Occam's Razor and provide a simple, everyday example."))   if err != nil {     log.Fatal(err)   }   fmt.Println(resp.Text()) } 

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent?key=$GOOGLE_API_KEY" \  -H 'Content-Type: application/json' \  -X POST \  -d '{    "contents": [      {        "parts": [          {            "text": "Explain the concept of Occam\''s Razor and provide a simple, everyday example."          }        ]      }    ]  }'  ``` 

Anggaran penalaran

Parameter thinkingBudget memandu model tentang jumlah token pemikiran yang akan digunakan saat membuat respons. Jumlah token yang lebih tinggi umumnya memungkinkan penalaran yang lebih mendetail, yang dapat bermanfaat untuk menangani lebih banyak tugas kompleks. Menetapkan thinkingBudget ke -1 akan mengaktifkan pemikiran dinamis, yang berarti model akan menyesuaikan anggaran berdasarkan kompleksitas permintaan.

thinkingBudget hanya didukung di Gemini 2.5 Flash, 2.5 Pro, dan 2.5 Flash-Lite. Bergantung pada perintah, model mungkin melebihi atau kurang dari anggaran token.

Berikut adalah detail konfigurasi thinkingBudget untuk setiap jenis model.

Model Setelan default
(Anggaran penalaran tidak ditetapkan)
Rentang Menonaktifkan pemikiran Mengaktifkan pemikiran dinamis
2.5 Pro Pemikiran dinamis: Model memutuskan kapan dan seberapa banyak harus berpikir 128 hingga 32768 T/A: Tidak dapat menonaktifkan pemikiran thinkingBudget = -1
Flash 2,5 Pemikiran dinamis: Model memutuskan kapan dan seberapa banyak harus berpikir 0 hingga 24576 thinkingBudget = 0 thinkingBudget = -1
2.5 Flash Lite Model tidak berpikir 512 hingga 24576 thinkingBudget = 0 thinkingBudget = -1

Python

from google import genai from google.genai import types  client = genai.Client()  response = client.models.generate_content(     model="gemini-2.5-pro",     contents="Provide a list of 3 famous physicists and their key contributions",     config=types.GenerateContentConfig(         thinking_config=types.ThinkingConfig(thinking_budget=1024)     ), )  print(response.text) 

JavaScript

import { GoogleGenAI } from "@google/genai";  const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });  async function main() {   const response = await ai.models.generateContent({     model: "gemini-2.5-pro",     contents: "Provide a list of 3 famous physicists and their key contributions",     config: {       thinkingConfig: {         thinkingBudget: 1024,       },     },   });    console.log(response.text); }  main(); 

Go

package main  import (   "context"   "fmt"   "google.golang.org/genai"   "os" )  func main() {   ctx := context.Background()   client, _ := genai.NewClient(ctx, &genai.ClientConfig{     APIKey:  os.Getenv("GOOGLE_API_KEY"),     Backend: genai.BackendGeminiAPI,   })    thinkingBudgetVal := int32(1024)    contents := genai.Text("Provide a list of 3 famous physicists and their key contributions")   model := "gemini-2.5-pro"   resp, _ := client.Models.GenerateContent(ctx, model, contents, &genai.GenerateContentConfig{     ThinkingConfig: &genai.ThinkingConfig{       ThinkingBudget: &thinkingBudgetVal,     },   })  fmt.Println(resp.Text()) } 

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent?key=$GOOGLE_API_KEY" \ -H 'Content-Type: application/json' \ -X POST \ -d '{   "contents": [     {       "parts": [         {           "text": "Provide a list of 3 famous physicists and their key contributions"         }       ]     }   ],   "generationConfig": {     "thinkingConfig": {           "thinkingBudget": 1024     }   } }' 

Ringkasan pemikiran (Eksperimental)

Ringkasan pemikiran adalah versi gabungan dari pemikiran mentah model dan menawarkan insight tentang proses penalaran internal model. Perhatikan bahwa anggaran pemikiran berlaku untuk pemikiran mentah model, bukan ringkasan pemikiran.

Anda dapat mengaktifkan ringkasan pemikiran dengan menetapkan includeThoughts ke true dalam konfigurasi permintaan. Kemudian, Anda dapat mengakses ringkasan dengan melakukan iterasi melalui parts parameter response, dan memeriksa boolean thought.

Berikut adalah contoh yang menunjukkan cara mengaktifkan dan mengambil ringkasan pemikiran tanpa streaming, yang menampilkan satu ringkasan pemikiran akhir dengan respons:

Python

from google import genai from google.genai import types  client = genai.Client(api_key="GOOGLE_API_KEY") prompt = "What is the sum of the first 50 prime numbers?" response = client.models.generate_content(   model="gemini-2.5-pro",   contents=prompt,   config=types.GenerateContentConfig(     thinking_config=types.ThinkingConfig(       include_thoughts=True     )   ) )  for part in response.candidates[0].content.parts:   if not part.text:     continue   if part.thought:     print("Thought summary:")     print(part.text)     print()   else:     print("Answer:")     print(part.text)     print() 

JavaScript

import { GoogleGenAI } from "@google/genai";  const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });  async function main() {   const response = await ai.models.generateContent({     model: "gemini-2.5-pro",     contents: "What is the sum of the first 50 prime numbers?",     config: {       thinkingConfig: {         includeThoughts: true,       },     },   });    for (const part of response.candidates[0].content.parts) {     if (!part.text) {       continue;     }     else if (part.thought) {       console.log("Thoughts summary:");       console.log(part.text);     }     else {       console.log("Answer:");       console.log(part.text);     }   } }  main(); 

Go

package main  import (   "context"   "fmt"   "google.golang.org/genai"   "os" )  func main() {   ctx := context.Background()   client, _ := genai.NewClient(ctx, &genai.ClientConfig{     APIKey:  os.Getenv("GOOGLE_API_KEY"),     Backend: genai.BackendGeminiAPI,   })    contents := genai.Text("What is the sum of the first 50 prime numbers?")   model := "gemini-2.5-pro"   resp, _ := client.Models.GenerateContent(ctx, model, contents, &genai.GenerateContentConfig{     ThinkingConfig: &genai.ThinkingConfig{       IncludeThoughts: true,     },   })    for _, part := range resp.Candidates[0].Content.Parts {     if part.Text != "" {       if part.Thought {         fmt.Println("Thoughts Summary:")         fmt.Println(part.Text)       } else {         fmt.Println("Answer:")         fmt.Println(part.Text)       }     }   } } 

Berikut adalah contoh penggunaan pemikiran dengan streaming, yang menampilkan ringkasan inkremental yang berkelanjutan selama pembuatan:

Python

from google import genai from google.genai import types  client = genai.Client(api_key="GOOGLE_API_KEY")  prompt = """ Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue. The person who lives in the red house owns a cat. Bob does not live in the green house. Carol owns a dog. The green house is to the left of the red house. Alice does not own a cat. Who lives in each house, and what pet do they own? """  thoughts = "" answer = ""  for chunk in client.models.generate_content_stream(     model="gemini-2.5-pro",     contents=prompt,     config=types.GenerateContentConfig(       thinking_config=types.ThinkingConfig(         include_thoughts=True       )     ) ):   for part in chunk.candidates[0].content.parts:     if not part.text:       continue     elif part.thought:       if not thoughts:         print("Thoughts summary:")       print(part.text)       thoughts += part.text     else:       if not answer:         print("Thoughts summary:")       print(part.text)       answer += part.text 

JavaScript

import { GoogleGenAI } from "@google/genai";  const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });  const prompt = `Alice, Bob, and Carol each live in a different house on the same street: red, green, and blue. The person who lives in the red house owns a cat. Bob does not live in the green house. Carol owns a dog. The green house is to the left of the red house. Alice does not own a cat. Who lives in each house, and what pet do they own?`;  let thoughts = ""; let answer = "";  async function main() {   const response = await ai.models.generateContentStream({     model: "gemini-2.5-pro",     contents: prompt,     config: {       thinkingConfig: {         includeThoughts: true,       },     },   });    for await (const chunk of response) {     for (const part of chunk.candidates[0].content.parts) {       if (!part.text) {         continue;       } else if (part.thought) {         if (!thoughts) {           console.log("Thoughts summary:");         }         console.log(part.text);         thoughts = thoughts + part.text;       } else {         if (!answer) {           console.log("Answer:");         }         console.log(part.text);         answer = answer + part.text;       }     }   } }  await main(); 

Harga

Jika penalaran diaktifkan, harga respons adalah jumlah token output dan token penalaran. Anda bisa mendapatkan jumlah total token pemikiran yang dihasilkan dari kolom thoughtsTokenCount.

Python

# ... print("Thoughts tokens:",response.usage_metadata.thoughts_token_count) print("Output tokens:",response.usage_metadata.candidates_token_count) 

JavaScript

// ... console.log(`Thoughts tokens: ${response.usageMetadata.thoughtsTokenCount}`); console.log(`Output tokens: ${response.usageMetadata.candidatesTokenCount}`); 

Go

// ... usageMetadata, err := json.MarshalIndent(response.UsageMetadata, "", "  ") if err != nil {   log.Fatal(err) } fmt.Println("Thoughts tokens:", string(usageMetadata.thoughts_token_count)) fmt.Println("Output tokens:", string(usageMetadata.candidates_token_count)) 

Model pemikiran menghasilkan pemikiran lengkap untuk meningkatkan kualitas respons akhir, lalu menghasilkan ringkasan untuk memberikan insight tentang proses pemikiran. Jadi, harga didasarkan pada token pemikiran lengkap yang perlu dihasilkan model untuk membuat ringkasan, meskipun hanya ringkasan yang merupakan output dari API.

Anda dapat mempelajari token lebih lanjut di panduan Penghitungan token.

Model yang Didukung

Anda dapat menemukan semua kemampuan model di halaman ringkasan model.

Model Ringkasan pemikiran Anggaran penalaran
Gemini 2.5 Flash ✔️ ✔️
Gemini 2.5 Pro ✔️ ✔️
Gemini 2.5 Flash Lite ✔️ ✔️

Praktik terbaik

Bagian ini mencakup beberapa panduan untuk menggunakan model pemikiran secara efisien. Seperti biasa, mengikuti panduan dan praktik terbaik perintah kami akan memberi Anda hasil terbaik.

Proses debug dan kemudi

  • Tinjau penalaran: Jika Anda tidak mendapatkan respons yang diharapkan dari model pemikiran, sebaiknya analisis ringkasan pemikiran Gemini dengan cermat. Anda dapat melihat cara model ini mengelompokkan tugas dan mencapai kesimpulannya, serta menggunakan informasi tersebut untuk memperbaiki hasil yang tepat.

  • Berikan Panduan dalam Penalaran: Jika Anda menginginkan output yang sangat panjang, sebaiknya berikan panduan dalam perintah untuk membatasi jumlah pemikiran yang digunakan model. Hal ini memungkinkan Anda mencadangkan lebih banyak output token untuk respons Anda.

Kompleksitas tugas

  • Tugas Mudah (Pemikiran dapat NONAKTIF): Untuk permintaan sederhana yang tidak memerlukan pemikiran yang kompleks, seperti pengambilan atau klasifikasi fakta, pemikiran tidak diperlukan. Contohnya mencakup:
    • "Di mana DeepMind didirikan?"
    • "Apakah email ini meminta pertemuan atau hanya memberikan informasi?"
  • Tugas Sedang (Default/Sedikit Pemikiran): Banyak permintaan umum yang mendapatkan manfaat dari tingkat pemrosesan langkah demi langkah atau pemahaman yang lebih mendalam. Gemini dapat menggunakan kemampuan pemikiran secara fleksibel untuk tugas seperti:
    • Buat analogi antara fotosintesis dan pertumbuhan.
    • Bandingkan dan jelaskan perbedaan antara mobil listrik dan mobil hibrida.
  • Tugas Sulit (Kemampuan Pemikiran Maksimal): Untuk tantangan yang benar-benar rumit, seperti menyelesaikan masalah matematika atau tugas coding yang rumit, sebaiknya tetapkan anggaran pemikiran yang tinggi. Jenis tugas ini mengharuskan model untuk menggunakan kemampuan penalaran dan perencanaan penuhnya, yang sering kali melibatkan banyak langkah internal sebelum memberikan jawaban. Contohnya mencakup:
    • Selesaikan masalah 1 di AIME 2025: Temukan jumlah semua basis bilangan bulat b > 9 yang 17b adalah pembagi dari 97b.
    • Tulis kode Python untuk aplikasi web yang memvisualisasikan data pasar saham real-time, termasuk autentikasi pengguna. Buat sehemat mungkin.

Berpikir dengan alat dan kemampuan

Model pemikiran berfungsi dengan semua alat dan kemampuan Gemini. Hal ini memungkinkan model berinteraksi dengan sistem eksternal, mengeksekusi kode, atau mengakses informasi real-time, dengan menggabungkan hasilnya ke dalam penalaran dan respons akhir.

  • Alat penelusuran memungkinkan model membuat kueri Google Penelusuran untuk menemukan informasi terbaru atau informasi di luar data pelatihannya. Hal ini berguna untuk pertanyaan tentang peristiwa terbaru atau topik yang sangat spesifik.

  • Alat eksekusi kode memungkinkan model membuat dan menjalankan kode Python untuk melakukan penghitungan, memanipulasi data, atau memecahkan masalah yang paling baik ditangani secara algoritmis. Model menerima output kode dan dapat menggunakannya dalam responsnya.

  • Dengan output terstruktur, Anda dapat membatasi Gemini untuk merespons dengan JSON. Hal ini sangat berguna untuk mengintegrasikan output model ke dalam aplikasi.

  • Panggilan fungsi menghubungkan model pemikiran ke alat dan API eksternal, sehingga dapat menentukan kapan harus memanggil fungsi yang tepat dan parameter apa yang harus disediakan.

  • Konteks URL memberi model URL sebagai konteks tambahan untuk perintah Anda. Model kemudian dapat mengambil konten dari URL dan menggunakan konten tersebut untuk menginformasikan dan membentuk responsnya.

Anda dapat mencoba contoh penggunaan alat dengan model pemikiran di Buku masak pemikiran.

Apa langkah selanjutnya?

  • Untuk mempelajari contoh yang lebih mendalam, seperti:

    • Menggunakan alat dengan pemikiran
    • Streaming dengan pemikiran
    • Menyesuaikan anggaran penalaran untuk hasil yang berbeda

    dan lainnya, coba Buku resep pemikiran kami.

  • Cakupan pemikiran kini tersedia di panduan Kompatibilitas OpenAI kami.

  • Untuk mengetahui info selengkapnya tentang Gemini 2.5 Pro, Gemini Flash 2.5, dan Gemini 2.5 Flash-Lite, buka halaman model.