تستخدِم نماذج سلسلة Gemini 2.5 "عملية تفكير" داخلية تحسِّن بشكل كبير من قدرات الاستدلال والتخطيط المتعدّد الخطوات، ما يجعلها فعّالة للغاية في المهام المعقدة، مثل الترميز والرياضيات المتقدّمة وتحليل البيانات.
يوضّح لك هذا الدليل كيفية العمل مع إمكانات التفكير في Gemini باستخدام واجهة برمجة التطبيقات Gemini API.
قبل البدء
تأكَّد من استخدام نموذج متوافق من السلسلة 2.5 للتفكير. ننصحك باستكشاف هذه النماذج في AI Studio قبل البدء في استخدام واجهة برمجة التطبيقات:
- تجربة الإصدار التجريبي من Gemini 2.5 Flash في 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))
تُنشئ نماذج التفكير أفكارًا كاملة لتحسين جودة الردّ النهائي، ثم تُخرج ملخّصات لتقديم إحصاءات عن عملية التفكير. وبالتالي، يستند السعر إلى الرموز الكاملة للأفكار التي يحتاج النموذج إلى إنشائها لإنشاء ملخّص، على الرغم من أنّ الملخّص هو وحده الذي يتم إخراجه من واجهة برمجة التطبيقات.
يمكنك الاطّلاع على مزيد من المعلومات حول الرموز المميّزة في دليل احتساب الرموز المميّزة.
النماذج المتوافقة
يمكنك العثور على جميع إمكانات النموذج في صفحة نظرة عامة على النموذج.
الطراز | ملخّصات التفكير | الميزانية المُفكَّرة |
---|---|---|
Gemini 2.5 Flash | ✔️ | ✔️ |
Gemini 2.5 Pro | ✔️ | X |
أفضل الممارسات
يتضمّن هذا القسم بعض الإرشادات لاستخدام نماذج التفكير بكفاءة. وكما هو الحال دائمًا، سيؤدّي اتّباع إرشادات الطلبات وأفضل الممارسات إلى تحقيق أفضل النتائج.
تصحيح الأخطاء وتوجيه الأداء
مراجعة عملية التفكير: عندما لا تتلقّى الردّ المتوقّع من نماذج التفكير، قد يكون من المفيد تحليل عملية التفكير التي يتّبعها Gemini بعناية. يمكنك الاطّلاع على كيفية تقسيم المهمة ووصولها إلى استنتاجها، واستخدام هذه المعلومات لتصحيح الأخطاء والوصول إلى النتائج الصحيحة.
تقديم إرشادات في عملية التفكير: إذا كنت تريد الحصول على نتيجة طويلة بشكل خاص، ننصحك بتقديم إرشادات في الطلب لتضييق نطاق التفكير الذي يستخدمه النموذج. يتيح لك ذلك حجز المزيد من مخرجات الرمز المميّز لردّك.
تعقيد المهمة
- المهام السهلة (يمكن إيقاف ميزة التفكير): بالنسبة إلى الطلبات المباشرة التي لا يتطلّب فيها
التفكير المعقد، مثل استرداد الحقائق أو
تصنيفها، لا يلزم التفكير. تشمل الأمثلة ما يلي:
- "أين تم تأسيس شركة DeepMind؟"
- "هل هذه الرسالة الإلكترونية تطلب عقد اجتماع أم تقدّم معلومات فقط؟"
- المهام المتوسطة (الإعداد التلقائي/التفكير قليلاً): تستفيد العديد من الطلبات الشائعة من
درجة من المعالجة الخطوة تلو الأخرى أو فهم أعمق. يمكن أن يستخدم Gemini بشكلٍ مرن
إمكانات التفكير في مهام مثل:
- قارِن بين عملية التمثيل الضوئي والنمو.
- قارِن بين السيارات الكهربائية والسيارات الهجينة.
- المهام الصعبة (الحد الأقصى من قدرات التفكير): بالنسبة إلى التحديات المعقّدة حقًا، يحتاج النموذج إلى تفعيل قدراته الكاملة في الاستدلال والتخطيط، ما يؤدي غالبًا إلى تنفيذ العديد من الخطوات الداخلية قبل تقديم إجابة. تشمل الأمثلة ما يلي:
- حلّ المشكلة 1 في مسابقة AIME لعام 2025: ابحث عن مجموع جميع الأسس الصحيحة b > 9 التي يكون فيها 17b مقسومًا على 97b.
- كتابة رمز Python لتطبيق ويب يعرض بيانات البورصة في الوقت الفعلي، بما في ذلك مصادقة المستخدم أن تكون فعّالة بأكبر قدر ممكن
التفكير باستخدام الأدوات والإمكانات
تعمل النماذج المُفكّرة مع جميع أدوات Gemini وإمكاناته. ويسمح ذلك للنماذج بالتفاعل مع الأنظمة الخارجية أو تنفيذ الرموز البرمجية أو الوصول إلى المعلومات في الوقت الفعلي، مع دمج النتائج في الاستدلال والرد النهائي.
تسمح أداة البحث للنموذج بإجراء استعلامات في "بحث Google" للعثور على معلومات محدّثة أو معلومات تتجاوز بيانات التدريب. يكون ذلك مفيدًا للأسئلة حول الأحداث الأخيرة أو topicsشديدة التحديد.
تتيح أداة تنفيذ الرموز البرمجية للنموذج إنشاء رموز Python وتنفيذها لإجراء العمليات الحسابية أو معالجة البيانات أو حلّ المشاكل التي يمكن التعامل معها بشكل أفضل من خلال الخوارزميات. يتلقّى النموذج مخرج الرمز البرمجي ويمكنه استخدامه في ردّه.
باستخدام الإخراج المنظَّم، يمكنك فرض استخدام Gemini لتنسيق JSON في الردود. ويُعدّ ذلك مفيدًا بشكل خاص في دمج نتائج النموذج في التطبيقات.
تربط طلبات بيانات الدوالّ نموذج التفكير بالأدوات وواجهات برمجة التطبيقات الخارجية، حتى يتمكّن من تحديد الوقت المناسب لطلب بيانات الدوالّ المناسبة والمَعلمات التي يجب تقديمها.
يمكنك تجربة أمثلة على استخدام الأدوات مع نماذج التفكير في كتاب التفكير.
ما هي الخطوات التالية؟
للاطّلاع على أمثلة أكثر تفصيلاً، مثل:
- استخدام الأدوات مع التفكير
- بث المحتوى مع التفكير
- تعديل الميزانية المخصّصة للتفكير من أجل تحقيق نتائج مختلفة
ويمكنك تجربة كتاب الطبخ الخاص بالتفكير للاطّلاع على المزيد من المعلومات.
تتوفّر الآن تغطية التفكير في دليل التوافق مع OpenAI.
لمزيد من المعلومات حول الإصدار التجريبي من Gemini 2.5 Pro وGemini Flash 2.5 Thinking، يُرجى الانتقال إلى صفحة النموذج.