راهنمای عیب یابی

از این راهنما برای کمک به تشخیص و حل مشکلات رایجی که هنگام فراخوانی API Gemini پیش می‌آیند، استفاده کنید. ممکن است با مشکلاتی از سرویس backend API Gemini یا SDK های کلاینت مواجه شوید. SDK های کلاینت ما در مخازن زیر به صورت متن باز ارائه می‌شوند:

اگر با مشکل کلید API مواجه شدید، طبق راهنمای تنظیم کلید API ، تأیید کنید که کلید API خود را به درستی تنظیم کرده‌اید.

کدهای خطای سرویس Backend API Gemini

جدول زیر کدهای خطای رایج backend که ممکن است با آنها مواجه شوید را به همراه توضیحاتی در مورد علل و مراحل عیب‌یابی آنها فهرست می‌کند:

کد HTTP وضعیت توضیحات مثال راه حل
۴۰۰ آرگومان نامعتبر بدنه درخواست ناقص است. در درخواست شما اشتباه تایپی وجود دارد یا فیلد الزامی از قلم افتاده است. برای اطلاع از قالب درخواست، مثال‌ها و نسخه‌های پشتیبانی‌شده ، مرجع API را بررسی کنید. استفاده از ویژگی‌های نسخه جدیدتر API با یک نقطه پایانی قدیمی‌تر می‌تواند باعث خطا شود.
۴۰۰ پیش‌شرط ناموفق سطح رایگان API جمینی در کشور شما در دسترس نیست. لطفاً امکان پرداخت هزینه را برای پروژه خود در Google AI Studio فعال کنید. شما در منطقه‌ای درخواست می‌دهید که سطح رایگان پشتیبانی نمی‌شود و پرداخت هزینه را برای پروژه خود در Google AI Studio فعال نکرده‌اید. برای استفاده از رابط برنامه‌نویسی کاربردی (API) جمینی، باید با استفاده از Google AI Studio یک طرح پولی راه‌اندازی کنید.
۴۰۳ مجوز_رد_شد کلید API شما مجوزهای لازم را ندارد. شما از کلید API اشتباه استفاده می‌کنید؛ شما سعی دارید از یک مدل تنظیم‌شده بدون احراز هویت مناسب استفاده کنید. بررسی کنید که کلید API شما تنظیم شده باشد و دسترسی لازم را داشته باشد. و مطمئن شوید که برای استفاده از مدل‌های تنظیم‌شده، احراز هویت مناسبی را انجام می‌دهید.
۴۰۴ یافت نشد منبع مورد نظر یافت نشد. فایل تصویری، صوتی یا ویدیویی که در درخواست شما به آن اشاره شده باشد، یافت نشد. بررسی کنید که آیا تمام پارامترهای درخواست شما برای نسخه API شما معتبر هستند یا خیر.
۴۲۹ منابع_تمام_شده شما از حد مجاز نرخ فراتر رفته‌اید. شما با استفاده از API رایگان Gemini، در هر دقیقه درخواست‌های زیادی ارسال می‌کنید. تأیید کنید که در محدوده نرخ مدل هستید. در صورت نیاز، درخواست افزایش سهمیه دهید .
۵۰۰ داخلی خطای غیرمنتظره‌ای از طرف گوگل رخ داده است. متن ورودی شما خیلی طولانی است. زمینه ورودی خود را کاهش دهید یا موقتاً به مدل دیگری (مثلاً از Gemini 2.5 Pro به Gemini 2.5 Flash) تغییر دهید و ببینید که آیا کار می‌کند یا خیر. یا کمی صبر کنید و درخواست خود را دوباره امتحان کنید. اگر مشکل پس از تلاش مجدد همچنان ادامه داشت، لطفاً آن را با استفاده از دکمه ارسال بازخورد در Google AI Studio گزارش دهید.
۵۰۳ غیرقابل دسترس ممکن است سرویس موقتاً دچار اضافه بار یا قطعی باشد. ظرفیت سرویس موقتاً در حال اتمام است. موقتاً به مدل دیگری (مثلاً از Gemini 2.5 Pro به Gemini 2.5 Flash) تغییر دهید و ببینید که آیا کار می‌کند یا خیر. یا کمی صبر کنید و درخواست خود را دوباره امتحان کنید. اگر مشکل پس از تلاش مجدد همچنان ادامه داشت، لطفاً آن را با استفاده از دکمه ارسال بازخورد در Google AI Studio گزارش دهید.
۵۰۴ مهلت_تمام_شد این سرویس قادر به اتمام پردازش در مهلت مقرر نیست. درخواست (یا متن) شما برای پردازش به موقع، بسیار طولانی است. برای جلوگیری از این خطا، در درخواست کلاینت خود، یک «timeout» بزرگتر تنظیم کنید.

