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

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

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

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

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

کد HTTP وضعیت توضیحات مثال راه حل
400 INVALID_ARGUMENT بدنه درخواست بد شکل است. یک اشتباه تایپی یا یک قسمت الزامی در درخواست شما وجود ندارد. مرجع API را برای قالب درخواست، نمونه ها و نسخه های پشتیبانی شده بررسی کنید. استفاده از ویژگی‌های نسخه API جدیدتر با نقطه پایانی قدیمی‌تر می‌تواند باعث ایجاد خطا شود.
400 FAILED_PRECONDITION سطح رایگان Gemini API در کشور شما در دسترس نیست. لطفاً صورتحساب پروژه خود را در Google AI Studio فعال کنید. شما در منطقه‌ای درخواست می‌کنید که در آن لایه رایگان پشتیبانی نمی‌شود و صورت‌حساب پروژه خود را در Google AI Studio فعال نکرده‌اید. برای استفاده از Gemini API، باید با استفاده از Google AI Studio یک طرح پولی تنظیم کنید.
403 PERMISSION_DENIED کلید API شما مجوزهای لازم را ندارد. شما از کلید API اشتباه استفاده می کنید. شما در حال تلاش برای استفاده از یک مدل تنظیم شده بدون انجام احراز هویت مناسب هستید. بررسی کنید که کلید API تنظیم شده باشد و دسترسی مناسبی داشته باشد. و مطمئن شوید که برای استفاده از مدل های تنظیم شده، احراز هویت مناسب را انجام داده اید.
404 NOT_FOUND منبع درخواستی پیدا نشد. تصویر، فایل صوتی یا ویدیویی که در درخواست شما ارجاع داده شده بود، یافت نشد. بررسی کنید که آیا تمام پارامترهای درخواست شما برای نسخه API شما معتبر هستند یا خیر .
429 RESOURCE_EXHAUSTED شما از حد مجاز تجاوز کرده اید. شما در هر دقیقه درخواست های زیادی را با API لایه رایگان Gemini ارسال می کنید. بررسی کنید که در محدوده نرخ مدل هستید. در صورت نیاز درخواست افزایش سهمیه کنید .
500 داخلی یک خطای غیرمنتظره در سمت Google رخ داد. زمینه ورودی شما خیلی طولانی است. زمینه ورودی خود را کاهش دهید یا به طور موقت به مدل دیگری بروید (مثلاً از Gemini 1.5 Pro به Gemini 1.5 Flash) و ببینید که آیا کار می کند یا خیر. یا کمی صبر کنید و درخواست خود را دوباره امتحان کنید. اگر بعد از امتحان مجدد مشکل همچنان ادامه داشت، لطفاً با استفاده از دکمه ارسال بازخورد در Google AI Studio آن را گزارش دهید.
503 در دسترس نیست ممکن است سرویس به طور موقت بیش از حد بارگیری شده یا از کار بیفتد. ظرفیت سرویس به طور موقت در حال اتمام است. به طور موقت به مدل دیگری بروید (مثلاً از Gemini 1.5 Pro به Gemini 1.5 Flash) و ببینید که آیا کار می کند یا خیر. یا کمی صبر کنید و درخواست خود را دوباره امتحان کنید. اگر بعد از امتحان مجدد مشکل همچنان ادامه داشت، لطفاً با استفاده از دکمه ارسال بازخورد در Google AI Studio آن را گزارش دهید.
504 DEADLINE_EXCEEDED این سرویس نمی تواند پردازش را در مهلت مقرر به پایان برساند. درخواست (یا زمینه) شما برای پردازش به موقع بسیار بزرگ است. برای جلوگیری از این خطا، یک "تایم اوت" بزرگتر در درخواست مشتری خود تنظیم کنید.

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

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

پارامتر مدل مقادیر (محدوده)
تعداد نامزدها 1-8 (عدد صحیح)
دما 0.0-1.0
حداکثر توکن های خروجی از get_model ( Python ) برای تعیین حداکثر تعداد توکن برای مدلی که استفاده می کنید استفاده کنید.
TopP 0.0-1.0

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

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

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

تأخیر بیشتر یا استفاده توکن با مدل های 2.5

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

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

مسائل ایمنی

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

اگر 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 برای رندر صحیح لازم نیست.
  • سعی کنید دستورالعمل هایی مانند موارد زیر را به اعلان سیستم خود اضافه کنید:
                FOR TABLE HEADINGS, IMMEDIATELY ADD ' |' AFTER THE TABLE HEADING.
              
  • سعی کنید دما را تنظیم کنید. دماهای بالاتر (>= 0.8) به طور کلی به حذف تکرار یا تکرار در خروجی کمک می کند.
تکرار خطوط جدید ( \n ) در خروجی ساختاریافته وقتی ورودی مدل حاوی یونیکد یا دنباله‌های فرار مانند \u یا \t باشد، می‌تواند به خطوط جدید تکرار شود.
  • دنباله های فرار ممنوع را با کاراکترهای UTF-8 در درخواست خود بررسی کرده و جایگزین کنید. برای مثال، \u sequence escape در مثال‌های JSON شما می‌تواند باعث شود که مدل از آنها در خروجی خود نیز استفاده کند.
  • مدل را در مورد فرارهای مجاز آموزش دهید. یک دستورالعمل سیستم مانند این اضافه کنید:
                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 فقط از تعدادی زبان منتخب پشتیبانی می کند. ارسال درخواست‌ها به زبان‌های پشتیبانی‌نشده می‌تواند پاسخ‌های غیرمنتظره یا حتی مسدود شده ایجاد کند. برای به‌روزرسانی ، زبان‌های موجود را ببینید.

یک اشکال را ثبت کنید

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