การคิดของ Gemini

โมเดลในซีรีส์ Gemini 3 และ 2.5 ใช้ "กระบวนการคิด" ภายใน ซึ่งช่วยปรับปรุงความสามารถในการให้เหตุผลและการวางแผนหลายขั้นตอนได้อย่างมาก ทำให้โมเดลมีประสิทธิภาพสูงสำหรับงานที่ซับซ้อน เช่น การเขียนโค้ด คณิตศาสตร์ขั้นสูง และการวิเคราะห์ข้อมูล

คู่มือนี้จะแสดงวิธีใช้ความสามารถด้านการคิดของ Gemini โดยใช้ Gemini API

สร้างเนื้อหาด้วยการคิด

การเริ่มคำขอด้วยโมเดลการคิดจะคล้ายกับการเริ่มคำขอสร้างเนื้อหาอื่นๆ ความแตกต่างที่สำคัญคือการระบุโมเดลที่มีการรองรับการคิดในช่อง model ดังนี้

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."
  }'

ข้อมูลสรุปความคิด

ข้อมูลสรุปความคิดจะให้ข้อมูลเชิงลึกเกี่ยวกับกระบวนการให้เหตุผลภายในของโมเดล โดยค่าเริ่มต้น ระบบจะแสดงเฉพาะเอาต์พุตสุดท้าย คุณสามารถเปิดใช้ข้อมูลสรุปความคิดได้ด้วย thinking_summaries ดังนี้

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"
    }
  }'

สตรีมด้วยการคิด

ใช้การสตรีมเพื่อรับข้อมูลสรุปความคิดแบบเพิ่มทีละส่วนระหว่างการสร้าง ซึ่งจะแสดงข้อมูลสรุปแบบเพิ่มทีละส่วนเมื่อมีการสร้าง

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;
        }
    }
}

ควบคุมการคิด

โมเดล Gemini จะคิดแบบไดนามิกโดยค่าเริ่มต้น ซึ่งจะปรับความพยายามในการให้เหตุผลโดยอัตโนมัติตามความซับซ้อนของคำขอ อย่างไรก็ตาม คุณสามารถควบคุมลักษณะการทำงานนี้ได้โดยใช้พารามิเตอร์การกำหนดค่า

ระดับการคิด (Gemini 3)

พารามิเตอร์ thinking_level ซึ่งแนะนำให้ใช้กับโมเดล Gemini 3 ขึ้นไป ช่วยให้คุณควบคุมลักษณะการทำงานในการให้เหตุผลได้

ระดับการคิด Gemini 3.1 Pro Gemini 3 Pro (เลิกใช้งานแล้ว) Gemini 3 Flash คำอธิบาย
minimal ไม่รองรับ ไม่รองรับ สิ่งที่ทำได้ ตรงกับการตั้งค่า "ไม่คิด" สำหรับการค้นหาส่วนใหญ่ โมเดลอาจคิดน้อยมากสำหรับงานเขียนโค้ดที่ซับซ้อน ลดเวลาในการตอบสนองสำหรับแอปพลิเคชันแชทหรือแอปพลิเคชันที่มีการส่งข้อความปริมาณมาก โปรดทราบว่า minimal ไม่ได้รับประกันว่าจะปิดการคิด
low สิ่งที่ทำได้ สิ่งที่ทำได้ สิ่งที่ทำได้ ลดเวลาในการตอบสนองและค่าใช้จ่าย เหมาะที่สุดสำหรับการทำตามคำแนะนำ แชท หรือแอปพลิเคชันที่มีปริมาณงานสูง
medium สิ่งที่ทำได้ ไม่รองรับ สิ่งที่ทำได้ การคิดที่สมดุลสำหรับงานส่วนใหญ่
high สิ่งที่ทำได้ (ค่าเริ่มต้น, ไดนามิก) สิ่งที่ทำได้ (ค่าเริ่มต้น, ไดนามิก) สิ่งที่ทำได้ (ค่าเริ่มต้น, ไดนามิก) เพิ่มความลึกในการให้เหตุผลสูงสุด โมเดลอาจใช้เวลานานขึ้นอย่างมากในการ สร้างโทเค็นเอาต์พุตแรก (ที่ไม่ใช่การคิด) แต่เอาต์พุตจะได้รับการพิจารณาอย่างรอบคอบมากขึ้น

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 ไม่ได้ Gemini 3 Flash ก็ไม่รองรับการปิดการคิดทั้งหมดเช่นกัน แต่การตั้งค่า minimal หมายความว่าโมเดลอาจไม่คิด (แม้ว่ายังคงมีความเป็นไปได้ที่จะคิด)

