مدلهای سری Gemini 2.5 از یک «فرایند تفکر» داخلی استفاده میکنند که بهطور قابلتوجهی تواناییهای استدلال و برنامهریزی چند مرحلهای آنها را بهبود میبخشد و آنها را برای کارهای پیچیدهای مانند کدنویسی، ریاضیات پیشرفته و تجزیه و تحلیل دادهها بسیار مؤثر میسازد.
این راهنما به شما نشان می دهد که چگونه با استفاده از Gemini API با قابلیت های تفکر Gemini کار کنید.
قبل از شروع
اطمینان حاصل کنید که از یک مدل سری 2.5 پشتیبانی شده برای تفکر استفاده می کنید. ممکن است قبل از فرو رفتن در API، این مدلها را در AI Studio کاوش کنید:
- Gemini 2.5 Flash Preview را در AI Studio امتحان کنید
- پیش نمایش Gemini 2.5 Pro را در AI Studio امتحان کنید
تولید محتوا با تفکر
شروع یک درخواست با یک مدل تفکر مشابه هر درخواست تولید محتوا دیگری است. تفاوت اصلی در مشخص کردن یکی از مدلها با پشتیبانی تفکر در زمینه model
است، همانطور که در مثال تولید متن زیر نشان داده شده است:
پایتون
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-flash-preview-05-20",
contents=prompt
)
print(response.text)
جاوا اسکریپت
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-flash-preview-05-20",
contents: prompt,
});
console.log(response.text);
}
main();
برو
// 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-flash-preview-05-20")
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())
}
استراحت
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-05-20: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."
}
]
}
]
}'
```
خلاصه افکار (تجربی)
خلاصه های فکری بینش هایی را در مورد فرآیند استدلال درونی مدل ارائه می دهند. این ویژگی میتواند برای تأیید رویکرد مدل و اطلاعرسانی کاربران در طول کارهای طولانیتر، بهویژه زمانی که با پخش جریانی ترکیب میشود، ارزشمند باشد.
میتوانید خلاصههای افکار را با تنظیم includeThoughts
روی true
در پیکربندی درخواست خود فعال کنید. سپس میتوانید با تکرار در parts
پارامتر response
و بررسی بولی thought
به خلاصه دسترسی پیدا کنید.
در اینجا مثالی وجود دارد که نحوه فعال کردن و بازیابی خلاصههای فکری را بدون پخش جریانی نشان میدهد، که یک خلاصه فکر نهایی را همراه با پاسخ برمیگرداند:
پایتون
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-flash-preview-05-20",
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()
جاوا اسکریپت
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-flash-preview-05-20",
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();
برو
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-flash-preview-05-20"
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)
}
}
}
}
و در اینجا مثالی با استفاده از تفکر همراه با استریم آورده شده است که در طول تولید، خلاصههای متحرک و افزایشی را برمیگرداند:
پایتون
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-flash-preview-05-20",
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
جاوا اسکریپت
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-flash-preview-05-20",
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();
فکر کردن به بودجه
پارامتر thinkingBudget
به شما امکان می دهد مدل را در مورد تعداد نشانه های تفکری که می تواند هنگام ایجاد پاسخ استفاده کند راهنمایی کنید. تعداد توکن های بیشتر به طور کلی امکان استدلال دقیق تری را فراهم می کند، که می تواند برای مقابله با کارهای پیچیده تر مفید باشد. اگر thinkingBudget
تنظیم نکنید، مدل به صورت پویا بودجه را بر اساس پیچیدگی درخواست تنظیم می کند.
-
thinkingBudget
باید یک عدد صحیح در محدوده0
تا24576
باشد. - تنظیم بودجه تفکر بر روی
0
تفکر را غیرفعال می کند. - بسته به درخواست، ممکن است مدل از بودجه توکن سرریز یا کمتر شود.
پایتون
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.5-flash-preview-05-20",
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)
جاوا اسکریپت
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-flash-preview-05-20",
contents: "Provide a list of 3 famous physicists and their key contributions",
config: {
thinkingConfig: {
thinkingBudget: 1024,
},
},
});
console.log(response.text);
}
main();
برو
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-flash-preview-05-20"
resp, _ := client.Models.GenerateContent(ctx, model, contents, &genai.GenerateContentConfig{
ThinkingConfig: &genai.ThinkingConfig{
ThinkingBudget: &thinkingBudgetVal,
},
})
fmt.Println(resp.Text())
}
استراحت
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-05-20: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
}
}
}'
قیمت گذاری
وقتی تفکر روشن است، قیمت گذاری پاسخ مجموع نشانه های خروجی و نشانه های تفکر است. می توانید تعداد کل نشانه های تفکر تولید شده را از قسمت thoughtsTokenCount
دریافت کنید.
پایتون
# ...
print("Thoughts tokens:",response.usage_metadata.thoughts_token_count)
print("Output tokens:",response.usage_metadata.candidates_token_count)
جاوا اسکریپت
// ...
console.log(`Thoughts tokens: ${response.usageMetadata.thoughtsTokenCount}`);
console.log(`Output tokens: ${response.usageMetadata.candidatesTokenCount}`);
برو
// ...
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))
مدلهای تفکر، افکار کامل را برای بهبود کیفیت پاسخ نهایی تولید میکنند و سپس خلاصههایی را برای ارائه بینشی به فرآیند فکر تولید میکنند. بنابراین، قیمتگذاری بر اساس توکنهای فکری کاملی است که مدل برای ایجاد یک خلاصه نیاز دارد، علیرغم اینکه فقط خلاصه از API خروجی میشود.
میتوانید در راهنمای شمارش توکنها اطلاعات بیشتری کسب کنید.
مدل های پشتیبانی شده
شما می توانید تمام قابلیت های مدل را در صفحه نمای کلی مدل بیابید.
مدل | خلاصه تفکر | بودجه فکری |
---|---|---|
فلش جمینی 2.5 | ✔️ | ✔️ |
جمینی 2.5 پرو | ✔️ | X |
بهترین شیوه ها
این بخش شامل راهنمایی هایی برای استفاده کارآمد از مدل های تفکر است. مثل همیشه، پیروی از راهنماییهای فوری و بهترین روشها بهترین نتایج را برای شما به ارمغان میآورد.
اشکال زدایی و فرمان
استدلال را مرور کنید : وقتی پاسخ مورد انتظار خود را از مدل های تفکر دریافت نمی کنید، می تواند به تحلیل دقیق فرآیند استدلال جمینی کمک کند. میتوانید ببینید که چگونه کار را شکست و به نتیجه رسید و از آن اطلاعات برای تصحیح نتایج درست استفاده کنید.
راهنمایی در استدلال ارائه دهید : اگر به یک خروجی طولانی امیدوار هستید، ممکن است بخواهید در اعلان خود راهنمایی کنید تا میزان تفکری که مدل استفاده میکند محدود شود. این به شما امکان می دهد مقدار بیشتری از خروجی رمز را برای پاسخ خود رزرو کنید.
پیچیدگی کار
- وظایف آسان (تفکر ممکن است خاموش باشد): برای درخواستهای ساده که نیازی به استدلال پیچیده نیست، مانند بازیابی واقعیت یا طبقهبندی، فکر کردن لازم نیست. مثالها عبارتند از:
- "دیپ مایند کجا تاسیس شد؟"
- "آیا این ایمیل درخواست یک جلسه است یا فقط ارائه اطلاعات؟"
- وظایف متوسط (پیشفرض/برخی تفکر): بسیاری از درخواستهای رایج از درجهای از پردازش گام به گام یا درک عمیقتر بهره میبرند. جمینی می تواند به طور انعطاف پذیر از قابلیت تفکر برای کارهایی مانند:
- فتوسنتز و بزرگ شدن را آنالوگ کنید.
- مقایسه و مقایسه خودروهای الکتریکی و خودروهای هیبریدی.
- وظایف سخت (حداکثر قابلیت تفکر): برای چالشهای واقعاً پیچیده، مدل باید تواناییهای استدلال و برنامهریزی کامل خود را درگیر کند، که اغلب شامل بسیاری از مراحل داخلی قبل از ارائه پاسخ است. مثالها عبارتند از:
- حل مسئله 1 در AIME 2025: مجموع همه پایه های اعداد صحیح b > 9 را پیدا کنید که 17 b مقسوم علیه 97 b است.
- کد پایتون را برای یک برنامه وب بنویسید که داده های بازار سهام را در زمان واقعی، از جمله احراز هویت کاربر، تجسم می کند. آن را تا حد امکان کارآمد کنید.
تفکر با ابزار و قابلیت ها
مدل های تفکر با تمام ابزارها و قابلیت های Gemini کار می کنند. این به مدلها اجازه میدهد تا با سیستمهای خارجی تعامل داشته باشند، کد را اجرا کنند یا به اطلاعات بلادرنگ دسترسی داشته باشند و نتایج را در استدلال و پاسخ نهایی خود بگنجانند.
ابزار جستجو به مدل اجازه می دهد تا از جستجوی Google جستجو کند تا اطلاعات به روز یا اطلاعاتی فراتر از داده های آموزشی خود پیدا کند. این برای سوالاتی در مورد رویدادهای اخیر یا موضوعات بسیار خاص مفید است.
ابزار اجرای کد، مدل را قادر میسازد تا کد پایتون را برای انجام محاسبات، دستکاری دادهها یا حل مشکلاتی که به بهترین شکل الگوریتمی دارند، تولید و اجرا کند. مدل خروجی کد را دریافت می کند و می تواند از آن در پاسخ خود استفاده کند.
با خروجی ساختاریافته ، میتوانید Gemini را محدود کنید تا با JSON پاسخ دهد. این به ویژه برای ادغام خروجی مدل در برنامه ها مفید است.
فراخوانی تابع، مدل تفکر را به ابزارهای خارجی و APIها متصل میکند، بنابراین میتواند درباره زمان فراخوانی تابع مناسب و چه پارامترهایی توضیح دهد.
می توانید نمونه هایی از استفاده از ابزار با مدل های تفکر را در کتاب آشپزی Thinking امتحان کنید.
بعدش چی؟
برای کار کردن با مثال های عمیق تر، مانند:
- استفاده از ابزار با تفکر
- جریان با تفکر
- تنظیم بودجه تفکر برای نتایج مختلف
و بیشتر، کتاب آشپزی تفکر ما را امتحان کنید.
پوشش تفکر اکنون در راهنمای سازگاری OpenAI ما در دسترس است.
برای اطلاعات بیشتر درباره پیش نمایش Gemini 2.5 Pro و Gemini Flash 2.5 Thinking، از صفحه مدل دیدن کنید.