Gemini 3 هي عائلة النماذج الأكثر ذكاءً لدينا حتى الآن، وهي تستند إلى أساس متطوّر من الاستدلال. تم تصميم هذه الأداة لتحويل أي فكرة إلى واقع من خلال إتقان سير العمل المستند إلى الذكاء الاصطناعي الوكيل والترميز المستقل ومهام الوسائط المتعددة المعقّدة. يتناول هذا الدليل الميزات الرئيسية لعائلة نماذج Gemini 3 وكيفية الاستفادة منها إلى أقصى حدّ.
يمكنك استكشاف مجموعة تطبيقات Gemini 3 لمعرفة كيف يتعامل النموذج مع الاستدلال المتقدّم والترميز الذاتي والمهام المعقّدة المتعددة الوسائط.
ابدأ ببضعة أسطر من الرموز البرمجية:
Python
from google import genai
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents="Find the race condition in this multi-threaded C++ snippet: [code here]",
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function run() {
const response = await ai.models.generateContent({
model: "gemini-3-pro-preview",
contents: "Find the race condition in this multi-threaded C++ snippet: [code here]",
});
console.log(response.text);
}
run();
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "Find the race condition in this multi-threaded C++ snippet: [code here]"}]
}]
}'
التعرّف على سلسلة Gemini 3
Gemini 3 Pro هو النموذج الأول في السلسلة الجديدة، وهو الأفضل للمهام المعقّدة التي تتطلّب معرفة واسعة بالعالم الواقعي واستدلالاً متقدّمًا في مختلف الوسائط.
Gemini 3 Flash هو أحدث نموذج من السلسلة 3، ويتميّز بذكاء على مستوى Pro وبسرعة Flash وأسعاره.
Nano Banana Pro (المعروف أيضًا باسم Gemini 3 Pro Image) هو أحدث نماذجنا لإنشاء صور عالية الجودة.
تتوفّر جميع نماذج Gemini 3 حاليًا في مرحلة المعاينة.
| رقم تعريف الطراز | قدرة الاستيعاب (داخل / خارج) | Knowledge Cutoff | التسعير (الإدخال / الإخراج)* |
|---|---|---|---|
| gemini-3-pro-preview | 1M / 64k | يناير 2025 | 2 دولار أمريكي / 12 دولار أمريكي (أقل من 200 ألف رمز مميّز) 4 دولار أمريكي / 18 دولار أمريكي (أكثر من 200 ألف رمز مميّز) |
| gemini-3-flash-preview | 1M / 64k | يناير 2025 | 0.50 دولار أمريكي / 3 دولار أمريكي |
| gemini-3-pro-image-preview | 65 ألف / 32 ألف | يناير 2025 | $2 (إدخال النص) / $0.134 (إخراج الصورة)** |
* الأسعار لكل مليون رمز مميز ما لم يُذكر خلاف ذلك. ** يختلف سعر الصورة حسب درجة الدقة. يمكنك الاطّلاع على صفحة الأسعار للحصول على التفاصيل.
للاطّلاع على الحدود التفصيلية والأسعار والمعلومات الإضافية، يُرجى الانتقال إلى صفحة النماذج.
ميزات جديدة في واجهة برمجة التطبيقات في Gemini 3
يقدّم Gemini 3 مَعلمات جديدة مصمّمة لمنح المطوّرين مزيدًا من التحكّم في وقت الاستجابة والتكلفة ودقة الوسائط المتعددة.
مستوى التفكير
تستخدم نماذج سلسلة Gemini 3 ميزة "التفكير الديناميكي" تلقائيًا للاستنتاج من خلال الطلبات. يمكنك استخدام المَعلمة thinking_level التي تتحكّم في الحد الأقصى لعمق عملية الاستدلال الداخلي للنموذج قبل أن ينتج ردًا. يتعامل Gemini 3 مع هذه المستويات على أنّها مخصصات نسبية للتفكير بدلاً من ضمانات صارمة للرموز المميزة.
إذا لم يتم تحديد thinking_level، سيتم ضبط Gemini 3 تلقائيًا على high. للحصول على ردود أسرع وبزمن استجابة أقل عندما لا يكون التفكير المعقّد مطلوبًا، يمكنك حصر مستوى التفكير في النموذج على low.
مستويات التفكير في Gemini 3 Pro وFlash:
تتوفّر مستويات التفكير التالية في كلّ من Gemini 3 Pro وFlash:
-
low: يقلّل من وقت الاستجابة والتكلفة. الأفضل للتطبيقات التي تتطلّب اتّباع تعليمات بسيطة أو المحادثة أو التطبيقات التي تعالج البيانات بسرعة كبيرة high(تلقائي، ديناميكي): يزيد عمق الاستدلال إلى أقصى حدّ. قد يستغرق النموذج وقتًا أطول بكثير للوصول إلى الرمز المميز الأول، ولكن سيكون الناتج أكثر دقة.
مستويات التفكير في Gemini 3 Flash
بالإضافة إلى المستويات المذكورة أعلاه، يتيح Gemini 3 Flash أيضًا مستويات التفكير التالية التي لا يتيحها حاليًا Gemini 3 Pro:
minimal: تتطابق مع خيار "لا تفكّر" لمعظم طلبات البحث. قد يفكّر النموذج بشكل محدود جدًا في مهام الترميز المعقّدة. يقلّل من وقت الاستجابة لتطبيقات المحادثة أو التطبيقات التي تتطلّب معدل نقل بيانات مرتفعًا.
medium: التفكير المتوازن لمعظم المهام
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents="How does AI work?",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="low")
),
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
const response = await ai.models.generateContent({
model: "gemini-3-pro-preview",
contents: "How does AI work?",
config: {
thinkingConfig: {
thinkingLevel: "low",
}
},
});
console.log(response.text);
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "How does AI work?"}]
}],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "low"
}
}
}'
درجة دقة الوسائط
تتيح السلسلة Gemini 3 التحكّم بدقة في معالجة الصور المتعددة الوسائط من خلال المَعلمة media_resolution. تؤدي الدقة الأعلى إلى تحسين قدرة النموذج على قراءة النصوص الدقيقة أو تحديد التفاصيل الصغيرة، ولكنها تزيد من استخدام الرموز المميزة ووقت الاستجابة. تحدّد المَعلمة media_resolution الحد الأقصى لعدد الرموز المميزة المخصّصة لكل صورة إدخال أو إطار فيديو.
يمكنك الآن ضبط الدقة على media_resolution_low أو media_resolution_medium أو media_resolution_high أو media_resolution_ultra_high لكل جزء من الوسائط على حدة أو على مستوى العالم (من خلال generation_config، لا تتوفّر الدقة الفائقة على مستوى العالم). في حال عدم تحديدها، يستخدم النموذج الإعدادات التلقائية المثلى استنادًا إلى نوع الوسائط.
الإعدادات المقترَحة
| نوع الوسائط | الإعداد المقترَح | الحد الأقصى للرموز المميزة | إرشادات الاستخدام |
|---|---|---|---|
| الصور | media_resolution_high |
1120 | يُنصح باستخدامها لمعظم مهام تحليل الصور لضمان الحصول على أعلى جودة. |
| ملفات PDF | media_resolution_medium |
560 | الأفضل لفهم المستندات، وعادةً ما تصل الجودة إلى الحدّ الأقصى عند medium. لا تؤدي الزيادة إلى high في أغلب الأحيان إلى تحسين نتائج التعرّف البصري على الأحرف للمستندات العادية. |
| الفيديو (عام) | media_resolution_low (أو media_resolution_medium) |
70 (لكل إطار) | ملاحظة: بالنسبة إلى الفيديو، يتم التعامل مع إعدادات low وmedium بشكل مماثل (70 رمزًا مميزًا) لتحسين استخدام السياق. وهذا يكفي لمعظم مهام التعرّف على الإجراءات ووصفها. |
| الفيديو (يحتوي على الكثير من النصوص) | media_resolution_high |
280 (لكل إطار) | يجب توفُّرها فقط عندما تتضمّن حالة الاستخدام قراءة نص كثيف (التعرّف البصري على الأحرف) أو تفاصيل صغيرة ضمن لقطات الفيديو. |
Python
from google import genai
from google.genai import types
import base64
# The media_resolution parameter is currently only available in the v1alpha API version.
client = genai.Client(http_options={'api_version': 'v1alpha'})
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents=[
types.Content(
parts=[
types.Part(text="What is in this image?"),
types.Part(
inline_data=types.Blob(
mime_type="image/jpeg",
data=base64.b64decode("..."),
),
media_resolution={"level": "media_resolution_high"}
)
]
)
]
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
// The media_resolution parameter is currently only available in the v1alpha API version.
const ai = new GoogleGenAI({ apiVersion: "v1alpha" });
async function run() {
const response = await ai.models.generateContent({
model: "gemini-3-pro-preview",
contents: [
{
parts: [
{ text: "What is in this image?" },
{
inlineData: {
mimeType: "image/jpeg",
data: "...",
},
mediaResolution: {
level: "media_resolution_high"
}
}
]
}
]
});
console.log(response.text);
}
run();
REST
curl "https://generativelanguage.googleapis.com/v1alpha/models/gemini-3-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [
{ "text": "What is in this image?" },
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "..."
},
"mediaResolution": {
"level": "media_resolution_high"
}
}
]
}]
}'
درجة الحرارة
بالنسبة إلى Gemini 3، ننصحك بشدة بإبقاء مَعلمة درجة الحرارة على قيمتها التلقائية البالغة 1.0.
في حين أنّ النماذج السابقة كانت تستفيد غالبًا من ضبط درجة العشوائية للتحكّم في الإبداع مقابل الحتمية، تم تحسين قدرات الاستدلال في Gemini 3 للإعداد التلقائي. قد يؤدي تغيير درجة الحرارة (ضبطها على أقل من 1.0) إلى سلوك غير متوقّع، مثل التكرار أو انخفاض الأداء، خاصةً في المهام الرياضية أو المنطقية المعقدة.
توقيعات الأفكار
يستخدم Gemini 3 توقيعات الأفكار للحفاظ على سياق الاستنتاج في جميع طلبات البيانات من واجهة برمجة التطبيقات. هذه التواقيع هي تمثيلات مشفّرة لعملية التفكير الداخلي للنموذج. لضمان احتفاظ النموذج بقدراته على الاستدلال، يجب إعادة هذه التواقيع إلى النموذج في طلبك تمامًا كما تم تلقّيها:
استدعاء الدوال (وضع صارم): تفرض واجهة برمجة التطبيقات التحقّق الصارم من صحة "الجولة الحالية". سيؤدي عدم توفّر التواقيع إلى ظهور الخطأ 400.
النص/المحادثة: لا يتم فرض التحقّق من الصحة بشكل صارم، ولكن سيؤدي حذف التوقيعات إلى خفض جودة التفكير والإجابات في النموذج.
إنشاء الصور/تعديلها (صارم): تفرض واجهة برمجة التطبيقات التحقّق الصارم من صحة جميع أجزاء النموذج، بما في ذلك
thoughtSignature. سيؤدي عدم توفّر التواقيع إلى ظهور الخطأ 400.
استدعاء الدالة (التحقّق الدقيق)
عندما ينشئ Gemini functionCall، يعتمد على thoughtSignature لمعالجة نتيجة الأداة بشكل صحيح في الجولة التالية. يتضمّن "الدور الحالي" جميع خطوات "النموذج" (functionCall) و"المستخدم" (functionResponse) التي حدثت منذ آخر رسالة مستخدم text عادية.
- استدعاء دالة واحدة: يحتوي الجزء
functionCallعلى توقيع. يجب إرجاعها. - عمليات استدعاء الدوال المتوازية: سيحتوي الجزء الأول فقط من
functionCallفي القائمة على التوقيع. يجب إرجاع الأجزاء بالترتيب نفسه الذي تم استلامها به. - متعددة الخطوات (متسلسلة): إذا استدعى النموذج أداة، وتلقّى نتيجة، واستدعى أداة أخرى (في نفس الجولة)، سيكون لكلتا استدعاءَي الدالتَين توقيعات. يجب عرض جميع التواقيع المتراكمة في السجلّ.
النص والبث
بالنسبة إلى المحادثات العادية أو إنشاء النصوص، لا يمكن ضمان ظهور توقيع.
- غير متوفرة: قد يحتوي الجزء الأخير من المحتوى في الرد على
thoughtSignature، ولكن ليس دائمًا. في حال تم إرجاع إحدى هذه القيم، عليك إعادة إرسالها للحفاظ على أفضل أداء. - البث: إذا تم إنشاء توقيع، قد يصل في جزء نهائي يحتوي على جزء نصي فارغ. تأكَّد من أنّ أداة تحليل البث تتحقّق من التواقيع حتى إذا كان حقل النص فارغًا.
إنشاء الصور وتعديلها
بالنسبة إلى gemini-3-pro-image-preview، تُعدّ توقيعات الأفكار بالغة الأهمية في التعديل الحواري. عندما تطلب من النموذج تعديل صورة، يعتمد على thoughtSignature من الجولة السابقة لفهم تركيبة الصورة الأصلية ومنطقها.
- التعديل: يتم ضمان ظهور التوقيعات في الجزء الأول بعد أفكار الرد (
textأوinlineData) وفي كل جزءinlineDataلاحق. يجب إرجاع جميع هذه التواقيع لتجنُّب حدوث أخطاء.
أمثلة على الرموز
استدعاء الدوال المتعددة الخطوات (التسلسلي)
يطرح المستخدم سؤالاً يتطلّب خطوتَين منفصلتَين (التحقّق من الرحلة الجوية -> حجز سيارة أجرة) في ردّ واحد.
الخطوة 1: يطلب النموذج "أداة الرحلات الجوية".
تعرض الدالة توقيعًا <Sig_A>
// Model Response (Turn 1, Step 1) { "role": "model", "parts": [ { "functionCall": { "name": "check_flight", "args": {...} }, "thoughtSignature": "<Sig_A>" // SAVE THIS } ] }
الخطوة 2: يرسل المستخدم "نتيجة الرحلة الجوية"
يجب أن نرسل <Sig_A> للحفاظ على تسلسل أفكار النموذج.
// User Request (Turn 1, Step 2) [ { "role": "user", "parts": [{ "text": "Check flight AA100..." }] }, { "role": "model", "parts": [ { "functionCall": { "name": "check_flight", "args": {...} }, "thoughtSignature": "<Sig_A>" // REQUIRED } ] }, { "role": "user", "parts": [{ "functionResponse": { "name": "check_flight", "response": {...} } }] } ]
الخطوة 3: النموذج يستدعي أداة سيارة الأجرة
يتذكّر النموذج تأخير الرحلة الجوية من خلال <Sig_A> ويقرّر الآن حجز سيارة أجرة. يؤدي ذلك إلى إنشاء توقيع جديد <Sig_B>.
// Model Response (Turn 1, Step 3) { "role": "model", "parts": [ { "functionCall": { "name": "book_taxi", "args": {...} }, "thoughtSignature": "<Sig_B>" // SAVE THIS } ] }
الخطوة 4: يرسل المستخدم نتيجة Taxi Result
لإكمال الدور، عليك إعادة إرسال السلسلة بأكملها: <Sig_A> و<Sig_B>.
// User Request (Turn 1, Step 4) [ // ... previous history ... { "role": "model", "parts": [ { "functionCall": { "name": "check_flight", ... }, "thoughtSignature": "<Sig_A>" } ] }, { "role": "user", "parts": [{ "functionResponse": {...} }] }, { "role": "model", "parts": [ { "functionCall": { "name": "book_taxi", ... }, "thoughtSignature": "<Sig_B>" } ] }, { "role": "user", "parts": [{ "functionResponse": {...} }] } ]
استدعاء الدوال بشكل متوازٍ
يطرح المستخدم السؤال التالي: "ما هي حالة الطقس في باريس ولندن؟" يعرض النموذج استدعاءَين للدالة في ردّ واحد.
// User Request (Sending Parallel Results) [ { "role": "user", "parts": [ { "text": "Check the weather in Paris and London." } ] }, { "role": "model", "parts": [ // 1. First Function Call has the signature { "functionCall": { "name": "check_weather", "args": { "city": "Paris" } }, "thoughtSignature": "<Signature_A>" }, // 2. Subsequent parallel calls DO NOT have signatures { "functionCall": { "name": "check_weather", "args": { "city": "London" } } } ] }, { "role": "user", "parts": [ // 3. Function Responses are grouped together in the next block { "functionResponse": { "name": "check_weather", "response": { "temp": "15C" } } }, { "functionResponse": { "name": "check_weather", "response": { "temp": "12C" } } } ] } ]
الاستدلال النصي/الاستدلال في السياق (بدون التحقّق من الصحة)
يطرح المستخدم سؤالاً يتطلّب استنتاجًا ضمن السياق بدون استخدام أدوات خارجية. على الرغم من أنّ التوقيع لا يتم التحقّق منه بدقة، إلا أنّ تضمينه يساعد النموذج في الحفاظ على سلسلة الاستدلال للأسئلة اللاحقة.
// User Request (Follow-up question) [ { "role": "user", "parts": [{ "text": "What are the risks of this investment?" }] }, { "role": "model", "parts": [ { "text": "I need to calculate the risk step-by-step. First, I'll look at volatility...", "thoughtSignature": "<Signature_C>" // Recommended to include } ] }, { "role": "user", "parts": [{ "text": "Summarize that in one sentence." }] } ]
إنشاء الصور وتعديلها
بالنسبة إلى إنشاء الصور، يتم التحقّق من صحة التواقيع بدقة. تظهر هذه الإعلانات على الجزء الأول (نص أو صورة) وجميع أجزاء الصور اللاحقة. يجب إرجاع جميع البطاقات في الدور التالي.
// Model Response (Turn 1) { "role": "model", "parts": [ // 1. First part ALWAYS has a signature (even if text) { "text": "I will generate a cyberpunk city...", "thoughtSignature": "<Signature_D>" }, // 2. ALL InlineData (Image) parts ALWAYS have signatures { "inlineData": { ... }, "thoughtSignature": "<Signature_E>" }, ] } // User Request (Turn 2 - Requesting an Edit) { "contents": [ // History must include ALL signatures received { "role": "user", "parts": [{ "text": "Generate a cyberpunk city" }] }, { "role": "model", "parts": [ { "text": "...", "thoughtSignature": "<Signature_D>" }, { "inlineData": "...", "thoughtSignature": "<Signature_E>" }, ] }, // New User Prompt { "role": "user", "parts": [{ "text": "Make it daytime." }] } ] }
النقل من طُرز أخرى
إذا كنت تنقل سجلّ محادثة من نموذج آخر (مثل Gemini 2.5) أو إدخال طلب مخصّص لاستدعاء دالة لم يتم إنشاؤه بواسطة Gemini 3، لن يكون لديك توقيع صالح.
لتجاوز عملية التحقّق الصارمة في هذه السيناريوهات المحدّدة، املأ الحقل بالسلسلة الوهمية المحدّدة التالية: "thoughtSignature": "context_engineering_is_the_way_to_go"
المُخرجات المنظَّمة باستخدام الأدوات
تتيح لك نماذج Gemini 3 الجمع بين النتائج المنظَّمة والأدوات المضمَّنة، بما في ذلك الاستناد إلى معلومات من "بحث Google" وسياق عنوان URL وتنفيذ الرمز البرمجي.
Python
from google import genai
from google.genai import types
from pydantic import BaseModel, Field
from typing import List
class MatchResult(BaseModel):
winner: str = Field(description="The name of the winner.")
final_match_score: str = Field(description="The final match score.")
scorers: List[str] = Field(description="The name of the scorer.")
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents="Search for all details for the latest Euro.",
config={
"tools": [
{"google_search": {}},
{"url_context": {}}
],
"response_mime_type": "application/json",
"response_json_schema": MatchResult.model_json_schema(),
},
)
result = MatchResult.model_validate_json(response.text)
print(result)
JavaScript
import { GoogleGenAI } from "@google/genai";
import { z } from "zod";
import { zodToJsonSchema } from "zod-to-json-schema";
const ai = new GoogleGenAI({});
const matchSchema = z.object({
winner: z.string().describe("The name of the winner."),
final_match_score: z.string().describe("The final score."),
scorers: z.array(z.string()).describe("The name of the scorer.")
});
async function run() {
const response = await ai.models.generateContent({
model: "gemini-3-pro-preview",
contents: "Search for all details for the latest Euro.",
config: {
tools: [
{ googleSearch: {} },
{ urlContext: {} }
],
responseMimeType: "application/json",
responseJsonSchema: zodToJsonSchema(matchSchema),
},
});
const match = matchSchema.parse(JSON.parse(response.text));
console.log(match);
}
run();
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "Search for all details for the latest Euro."}]
}],
"tools": [
{"googleSearch": {}},
{"urlContext": {}}
],
"generationConfig": {
"responseMimeType": "application/json",
"responseJsonSchema": {
"type": "object",
"properties": {
"winner": {"type": "string", "description": "The name of the winner."},
"final_match_score": {"type": "string", "description": "The final score."},
"scorers": {
"type": "array",
"items": {"type": "string"},
"description": "The name of the scorer."
}
},
"required": ["winner", "final_match_score", "scorers"]
}
}
}'
إنشاء الصور
يتيح لك Gemini 3 Pro Image إنشاء صور وتعديلها من الطلبات النصية. تستخدم هذه الأداة المنطق "للتفكير" في الطلب، ويمكنها استرداد البيانات في الوقت الفعلي، مثل توقّعات الطقس أو الرسوم البيانية للأسهم، قبل استخدام بحث Google كمرجع أساسي قبل إنشاء صور عالية الدقة.
الإمكانات الجديدة والمحسّنة:
- عرض النصوص بدقة 4K: يمكنك إنشاء نصوص ورسوم بيانية واضحة ومقروءة بدقة تصل إلى 2K و4K.
- إنشاء المحتوى استنادًا إلى مصادر موثوقة: استخدِم أداة
google_searchللتحقّق من صحة المعلومات وإنشاء صور استنادًا إلى معلومات واقعية. - التعديل الحواري: تعديل الصور في عدة جولات من خلال طلب إجراء تغييرات (مثل اجعل الخلفية صورة لغروب الشمس"). تعتمد سير العمل هذا على التوقيعات الفكرية للحفاظ على السياق المرئي بين الأدوار.
للحصول على تفاصيل كاملة حول نسب العرض إلى الارتفاع وسير عمل التعديل وخيارات الإعداد، يُرجى الاطّلاع على دليل إنشاء الصور.
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents="Generate an infographic of the current weather in Tokyo.",
config=types.GenerateContentConfig(
tools=[{"google_search": {}}],
image_config=types.ImageConfig(
aspect_ratio="16:9",
image_size="4K"
)
)
)
image_parts = [part for part in response.parts if part.inline_data]
if image_parts:
image = image_parts[0].as_image()
image.save('weather_tokyo.png')
image.show()
JavaScript
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({});
async function run() {
const response = await ai.models.generateContent({
model: "gemini-3-pro-image-preview",
contents: "Generate a visualization of the current weather in Tokyo.",
config: {
tools: [{ googleSearch: {} }],
imageConfig: {
aspectRatio: "16:9",
imageSize: "4K"
}
}
});
for (const part of response.candidates[0].content.parts) {
if (part.inlineData) {
const imageData = part.inlineData.data;
const buffer = Buffer.from(imageData, "base64");
fs.writeFileSync("weather_tokyo.png", buffer);
}
}
}
run();
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "Generate a visualization of the current weather in Tokyo."}]
}],
"tools": [{"googleSearch": {}}],
"generationConfig": {
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "4K"
}
}
}'
مثال على الرد