ลายเซ็นความคิด

Gemini API เป็นแบบไม่เก็บสถานะ ดังนั้นโมเดลจะถือว่าคำขอ API ทุกรายการเป็นอิสระจากกัน และไม่มีสิทธิ์เข้าถึงบริบทความคิดจากรอบก่อนหน้าในการโต้ตอบหลายรอบ

Gemini จะแสดงผลลายเซ็นความคิด ซึ่งเป็นการแสดงกระบวนการคิดภายในของโมเดลที่เข้ารหัสไว้ เพื่อให้สามารถรักษาบริบทความคิดในการโต้ตอบหลายรอบได้

  • โมเดล Gemini 2.5 จะแสดงผลลายเซ็นความคิดเมื่อเปิดใช้การคิดและ คำขอมีการเรียกใช้ฟังก์ชัน โดยเฉพาะการประกาศฟังก์ชัน
  • โมเดล Gemini 3 อาจแสดงผลลายเซ็นความคิดสำหรับชิ้นส่วนทุกประเภท เราขอแนะนำให้ส่งลายเซ็นทั้งหมดกลับไปตามที่ได้รับเสมอ แต่การส่งลายเซ็นการเรียกใช้ฟังก์ชันกลับไปเป็น สิ่งที่ต้องทำ อ่านข้อมูลเพิ่มเติมได้ในหน้า ลายเซ็นความคิด
  • ระบบจะแสดงผลลายเซ็นจากโมเดลภายในชิ้นส่วนอื่นๆ ในคำตอบ เช่น การเรียกใช้ฟังก์ชันหรือชิ้นส่วนข้อความ ส่งคำตอบทั้งหมด พร้อมชิ้นส่วนทั้งหมดกลับไปยังโมเดลในรอบถัดไป
  • อย่าเชื่อมชิ้นส่วนที่มีลายเซ็นเข้าด้วยกัน
  • อย่าผสานชิ้นส่วนหนึ่งที่มีลายเซ็นกับอีกชิ้นส่วนหนึ่งที่ไม่มีลายเซ็น

ราคา

