فکر کردن

مدل‌های Gemini 2.5 می‌توانند از یک «فرایند تفکر» داخلی استفاده کنند که به‌طور قابل‌توجهی توانایی‌های استدلال و برنامه‌ریزی چند مرحله‌ای آن‌ها را بهبود می‌بخشد و آن‌ها را برای کارهای پیچیده‌ای مانند کدنویسی، ریاضیات پیشرفته و تجزیه و تحلیل داده‌ها بسیار مؤثر می‌سازد.

شما می توانید با استفاده از بودجه فکری، میزان تفکر یک مدل را پیکربندی کنید. اگر کاهش تأخیر یا هزینه در اولویت باشد، این پیکربندی بسیار مهم است. همچنین، مقایسه دشواری های کار را مرور کنید تا تصمیم بگیرید که یک مدل چقدر ممکن است به توانایی تفکر خود نیاز داشته باشد.

از یک مدل تفکر استفاده کنید

از یک مدل تفکر درست مانند سایر مدل های Gemini استفاده کنید (ارائه دهنده Gemini API انتخابی خود را راه اندازی کنید، یک نمونه GenerativeModel ایجاد کنید، و غیره). این مدل‌ها را می‌توان برای وظایف تولید متن یا کد، مانند تولید خروجی ساختاریافته یا تجزیه و تحلیل ورودی‌های چندوجهی (مانند تصاویر ، ویدئو ، صدا یا فایل‌های PDF ) استفاده کرد. هنگام پخش جریانی خروجی، حتی می توانید از مدل های تفکر استفاده کنید.

مدل های پشتیبانی شده

تنها مدل های Gemini 2.5 از این قابلیت پشتیبانی می کنند.

  • gemini-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite-preview-06-17

بهترین شیوه ها برای استفاده از مدل های تفکر

توصیه می‌کنیم درخواست خود را در Google AI Studio یا Vertex AI Studio آزمایش کنید تا بتوانید فرآیند تفکر کامل را مشاهده کنید. می‌توانید مناطقی را که ممکن است مدل به اشتباه رفته را شناسایی کنید تا بتوانید درخواست‌های خود را برای دریافت پاسخ‌های منسجم‌تر و دقیق‌تر اصلاح کنید.

با یک اعلان کلی که نتیجه مورد نظر را توصیف می کند، شروع کنید و افکار اولیه مدل را در مورد چگونگی تعیین پاسخ خود مشاهده کنید. اگر پاسخ آنطور که انتظار می رود نیست، با استفاده از هر یک از تکنیک های تحریک زیر به مدل کمک کنید تا پاسخ بهتری ایجاد کند:

  • دستورالعمل های گام به گام را ارائه دهید
  • چندین مثال از جفت ورودی-خروجی ارائه دهید
  • برای نحوه بیان و قالب بندی خروجی ها و پاسخ ها راهنمایی ارائه دهید
  • مراحل تأیید مشخصی را ارائه دهید

علاوه بر تلقین، استفاده از این توصیه ها را در نظر بگیرید:

  • دستورالعمل‌های سیستم را تنظیم کنید، که مانند یک «مقدمه» هستند که قبل از اینکه مدل در معرض هر دستورالعمل دیگری از طرف درخواست یا کاربر نهایی قرار گیرد، اضافه می‌کنید. آنها به شما اجازه می دهند رفتار مدل را بر اساس نیازهای خاص و موارد استفاده خود هدایت کنید.

  • یک بودجه فکری تنظیم کنید تا میزان تفکر مدل را پیکربندی کنید. اگر بودجه پایینی تعیین کنید، مدل به پاسخ خود "بیش از حد" فکر نمی کند. اگر بودجه بالایی تعیین می کنید، در صورت نیاز مدل می تواند بیشتر فکر کند. تنظیم بودجه فکری همچنین مقدار بیشتری از حد خروجی توکن را برای پاسخ واقعی ذخیره می کند.

  • (اگر از Vertex AI Gemini API استفاده می کنید) مطمئن شوید که نظارت هوش مصنوعی را در کنسول Firebase فعال کرده اید تا بتوانید تأخیر درخواست های خود را که تفکر فعال دارند نظارت کنید. توجه داشته باشید که نشانه های تفکر هنوز در داشبوردهای مانیتورینگ نمایش داده نشده اند.

بودجه فکری را کنترل کنید

برای کنترل میزان تفکری که مدل می‌تواند برای ایجاد پاسخ خود انجام دهد، می‌توانید تعداد نشانه‌های بودجه فکری را که مجاز به استفاده از آن هستند را مشخص کنید.