خطاهای پارامترهای مدل را در فراخوانی‌های API خود بررسی کنید

بررسی کنید که پارامترهای مدل شما در محدوده مقادیر زیر باشند:

پارامتر مدل مقادیر (محدوده)
تعداد کاندیداها ۱-۸ (عدد صحیح)
دما ۰.۰-۱.۰
حداکثر توکن‌های خروجی get_model ( پایتون ) برای تعیین حداکثر تعداد توکن‌ها برای مدلی که استفاده می‌کنید، استفاده کنید.
تاپ پی ۰.۰-۱.۰

علاوه بر بررسی مقادیر پارامترها، مطمئن شوید که از نسخه API صحیح (مثلاً /v1 یا /v1beta ) و مدلی که از ویژگی‌های مورد نیاز شما پشتیبانی می‌کند، استفاده می‌کنید. برای مثال، اگر یک ویژگی در نسخه بتا باشد، فقط در نسخه API /v1beta در دسترس خواهد بود.

بررسی کنید که آیا مدل مناسبی دارید یا خیر

تأیید کنید که از مدل پشتیبانی‌شده‌ای که در صفحه مدل‌های ما ذکر شده است استفاده می‌کنید.

تأخیر بالاتر یا استفاده از توکن با مدل‌های ۲.۵

اگر در مدل‌های ۲.۵ فلش و پرو شاهد تأخیر یا استفاده از توکن بالاتری هستید، می‌تواند به این دلیل باشد که این مدل‌ها به طور پیش‌فرض دارای قابلیت تفکر برای افزایش کیفیت هستند . اگر سرعت برایتان در اولویت است یا نیاز به کاهش هزینه‌ها دارید، می‌توانید قابلیت تفکر را تنظیم یا غیرفعال کنید.

برای راهنمایی و نمونه کد به صفحه تفکر مراجعه کنید.

مسائل ایمنی

اگر مشاهده کردید که به دلیل تنظیمات امنیتی در فراخوانی API شما، اعلان مسدود شده است، اعلان را با توجه به فیلترهایی که در فراخوانی API تنظیم کرده‌اید، بررسی کنید.

اگر BlockedReason.OTHER مشاهده کردید، ممکن است پرس‌وجو یا پاسخ، شرایط خدمات را نقض کند یا به هر دلیلی پشتیبانی نشود.

مسئله تلاوت

اگر مشاهده کردید که مدل به دلیل RECITATION تولید خروجی را متوقف می‌کند، این بدان معناست که خروجی مدل ممکن است شبیه داده‌های خاصی باشد. برای رفع این مشکل، سعی کنید prompt/context را تا حد امکان منحصر به فرد کنید و از دمای بالاتری استفاده کنید.

مشکل توکن‌های تکراری

اگر نشانه‌های خروجی مکرر را مشاهده کردید، پیشنهادات زیر را برای کاهش یا حذف آنها امتحان کنید.

توضیحات علت راه حل پیشنهادی
خط فاصله‌های تکراری در جداول 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 برای رندر صحیح لازم نیست.
  • سعی کنید دستورالعمل‌هایی مانند موارد زیر را به اعلان سیستم خود اضافه کنید:
                FOR TABLE HEADINGS, IMMEDIATELY ADD ' |' AFTER THE TABLE HEADING.
              
  • سعی کنید دما را تنظیم کنید. دماهای بالاتر (>= 0.8) عموماً به از بین بردن تکرارها یا کپی‌برداری‌ها در خروجی کمک می‌کنند.
تکرار خطوط جدید ( \n ) در خروجی ساختاریافته وقتی ورودی مدل شامل توالی‌های یونیکد یا escape مانند \u یا \t باشد، می‌تواند منجر به تکرار خط جدید شود.
  • در اعلان خود، توالی‌های فرار ممنوعه را بررسی و با کاراکترهای UTF-8 جایگزین کنید. برای مثال، \u توالی فرار در مثال‌های JSON شما می‌تواند باعث شود مدل از آنها در خروجی خود نیز استفاده کند.
  • به مدل در مورد escape های مجاز دستور دهید. یک دستور سیستمی مانند این اضافه کنید:
                In quoted strings, the only allowed escape sequences are \\, \n, and \". Instead of \u escapes, use UTF-8.
              
متن تکراری در استفاده از خروجی ساختاریافته وقتی خروجی مدل ترتیب فیلدها را متفاوت از طرحواره ساختار یافته تعریف شده داشته باشد، این می‌تواند منجر به تکرار متن شود.
  • ترتیب فیلدها را در اعلان خود مشخص نکنید.
  • تمام فیلدهای خروجی را اجباری کنید.