เมื่อเปิดใช้การคิด ราคาคำตอบจะเป็นผลรวมของโทเค็นเอาต์พุตและโทเค็นการคิด คุณสามารถดูจำนวนโทเค็นการคิดทั้งหมดที่สร้างขึ้นได้จากช่อง total_thought_tokens

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}`);

โมเดลการคิดจะสร้างความคิดทั้งหมดเพื่อปรับปรุงคุณภาพของคำตอบสุดท้าย แล้วแสดงผลข้อมูลสรุปเพื่อให้ข้อมูลเชิงลึกเกี่ยวกับกระบวนการคิด ราคาจะอิงตามโทเค็นความคิดทั้งหมดที่โมเดลต้องสร้าง แม้ว่า API จะแสดงผลเฉพาะข้อมูลสรุปก็ตาม

ดูข้อมูลเพิ่มเติมเกี่ยวกับโทเค็นได้ในคู่มือการนับโทเค็น

แนวทางปฏิบัติแนะนำ

ส่วนนี้มีคำแนะนำสำหรับการใช้โมเดลการคิดอย่างมีประสิทธิภาพ

แก้ข้อบกพร่องและแนะนำ

  • ตรวจสอบการให้เหตุผล: เมื่อคุณไม่ได้รับคำตอบที่คาดหวังจาก โมเดลการคิด การวิเคราะห์ข้อมูลสรุปความคิดของ Gemini อย่างละเอียดอาจช่วยได้ คุณจะเห็นวิธีที่โมเดลแบ่งงานและได้ข้อสรุป และใช้ข้อมูลดังกล่าวเพื่อแก้ไขให้ได้ผลลัพธ์ที่ถูกต้อง

  • ให้คำแนะนำในการให้เหตุผล: หากคุณต้องการเอาต์พุตที่ยาวเป็นพิเศษ คุณอาจต้องการให้คำแนะนำในพรอมต์เพื่อจำกัด ปริมาณการคิดที่โมเดลใช้ ซึ่งจะช่วยให้คุณสงวนโทเค็นเอาต์พุตไว้สำหรับคำตอบได้มากขึ้น

ความซับซ้อนของงาน

  • งานง่าย (อาจปิดการคิด): สำหรับคำขอตรงไปตรงมาที่ไม่ต้องมีการให้เหตุผลที่ซับซ้อน คุณไม่จำเป็นต้องใช้การคิด ตัวอย่าง
    • "DeepMind ก่อตั้งขึ้นที่ไหน"
    • "อีเมลนี้ขอให้มีการประชุมหรือเพียงแค่ให้ข้อมูล"
  • งานปานกลาง (ค่าเริ่มต้น/การคิดบางส่วน): คำขอทั่วไปหลายรายการได้รับประโยชน์จากการประมวลผลแบบทีละขั้นตอนหรือความเข้าใจที่ลึกซึ้งยิ่งขึ้น ตัวอย่าง
    • เปรียบเทียบการสังเคราะห์แสงกับการเติบโต
    • เปรียบเทียบรถยนต์ไฟฟ้ากับรถยนต์ไฮบริด
  • งานยาก (ความสามารถในการคิดสูงสุด): สำหรับความท้าทายที่ซับซ้อนอย่างแท้จริง เราขอแนะนำให้ตั้งงบประมาณการคิดไว้สูง งานประเภทนี้กำหนดให้โมเดลต้องใช้ความสามารถในการให้เหตุผลและการวางแผนอย่างเต็มที่ ตัวอย่าง
    • แก้ปัญหาข้อ 1 ใน AIME 2025: หาผลรวมของฐานจำนวนเต็มทั้งหมด b > 9...
    • เขียนโค้ด Python สำหรับเว็บแอปพลิเคชันที่แสดงข้อมูลตลาดหุ้นแบบเรียลไทม์ รวมถึงการตรวจสอบสิทธิ์ของผู้ใช้ ทำให้มีประสิทธิภาพมากที่สุด

โมเดลที่รองรับ

รุ่น การคิดเริ่มต้น ระดับที่รองรับ
gemini-3.1-pro-preview เปิด (สูง) ต่ำ ปานกลาง สูง
gemini-3-flash-preview เปิด (สูง) น้อย ต่ำ ปานกลาง สูง
gemini-3-pro-preview เปิด (สูง) ต่ำ สูง
gemini-2.5-pro เปิด งบประมาณ: 128-32768
gemini-2.5-flash เปิด งบประมาณ: 0-24576
gemini-2.5-flash-lite ปิด งบประมาณ: 0-24576

โมเดลการคิดทำงานร่วมกับเครื่องมือและความสามารถทั้งหมดของ Gemini ซึ่งช่วยให้โมเดลโต้ตอบกับระบบภายนอก ดำเนินการโค้ด หรือเข้าถึงข้อมูลแบบเรียลไทม์ และรวมผลลัพธ์ไว้ในการให้เหตุผล

ขั้นตอนถัดไป