شما می‌توانید به صورت دستی بودجه فکری را در شرایطی تنظیم کنید که ممکن است به توکن‌های بیشتر یا کمتری نسبت به بودجه پیش‌فرض نیاز داشته باشید. راهنمایی دقیق‌تر در مورد پیچیدگی کار و بودجه‌های پیشنهادی را بعداً در این بخش بیابید. در اینجا برخی از راهنمایی های سطح بالا آورده شده است:

  • اگر تأخیر مهم است یا برای کارهای کم‌پیچیده‌تر، بودجه فکری پایینی تعیین کنید
  • بودجه فکری بالایی برای کارهای پیچیده تر تعیین کنید

بودجه فکری را تنظیم کنید

برای مشاهده محتوا و کد ارائه دهنده خاص در این صفحه، روی ارائه دهنده API Gemini خود کلیک کنید.

بودجه فکری را در GenerationConfig به عنوان بخشی از ایجاد نمونه GenerativeModel تنظیم کنید. پیکربندی برای تمام طول عمر نمونه حفظ می شود. اگر می‌خواهید از بودجه‌های فکری متفاوت برای درخواست‌های مختلف استفاده کنید، نمونه‌های GenerativeModel را با هر بودجه پیکربندی کنید.

در ادامه در این بخش با مقادیر بودجه تفکر پشتیبانی شده آشنا شوید.

سویفت

بودجه فکری را در GenerationConfig به عنوان بخشی از ایجاد یک نمونه GenerativeModel تنظیم کنید.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
let generationConfig = GenerationConfig(
  thinkingConfig: ThinkingConfig(thinkingBudget: 1024)
)

// Specify the config as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: generationConfig
)

// ...

Kotlin

مقادیر پارامترها را در GenerationConfig به عنوان بخشی از ایجاد یک نمونه GenerativeModel تنظیم کنید.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
val generationConfig = generationConfig {
  thinkingConfig = thinkingConfig {
      thinkingBudget = 1024
  }
}

// Specify the config as part of creating the `GenerativeModel` instance
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
  modelName = "GEMINI_MODEL_NAME",
  generationConfig,
)

// ...

Java

مقادیر پارامترها را در GenerationConfig به عنوان بخشی از ایجاد یک نمونه GenerativeModel تنظیم کنید.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
ThinkingConfig thinkingConfig = new ThinkingConfig.Builder()
    .setThinkingBudget(1024)
    .build();

GenerationConfig generationConfig = GenerationConfig.builder()
    .setThinkingConfig(thinkingConfig)
    .build();

// Specify the config as part of creating the `GenerativeModel` instance
GenerativeModelFutures model = GenerativeModelFutures.from(
        FirebaseAI.getInstance(GenerativeBackend.googleAI())
                .generativeModel(
                  /* modelName */ "<var>GEMINI_MODEL_NAME</var>",
                  /* generationConfig */ generationConfig
                );
);

// ...

Web

مقادیر پارامترها را در GenerationConfig به عنوان بخشی از ایجاد یک نمونه GenerativeModel تنظیم کنید.


// ...

const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
const generationConfig = {
  thinkingConfig: {
    thinkingBudget: 1024
  }
};

// Specify the config as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, { model: "GEMINI_MODEL_NAME", generationConfig });

// ...

Dart

مقادیر پارامترها را در GenerationConfig به عنوان بخشی از ایجاد یک نمونه GenerativeModel تنظیم کنید.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
final thinkingConfig = ThinkingConfig(thinkingBudget: 1024);

final generationConfig = GenerationConfig(
  // ...
  thinkingConfig: thinkingConfig
);

// Specify the config as part of creating the `GenerativeModel` instance
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  config: generationConfig,
);

// ...

وحدت

پشتیبانی از تنظیم بودجه فکری برای Unity در نسخه بعدی آن ارائه می شود.

حمایت از ارزش های بودجه تفکر

جدول زیر مقادیر بودجه فکری را که می توانید برای هر مدل با پیکربندی thinkingBudget مدل تنظیم کنید، فهرست می کند.

مدل مقدار پیش فرض محدوده موجود برای بودجه فکری ارزش به
غیر فعال کردن تفکر
ارزش به
تفکر پویا را فعال کنید
حداقل ارزش حداکثر مقدار
جمینی 2.5 پرو 8,192 128 32,768 نمی توان خاموش کرد -1
فلش جمینی 2.5 8,192 1 24,576 0 -1
Gemini 2.5 Flash-Lite 0
(تفکر به طور پیش فرض غیرفعال است)
512 24,576 0
(یا اصلاً بودجه فکری را پیکربندی نکنید)
-1

غیرفعال کردن تفکر