فراخوانی تکراری ابزار این اتفاق می‌تواند زمانی رخ دهد که مدل زمینه افکار قبلی را از دست بدهد و/یا یک نقطه پایانی غیرقابل دسترس را که مجبور به فراخوانی آن است، فراخوانی کند. به مدل دستور دهید که وضعیت را در فرآیند تفکر خود حفظ کند. این را به انتهای دستورالعمل‌های سیستم خود اضافه کنید:
        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.
      
متن تکراری که جزئی از خروجی ساختاریافته نیست این اتفاق زمانی رخ می‌دهد که مدل در درخواستی گیر کند که قادر به حل آن نباشد.
  • اگر تفکر فعال است، از دادن دستور صریح در مورد چگونگی تفکر در مورد یک مسئله در دستورالعمل‌ها خودداری کنید. فقط خروجی نهایی را بخواهید.
  • دمای بالاتر >= 0.8 را امتحان کنید.
  • دستورالعمل‌هایی مانند «مختصر صحبت کنید»، «حرفتان را تکرار نکنید» یا «یک بار پاسخ را ارائه دهید» را اضافه کنید.

کلیدهای API مسدود شده یا غیرفعال

این بخش نحوه بررسی مسدود شدن کلید API Gemini شما و اقدامات لازم در این مورد را شرح می‌دهد.

بفهمید که چرا کلیدها مسدود شده‌اند

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

تأیید کنید که آیا کلیدهای شما تحت تأثیر قرار گرفته‌اند یا خیر

اگر مشخص شود که کلید شما لو رفته است، دیگر نمی‌توانید از آن کلید با API Gemini استفاده کنید. می‌توانید از Google AI Studio استفاده کنید تا ببینید آیا هیچ یک از کلیدهای API شما از فراخوانی API Gemini مسدود شده‌اند یا خیر و کلیدهای جدیدی تولید کنید. همچنین ممکن است هنگام تلاش برای استفاده از این کلیدها، خطای زیر را مشاهده کنید:

Your API key was reported as leaked. Please use another API key.

اقدام برای کلیدهای API مسدود شده

شما باید با استفاده از Google AI Studio کلیدهای API جدیدی برای ادغام‌های Gemini API خود ایجاد کنید. ما اکیداً توصیه می‌کنیم شیوه‌های مدیریت کلید API خود را بررسی کنید تا مطمئن شوید که کلیدهای جدید شما ایمن نگه داشته می‌شوند و در معرض دید عموم قرار نمی‌گیرند.

هزینه‌های غیرمنتظره به دلیل آسیب‌پذیری

یک پرونده پشتیبانی صورتحساب ارسال کنید . تیم صورتحساب ما در حال کار بر روی این موضوع است و در اسرع وقت به‌روزرسانی‌ها را اطلاع‌رسانی خواهیم کرد.

اقدامات امنیتی گوگل برای کلیدهای فاش شده

در صورت فاش شدن کلیدهای API من، گوگل چگونه می‌خواهد به ایمن‌سازی حساب من در برابر افزایش هزینه و سوءاستفاده کمک کند؟

  • ما در حال حرکت به سمتی هستیم که وقتی شما با استفاده از Google AI Studio درخواست کلید جدیدی می‌کنید، کلیدهای API را صادر کنیم که به طور پیش‌فرض فقط به Google AI Studio محدود می‌شود و کلیدهای سایر سرویس‌ها را نمی‌پذیرد. این امر به جلوگیری از هرگونه استفاده ناخواسته از کلیدهای متقاطع کمک می‌کند.
  • ما به طور پیش‌فرض کلیدهای API که فاش شده و با API Gemini استفاده می‌شوند را مسدود می‌کنیم و به جلوگیری از سوءاستفاده از هزینه و داده‌های برنامه شما کمک می‌کنیم.
  • شما می‌توانید وضعیت کلیدهای API خود را در Google AI Studio مشاهده کنید و ما به محض شناسایی فاش شدن کلیدهای API شما، فوراً با شما تماس خواهیم گرفت تا اقدامات لازم را انجام دهیم.

بهبود خروجی مدل

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

محدودیت‌های توکن را درک کنید

برای درک بهتر نحوه شمارش توکن‌ها و محدودیت‌های آنها، راهنمای توکن ما را مطالعه کنید.

مشکلات شناخته شده

  • این API فقط از تعدادی زبان منتخب پشتیبانی می‌کند. ارسال درخواست‌ها به زبان‌های پشتیبانی نشده می‌تواند پاسخ‌های غیرمنتظره یا حتی مسدود شده ایجاد کند. برای به‌روزرسانی‌ها به زبان‌های موجود مراجعه کنید.

ثبت اشکال

اگر سوالی دارید، به بحث در انجمن توسعه‌دهندگان هوش مصنوعی گوگل بپیوندید.