استخدِم هذا الدليل لمساعدتك في تحديد المشاكل الشائعة وحلّها عند استدعاء Gemini API. قد تواجه مشاكل من خدمة الخلفية في Gemini API أو من حِزم SDK للعميل. حِزم SDK للعميل مفتوحة المصدر في المستودعات التالية:
إذا واجهت مشاكل في مفتاح واجهة برمجة التطبيقات، تأكَّد من إعداد مفتاح واجهة برمجة التطبيقات بشكلٍ صحيح وفقًا لـ دليل إعداد مفتاح واجهة برمجة التطبيقات.
رموز الخطأ
للحصول على مرجع كامل لجميع رموز الخطأ، بما في ذلك رموز حالة HTTP، رموز المحتوى المحظور ورموز خطأ المحتوى، اطّلِع على صفحة أخطاء واجهة برمجة التطبيقات.
استراتيجية إعادة المحاولة
إذا تلقّيت خطأً يشير إلى أنّه عليك إعادة محاولة طلبك (مثل 429 RESOURCE_EXHAUSTED أو 503 UNAVAILABLE)، ننصحك بتنفيذ استراتيجية التراجع الأسي. وهذا يعني الانتظار لفترة قصيرة قبل إعادة المحاولة الأولى، ثم زيادة وقت الانتظار تدريجيًا بين عمليات إعادة المحاولة اللاحقة.
تتضمّن حِزم SDK الرسمية للعميل في Gemini API، مثل Python SDK، منطقًا تلقائيًا لإعادة المحاولة مع التراجع الأسي تلقائيًا للتعامل مع الأخطاء المؤقتة، مثل المهلات ومشاكل الشبكة والحدود القصوى للطلبات (429 ورموز الحالة 5xx). على سبيل المثال، تعيد Python SDK تلقائيًا محاولة الأخطاء المؤقتة حتى أربع مرات مع تأخير أولي يبلغ ثانية واحدة تقريبًا وتأخير أقصى يبلغ 60 ثانية.
إذا كنت تُرسِل طلبات مباشرةً إلى REST API أو تخصّص منطق إعادة المحاولة، اتّبِع أفضل الممارسات التالية لزيادة احتمالية نجاح الطلب ومنع إرهاق الخدمة:
- استخدِم التراجع الأسي: انتظر لفترة قصيرة قبل إعادة المحاولة الأولى (مثل ثانية واحدة)، ثم زِد التأخير بشكلٍ أسي (مثل ثانيتين و4 ثوانٍ و8 ثوانٍ).
- أضِف تذبذبًا: أضِف "تذبذبًا" عشوائيًا إلى التأخير للمساعدة في منع جميع العملاء من إعادة المحاولة في الوقت نفسه تمامًا.
- أعِد المحاولة عند حدوث أخطاء معيّنة: أعِد المحاولة فقط عند حدوث أخطاء مؤقتة (مثل
429أو408أو5xx). لا تُعِد المحاولة عند حدوث أخطاء في العميل (مثل400أو403) لأنّها تشير إلى مشاكل مثل مفاتيح واجهة برمجة التطبيقات غير الصالحة أو البنية غير السليمة. - اضبط الحد الأقصى لعمليات إعادة المحاولة: حدِّد الحد الأقصى لعدد محاولات إعادة المحاولة لمنع حدوث حلقات لا نهائية.
التحقّق من طلبات البيانات من واجهة برمجة التطبيقات بحثًا عن أخطاء في مَعلمات النموذج
تأكَّد من أنّ مَعلمات النموذج تندرج ضمن القيم التالية:
| مَعلمة النموذج | القيم (النطاق) |
| عدد المرشّحين | من 1 إلى 8 (عدد صحيح) |
| درجة الحرارة | من 0.0 إلى 1.0 |
| أقصى عدد لرموز الناتج المميّزة | استخدِم صفحة النماذج لتحديد الحد الأقصى لعدد الرموز المميّزة للنموذج الذي تستخدمه. |
| TopP | من 0.0 إلى 1.0 |
بالإضافة إلى التحقّق من قيم المَعلمات، تأكَّد من أنّك تستخدم إصدار واجهة برمجة التطبيقات الصحيح
(مثل /v1 أو /v1beta) والنموذج الذي يتيح الميزات التي تحتاج إليها.
على سبيل المثال، إذا كانت إحدى الميزات في الإصدار التجريبي، لن تتوفّر إلا في إصدار واجهة برمجة التطبيقات /v1beta.
التحقّق مما إذا كان لديك النموذج المناسب
تأكَّد من أنّك تستخدم نموذجًا متوافقًا مدرَجًا في صفحة النماذج.
زيادة وقت الاستجابة أو استخدام الرموز المميّزة مع نماذج التفكير
غالبًا ما يحدث زيادة في وقت الاستجابة أو استخدام الرموز المميّزة لأنّ ميزة التفكير مفعّلة تلقائيًا في نماذج Gemini 3.x. تستخدم نماذج Gemini 2.5 التي تم إيقافها أيضًا ميزة التفكير التلقائية.
تُنشئ نماذج التفكير رموزًا مميّزة للاستدلال الداخلي لتحسين الجودة. تؤدي عملية الاستدلال هذه إلى زيادة وقت استجابة النموذج وإجمالي استهلاك الرموز المميّزة.
إذا كنت تعطي الأولوية لوقت الاستجابة الأقل أو تحتاج إلى تقليل التكاليف، يمكنك خفض مستوى التفكير أو إيقاف ميزة التفكير.
للحصول على تفاصيل الإعداد ونماذج التعليمات البرمجية، اطّلِع على دليل التفكير.
المشاكل المتعلّقة بالأمان
إذا ظهرت لك رسالة تشير إلى أنّه تم حظر طلب بسبب إعداد أمان في طلب البيانات من واجهة برمجة التطبيقات، راجِع الطلب وفقًا للفلاتر التي ضبطتها في طلب البيانات من واجهة برمجة التطبيقات.
إذا ظهرت لك BlockedReason.OTHER، قد يكون طلب البحث أو الرد ينتهك بنود
الخدمة أو قد لا يكون متوافقًا.
مشكلة في التلاوة
إذا توقّف النموذج عن إنشاء مخرجات النموذج بسبب السبب RECITATION، يعني ذلك أنّ مخرجات النموذج قد تشبه بيانات معيّنة. لحلّ هذه المشكلة، حاوِل جعل الطلب أو السياق فريدًا قدر الإمكان واستخدِم درجة عشوائية أعلى.
مشكلة في الرموز المميّزة المتكرّرة
إذا ظهرت لك رموز مميّزة متكرّرة في الناتج، جرِّب الاقتراحات التالية للمساعدة في تقليلها أو إزالتها.
| الوصف | السبب | الحل المقترَح |
|---|---|---|
| واصلات متكرّرة في جداول Markdown | يمكن أن يحدث ذلك عندما تكون محتويات الجدول طويلة أثناء محاولة النموذج إنشاء جدول Markdown متطابق بصريًا. ومع ذلك، ليس من الضروري أن يكون المحتوى متطابقًا في Markdown لكي يتم عرضه بشكلٍ صحيح. |
أضِف تعليمات في طلبك لمنح النموذج إرشادات محدّدة لإنشاء جداول Markdown. قدِّم أمثلة تتّبع هذه الإرشادات. يمكنك أيضًا محاولة تعديل درجة الحرارة. لإنشاء التعليمات البرمجية أو الناتج المنظَّم جدًا، مثل جداول Markdown، تبيّن أنّ درجة الحرارة العالية (أكبر من أو تساوي 0.8) تعمل بشكلٍ أفضل. في ما يلي مثال على مجموعة من الإرشادات التي يمكنك إضافتها إلى طلبك لمنع حدوث هذه المشكلة:
# Markdown Table Format
* Separator line: Markdown tables must include a separator line below
the header row. The separator line must use only 3 hyphens per
column, for example: |---|---|---|. Using more hypens like
----, -----, ------ can result in errors. Always
use |:---|, |---:|, or |---| in these separator strings.
For example:
| Date | Description | Attendees |
|---|---|---|
| 2024-10-26 | Annual Conference | 500 |
| 2025-01-15 | Q1 Planning Session | 25 |
* Alignment: Do not align columns. Always use |---|.
For three columns, use |---|---|---| as the separator line.
For four columns use |---|---|---|---| and so on.
* Conciseness: Keep cell content brief and to the point.
* Never pad column headers or other cells with lots of spaces to
match with width of other content. Only a single space on each side
is needed. For example, always do "| column name |" instead of
"| column name |". Extra spaces are wasteful.
A markdown renderer will automatically take care displaying
the content in a visually appealing form.
|
| رموز مميّزة متكرّرة في جداول Markdown | على غرار الواصلات المتكرّرة، يحدث ذلك عندما يحاول النموذج مطابقة محتويات الجدول بصريًا. ليس من الضروري أن يكون المحتوى متطابقًا في Markdown لكي يتم عرضه بشكلٍ صحيح. |
|
أسطر جديدة متكرّرة (\n) في الناتج المنظَّم
|
عندما يحتوي إدخال النموذج على تسلسلات أحرف Unicode أو تسلسلات أحرف الإلغاء، مثل
\u أو \t، يمكن أن يؤدي ذلك إلى أسطر جديدة متكرّرة.
|
|
| نص متكرّر عند استخدام الناتج المنظَّم | عندما يكون مخرجات النموذج بترتيب مختلف للحقول عن المخطط المنظَّم المحدّد، يمكن أن يؤدي ذلك إلى تكرار النص. |
|
| استدعاء الأداة بشكلٍ متكرّر | يمكن أن يحدث ذلك إذا فقد النموذج سياق الأفكار السابقة و/أو استدعى نقطة نهاية غير متاحة، ما يضطره إلى ذلك. |
أخبِر النموذج بالحفاظ على الحالة ضمن عملية التفكير.
أضِف ما يلي إلى نهاية تعليمات النظام:
When thinking silently: ALWAYS start the thought with a brief
(one sentence) recap of the current progress on the task. In
particular, consider whether the task is already done.
|
| نص متكرّر ليس جزءًا من الناتج المنظَّم | يمكن أن يحدث ذلك إذا توقّف النموذج عند طلب لا يمكنه حلّه. |
|
مفاتيح واجهة برمجة التطبيقات المحظورة أو غير العاملة
يوضّح هذا القسم كيفية التحقّق مما إذا كان مفتاح Gemini API محظورًا وما يجب فعله حيال ذلك.
فهم سبب حظر المفاتيح
رصدنا ثغرة أمنية قد تكون أدّت إلى كشف بعض مفاتيح واجهة برمجة التطبيقات للجميع. لحماية بياناتك ومنع الوصول غير المصرَّح به إليها، حظرنا بشكلٍ استباقي هذه المفاتيح المعروفة التي تم تسريبها من الوصول إلى Gemini API.
التأكّد مما إذا كانت مفاتيحك متأثرة
إذا كان مفتاحك معروفًا بأنّه تم تسريبه، لن تتمكّن بعد الآن من استخدامه مع Gemini API. يمكنك استخدام Google AI Studio لمعرفة ما إذا كان أي من مفاتيح واجهة برمجة التطبيقات محظورًا من استدعاء Gemini API وإنشاء مفاتيح جديدة. قد يظهر لك أيضًا الخطأ التالي عند محاولة استخدام هذه المفاتيح:
Your API key was reported as leaked. Please use another API key.
الإجراء المتخَذ بشأن مفاتيح واجهة برمجة التطبيقات المحظورة
عليك إنشاء مفاتيح واجهة برمجة تطبيقات جديدة لعمليات الدمج في Gemini API باستخدام Google AI Studio. ننصحك بشدة بمراجعة ممارسات إدارة مفاتيح واجهة برمجة التطبيقات لضمان الحفاظ على أمان مفاتيحك الجديدة وعدم كشفها للجميع.
رسوم غير متوقّعة بسبب الثغرة الأمنية
أرسِل طلب دعم بشأن الفوترة. يعمل فريق الفوترة على حلّ هذه المشكلة، وسنرسل إليك معلومات جديدة في أقرب وقت ممكن.
إجراءات الأمان التي تتّخذها Google بشأن المفاتيح التي تم تسريبها
كيف ستساعد Google في الحفاظ على أمان حسابي من تجاوز التكاليف وإساءة الاستخدام إذا تم تسريب مفاتيح واجهة برمجة التطبيقات؟
- نحن بصدد إصدار مفاتيح واجهة برمجة التطبيقات عند طلب مفتاح جديد باستخدام Google AI Studio، وسيقتصر هذا المفتاح تلقائيًا على Google AI Studio فقط ولن يقبل المفاتيح من الخدمات الأخرى. سيساعد ذلك في منع أي استخدام غير مقصود لمفاتيح متعددة.
- نحظر تلقائيًا مفاتيح واجهة برمجة التطبيقات التي تم تسريبها واستخدامها مع Gemini API، ما يساعد في منع إساءة استخدام التكاليف وبيانات تطبيقك.
- ستتمكّن من الاطّلاع على حالة مفاتيح واجهة برمجة التطبيقات ضمن Google AI Studio، وسنعمل على إرسال إشعارات استباقية إليك عندما نرصد أنّ مفاتيح واجهة برمجة التطبيقات تم تسريبها لاتّخاذ إجراء فوري.
تحسين مخرجات النموذج
للحصول على نواتج نموذج أعلى جودة، جرِّب كتابة طلبات أكثر تنظيمًا. تقدّم صفحة دليل هندسة الطلبات بعض المفاهيم الأساسية والاستراتيجيات وأفضل الممارسات لمساعدتك في البدء.
فهم الحدود القصوى للرموز المميّزة
اطّلِع على دليل الرموز المميّزة لفهم أفضل لكيفية عدّ الرموز المميّزة وحدودها القصوى.
المشاكل المعروفة
- لا تتيح واجهة برمجة التطبيقات سوى عدد من اللغات المحدّدة. يمكن أن يؤدي إرسال طلبات بلغات غير متوافقة إلى إنشاء ردود غير متوقّعة أو حتى محظورة. اطّلِع على اللغات المتوفّرة للحصول على معلومات جديدة.
الإبلاغ عن خطأ
انضم إلى المناقشة في منتدى مطوّري الذكاء الاصطناعي من Google إذا كانت لديك أسئلة.