برای برخی از کارهای ساده تر ، توانایی تفکر ضروری نیست و استنتاج سنتی کافی است. یا اگر کاهش تأخیر در اولویت است، ممکن است نخواهید که مدل بیش از زمان لازم برای ایجاد پاسخ زمان ببرد.

در این شرایط، می‌توانید تفکر را غیرفعال کنید (یا خاموش کنید):

  • Gemini 2.5 Pro : تفکر را نمی توان غیرفعال کرد
  • فلش Gemini 2.5 : thinkingBudget روی 0 توکن تنظیم کنید
  • Gemini 2.5 Flash-Lite : تفکر به طور پیش فرض غیرفعال است

تفکر پویا را فعال کنید

می توانید با تنظیم thinkingBudget روی -1 به مدل اجازه دهید تصمیم بگیرد که چه زمانی و چقدر فکر می کند (به نام تفکر پویا ). مدل می‌تواند تا حداکثر مقدار توکن خود که در بالا ذکر شده است، از هر تعداد نشانه که مناسب است استفاده کند.

پیچیدگی کار

  • کارهای آسان - فکر کردن را می توان خاموش کرد
    درخواست‌های ساده در مواردی که نیاز به استدلال پیچیده نیست، مانند بازیابی یا طبقه‌بندی واقعیت. مثال ها:

    • "دیپ مایند کجا تاسیس شد؟"
    • "آیا این ایمیل درخواست یک جلسه است یا فقط ارائه اطلاعات؟"
  • وظایف متوسط - بودجه پیش فرض یا مقداری بودجه فکری اضافی مورد نیاز است
    درخواست های رایجی که از درجه ای از پردازش گام به گام یا درک عمیق تر بهره می برند. مثال ها:

    • یک قیاس بین فتوسنتز و بزرگ شدن ایجاد کنید.
    • "مقایسه و مقایسه خودروهای الکتریکی و خودروهای هیبریدی."
  • کارهای سخت - حداکثر بودجه فکری ممکن است مورد نیاز باشد
    چالش‌های واقعاً پیچیده، مانند حل مسائل پیچیده ریاضی یا وظایف کدنویسی. این نوع وظایف مدل را ملزم می‌کند که توانایی‌های استدلال و برنامه‌ریزی کامل خود را درگیر کند، که اغلب شامل بسیاری از مراحل داخلی قبل از ارائه پاسخ است. مثال ها:

    • حل مسئله 1 در AIME 2025: مجموع پایه های اعداد صحیح b > 9 را پیدا کنید که 17b مقسوم علیه 97b است.
    • "کد پایتون را برای یک برنامه وب بنویسید که داده های بازار سهام را در زمان واقعی تجسم می کند، از جمله احراز هویت کاربر. آن را تا حد امکان کارآمد کنید."

قیمت گذاری و شمارش نشانه های تفکر

توکن‌های تفکر از همان قیمت‌گذاری توکن‌های خروجی متن استفاده می‌کنند.

می‌توانید تعداد کل نشانه‌های فکری را از قسمت thoughtsTokenCount در ویژگی usageMetadata پاسخ دریافت کنید:

سویفت

// ...

let response = try await model.generateContent("Why is the sky blue?")

if let usageMetadata = response.usageMetadata {
  print("Thoughts Token Count: \(usageMetadata.thoughtsTokenCount)")
}

Kotlin

// ...

val response = model.generateContent("Why is the sky blue?")

response.usageMetadata?.let { usageMetadata ->
    println("Thoughts Token Count: ${usageMetadata.thoughtsTokenCount}")
}

Java

// ...

ListenableFuture<GenerateContentResponse> response =
    model.generateContent("Why is the sky blue?");

Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
    @Override
    public void onSuccess(GenerateContentResponse result) {
        String usageMetadata = result.getUsageMetadata();
        if (usageMetadata != null) {
            System.out.println("Thoughts Token Count: " +
                usageMetadata.getThoughtsTokenCount());
        }
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

Web

// ...

const response = await model.generateContent("Why is the sky blue?");

if (response?.usageMetadata?.thoughtsTokenCount != null) {
    console.log(`Thoughts Token Count: ${response.usageMetadata.thoughtsTokenCount}`);
}

Dart

// ...

final response = await model.generateContent(
  Content.text("Why is the sky blue?"),
]);

if (response?.usageMetadata case final usageMetadata?) {
  print("Thoughts Token Count: ${usageMetadata.thoughtsTokenCount}");
}

وحدت

پشتیبانی از شمارش توکن های تفکر برای Unity در نسخه بعدی آن ارائه می شود.

در راهنمای شمارش نشانه‌ها درباره نشانه‌ها بیشتر بیاموزید.