استجابات الوظائف المتعددة الوسائط
تتيح ميزة استدعاء الدوال المتعددة الوسائط للمستخدمين الحصول على ردود تتضمّن كائنات متعددة الوسائط، ما يتيح الاستفادة بشكل أفضل من إمكانات استدعاء الدوال في النموذج. تتيح ميزة "استدعاء الدوال" العادية الردود المستندة إلى النصوص فقط:
Python
from google import genai
from google.genai import types
import requests
client = genai.Client()
# This is a manual, two turn multimodal function calling workflow:
# 1. Define the function tool
get_image_declaration = types.FunctionDeclaration(
name="get_image",
description="Retrieves the image file reference for a specific order item.",
parameters={
"type": "object",
"properties": {
"item_name": {
"type": "string",
"description": "The name or description of the item ordered (e.g., 'instrument')."
}
},
"required": ["item_name"],
},
)
tool_config = types.Tool(function_declarations=[get_image_declaration])
# 2. Send a message that triggers the tool
prompt = "Show me the instrument I ordered last month."
response_1 = client.models.generate_content(
model="gemini-3-flash-preview",
contents=[prompt],
config=types.GenerateContentConfig(
tools=[tool_config],
)
)
# 3. Handle the function call
function_call = response_1.function_calls[0]
requested_item = function_call.args["item_name"]
print(f"Model wants to call: {function_call.name}")
# Execute your tool (e.g., call an API)
# (This is a mock response for the example)
print(f"Calling external tool for: {requested_item}")
function_response_data = {
"image_ref": {"$ref": "instrument.jpg"},
}
image_path = "https://goo.gle/instrument-img"
image_bytes = requests.get(image_path).content
function_response_multimodal_data = types.FunctionResponsePart(
inline_data=types.FunctionResponseBlob(
mime_type="image/jpeg",
display_name="instrument.jpg",
data=image_bytes,
)
)
# 4. Send the tool's result back
# Append this turn's messages to history for a final response.
history = [
types.Content(role="user", parts=[types.Part(text=prompt)]),
response_1.candidates[0].content,
types.Content(
role="tool",
parts=[
types.Part.from_function_response(
name=function_call.name,
response=function_response_data,
parts=[function_response_multimodal_data]
)
],
)
]
response_2 = client.models.generate_content(
model="gemini-3-flash-preview",
contents=history,
config=types.GenerateContentConfig(
tools=[tool_config],
thinking_config=types.ThinkingConfig(include_thoughts=True)
),
)
print(f"\nFinal model response: {response_2.text}")
JavaScript
import { GoogleGenAI, Type } from '@google/genai';
const client = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
// This is a manual, two turn multimodal function calling workflow:
// 1. Define the function tool
const getImageDeclaration = {
name: 'get_image',
description: 'Retrieves the image file reference for a specific order item.',
parameters: {
type: Type.OBJECT,
properties: {
item_name: {
type: Type.STRING,
description: "The name or description of the item ordered (e.g., 'instrument').",
},
},
required: ['item_name'],
},
};
const toolConfig = {
functionDeclarations: [getImageDeclaration],
};
// 2. Send a message that triggers the tool
const prompt = 'Show me the instrument I ordered last month.';
const response1 = await client.models.generateContent({
model: 'gemini-3-flash-preview',
contents: prompt,
config: {
tools: [toolConfig],
},
});
// 3. Handle the function call
const functionCall = response1.functionCalls[0];
const requestedItem = functionCall.args.item_name;
console.log(`Model wants to call: ${functionCall.name}`);
// Execute your tool (e.g., call an API)
// (This is a mock response for the example)
console.log(`Calling external tool for: ${requestedItem}`);
const functionResponseData = {
image_ref: { $ref: 'instrument.jpg' },
};
const imageUrl = "https://goo.gle/instrument-img";
const response = await fetch(imageUrl);
const imageArrayBuffer = await response.arrayBuffer();
const base64ImageData = Buffer.from(imageArrayBuffer).toString('base64');
const functionResponseMultimodalData = {
inlineData: {
mimeType: 'image/jpeg',
displayName: 'instrument.jpg',
data: base64ImageData,
},
};
// 4. Send the tool's result back
// Append this turn's messages to history for a final response.
const history = [
{ role: 'user', parts: [{ text: prompt }] },
response1.candidates[0].content,
{
role: 'tool',
parts: [
{
functionResponse: {
name: functionCall.name,
response: functionResponseData,
parts: [functionResponseMultimodalData],
},
},
],
},
];
const response2 = await client.models.generateContent({
model: 'gemini-3-flash-preview',
contents: history,
config: {
tools: [toolConfig],
thinkingConfig: { includeThoughts: true },
},
});
console.log(`\nFinal model response: ${response2.text}`);
REST
IMG_URL="https://goo.gle/instrument-img"
MIME_TYPE=$(curl -sIL "$IMG_URL" | grep -i '^content-type:' | awk -F ': ' '{print $2}' | sed 's/\r$//' | head -n 1)
if [[ -z "$MIME_TYPE" || ! "$MIME_TYPE" == image/* ]]; then
MIME_TYPE="image/jpeg"
fi
# Check for macOS
if [[ "$(uname)" == "Darwin" ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -b 0)
elif [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64)
else
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -w0)
fi
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
...,
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "get_image",
"response": {
"image_ref": {
"$ref": "instrument.jpg"
}
},
"parts": [
{
"inlineData": {
"displayName": "instrument.jpg",
"mimeType":"'"$MIME_TYPE"'",
"data": "'"$IMAGE_B64"'"
}
}
]
}
}
]
}
]
}'
الترحيل من Gemini 2.5
Gemini 3 هي مجموعة النماذج الأكثر تطورًا لدينا حتى الآن، وهي تقدّم تحسينًا تدريجيًا مقارنةً بـ Gemini 2.5. عند نقل البيانات، يجب مراعاة ما يلي:
- المفكِّر: إذا كنت تستخدم سابقًا هندسة الطلبات المعقّدة (مثل سلسلة الأفكار) لإجبار Gemini 2.5 على التفكير، جرِّب Gemini 3 مع
thinking_level: "high"والطلبات المبسّطة. - إعدادات درجة الحرارة: إذا كان الرمز الحالي يضبط درجة الحرارة بشكل صريح (خاصةً على قيم منخفضة للحصول على نتائج حتمية)، ننصحك بإزالة هذه المَعلمة واستخدام القيمة التلقائية 1.0 في Gemini 3 لتجنُّب المشاكل المحتملة في التكرار أو انخفاض الأداء في المهام المعقّدة.
- فهم مستندات PDF والمستندات: تم تغيير درجة الدقة التلقائية لتكنولوجيا التعرّف البصري على الأحرف (OCR) في ملفات PDF. إذا كنت تعتمد على سلوك معيّن لتحليل المستندات الكثيفة، اختبِر الإعداد الجديد
media_resolution_highلضمان استمرار الدقة. - استخدام الرموز المميزة: قد يؤدي الانتقال إلى الإعدادات التلقائية في Gemini 3 إلى زيادة استخدام الرموز المميزة لملفات PDF وتقليل استخدام الرموز المميزة للفيديوهات. إذا تجاوزت الطلبات الآن قدرة الاستيعاب بسبب زيادة دقة العرض التلقائية، ننصحك بتقليل دقة الوسائط بشكلٍ صريح.
- تقسيم الصور: لا تتوفّر إمكانات تقسيم الصور (عرض أقنعة على مستوى البكسل للعناصر) في Gemini 3 Pro أو Gemini 3 Flash. بالنسبة إلى أحمال العمل التي تتطلّب تقسيم الصور الأصلي، ننصحك بمواصلة استخدام Gemini 2.5 Flash مع إيقاف ميزة "التفكير" أو Gemini Robotics-ER 1.5.
- توافق الأدوات: لا تتوافق أدوات "الاستناد إلى الخرائط" و"استخدام الكمبيوتر" مع نماذج Gemini 3 بعد، لذا لن يتم نقلها. بالإضافة إلى ذلك، لا تتوفّر بعد إمكانية الجمع بين الأدوات المضمّنة واستدعاء الدوال.
التوافق مع OpenAI
بالنسبة إلى المستخدمين الذين يستفيدون من طبقة التوافق مع OpenAI، يتم تلقائيًا ربط المَعلمات العادية بمثيلاتها في Gemini:
- يتم ربط
reasoning_effort(OAI) بـthinking_level(Gemini). يُرجى العِلم أنّ مستوى الدقةreasoning_effortالمتوسط يتوافق مع مستوى الدقةthinking_levelالعالي في Gemini 3 Flash.
أفضل الممارسات المتعلّقة بإدخال الطلبات
Gemini 3 هو نموذج للاستدلال، ما يغيّر طريقة إدخال الطلبات.
- تعليمات دقيقة: يجب أن تكون طلبات الإدخال موجزة. يقدّم Gemini 3 أفضل ردّ عند تلقّي تعليمات مباشرة وواضحة. قد يبالغ في تحليل الأساليب المطوّلة أو المعقّدة بشكل مفرط في هندسة الطلبات المستخدَمة مع النماذج القديمة.
- مستوى التفصيل في الإجابات: يكون مستوى التفصيل في الإجابات التي يقدّمها Gemini 3 أقل بشكل تلقائي، وهو يفضّل تقديم إجابات مباشرة وفعّالة. إذا كانت حالة الاستخدام تتطلّب شخصية أكثر حوارية أو "ودية"، عليك توجيه النموذج بشكل واضح في الطلب (على سبيل المثال، اشرح هذا الموضوع بأسلوب ودود ومفصّل").
- إدارة السياق: عند العمل مع مجموعات بيانات كبيرة (مثل الكتب الكاملة أو قواعد التعليمات البرمجية أو الفيديوهات الطويلة)، ضَع تعليماتك أو أسئلتك المحدّدة في نهاية الطلب، بعد سياق البيانات. استند في استدلال النموذج إلى البيانات المقدَّمة من خلال بدء سؤالك بعبارة مثل "استنادًا إلى المعلومات الواردة أعلاه...".
يمكنك الاطّلاع على مزيد من المعلومات حول استراتيجيات تصميم الطلبات في دليل هندسة الطلبات.
الأسئلة الشائعة
ما هو تاريخ آخر تحديث للبيانات في Gemini 3؟ تبلغ فترة توقّف المعلومات في نماذج Gemini 3 شهر يناير 2025. للحصول على معلومات أحدث، استخدِم أداة تحديد المصدر.
ما هي حدود قدرة الاستيعاب؟ تتيح نماذج Gemini 3 إمكانية استيعاب مليون رمز مميّز كحد أقصى، بالإضافة إلى إخراج ما يصل إلى 64 ألف رمز مميّز.
هل تتوفّر فئة مجانية من Gemini 3؟ يتضمّن Gemini 3 Flash
gemini-3-flash-previewفئة مجانية في Gemini API. يمكنك تجربة كل من Gemini 3 Pro وFlash مجانًا في Google AI Studio، ولكن لا تتوفّر حاليًا أي طبقة مجانية لنموذجgemini-3-pro-previewفي Gemini API.هل سيظلّ رمز
thinking_budgetالقديم صالحًا؟ نعم، لا يزالthinking_budgetمتاحًا لضمان التوافق مع الأنظمة القديمة، ولكنّنا ننصح بالانتقال إلىthinking_levelلتحقيق أداء أكثر قابلية للتوقّع. لا تستخدِم كليهما في الطلب نفسه.هل يتوافق Gemini 3 مع Batch API؟ نعم، يتوافق Gemini 3 مع Batch API.
هل تتوفّر ميزة "التخزين المؤقت حسب السياق"؟ نعم، تتوافق ميزة "التخزين المؤقت للسياق" مع Gemini 3.
ما هي الأدوات المتوافقة مع Gemini 3؟ يتوافق Gemini 3 مع بحث Google والبحث عن الملفات وتنفيذ الرموز البرمجية وسياق عنوان URL. يتيح أيضًا استخدام استدعاء الدوال العادي لأدواتك المخصّصة (ولكن ليس مع الأدوات المضمّنة). يُرجى العِلم أنّ ميزتَي الاستناد إلى "خرائط Google" واستخدام الكمبيوتر غير متاحتَين حاليًا.
الخطوات التالية
- بدء استخدام "كتاب وصفات Gemini 3"
- راجِع دليل Cookbook المخصّص حول مستويات التفكير وكيفية نقل البيانات من ميزانية التفكير إلى مستويات التفكير.