Przewodnik rozwiązywania problemów

Ten przewodnik pomoże Ci zdiagnozować i rozwiązać typowe problemy, które pojawiają się podczas wywoływania interfejsu Gemini API. Możesz napotkać problemy związane z usługą backendu Gemini API lub pakietami SDK klienta. Nasze pakiety SDK klienta są udostępnione na licencji open source w tych repozytoriach:

Jeśli napotkasz problemy z kluczem interfejsu API, sprawdź, czy został on prawidłowo skonfigurowany zgodnie z przewodnikiem konfiguracji klucza interfejsu API.

Kody błędów usługi backendu Gemini API

W tabeli poniżej znajdziesz listę typowych kodów błędów backendu, które możesz napotkać, wraz z wyjaśnieniami ich przyczyn i sposobami rozwiązywania problemów:

Kod HTTP Stan Opis Przykład Rozwiązanie
400 INVALID_ARGUMENT Treść żądania jest nieprawidłowa. W żądaniu jest błąd w pisowni lub brakuje wymaganego pola. Format żądania, przykłady i obsługiwane wersje znajdziesz w dokumentacji interfejsu API. Używanie funkcji z nowszej wersji interfejsu API ze starszym punktem końcowym może powodować błędy.
400 FAILED_PRECONDITION Bezpłatna wersja interfejsu Gemini API nie jest dostępna w Twoim kraju. Włącz płatności w projekcie w Google AI Studio. Wysyłasz prośbę w regionie, w którym bezpłatna wersja nie jest obsługiwana, a w projekcie w Google AI Studio nie masz włączonego rozliczenia. Aby korzystać z Gemini API, musisz skonfigurować abonament w Google AI Studio.
403 PERMISSION_DENIED Twój klucz interfejsu API nie ma wymaganych uprawnień. Używasz nieprawidłowego klucza interfejsu API. Próbujesz użyć dostosowanego modelu bez prawidłowego uwierzytelniania. Sprawdź, czy klucz interfejsu API jest ustawiony i ma odpowiedni dostęp. Aby korzystać z dostosowanych modeli, musisz przejść odpowiednią weryfikację.
404 NOT_FOUND Nie znaleziono żądanego zasobu. Nie znaleziono pliku obrazu, audio ani wideo, do którego odwołuje się Twoja prośba. Sprawdź, czy wszystkie parametry w żądaniu są prawidłowe w przypadku Twojej wersji interfejsu API.
429 RESOURCE_EXHAUSTED Przekroczono limit częstotliwości. Wysyłasz zbyt wiele żądań na minutę za pomocą bezpłatnej wersji Gemini API. Sprawdź, czy nie przekraczasz limitu żądań modelu. W razie potrzeby poproś o zwiększenie limitu.
500 DO UŻYTKU WEWNĘTRZNEGO Po stronie Google wystąpił nieoczekiwany błąd. Kontekst wejściowy jest za długi. Zmniejsz kontekst wejściowy lub tymczasowo przełącz się na inny model (np. z Gemini 1.5 Pro na Gemini 1.5 Flash) i sprawdź, czy to pomoże. Możesz też poczekać chwilę i ponownie przesłać prośbę. Jeśli problem będzie się powtarzać, zgłoś go, korzystając z przycisku Prześlij opinię w Google AI Studio.
503 PRODUKT NIEDOSTĘPNY Usługa może być tymczasowo przeciążona lub niedostępna. Usługa tymczasowo nie ma wystarczającej mocy obliczeniowej. Tymczasowo przełącz się na inny model (np. z Gemini 1.5 Pro na Gemini 1.5 Flash) i sprawdź, czy działa. Możesz też poczekać chwilę i ponownie przesłać prośbę. Jeśli problem będzie się powtarzać, zgłoś go, korzystając z przycisku Prześlij opinię w Google AI Studio.
504 DEADLINE_EXCEEDED Usługa nie może zakończyć przetwarzania w terminie. Twój prompt (lub kontekst) jest zbyt duży, aby można go było przetworzyć na czas. Aby uniknąć tego błędu, ustaw w żądaniu klienta dłuższy „limit czasu”.

Sprawdzanie wywołań interfejsu API pod kątem błędów parametrów modelu

Sprawdź, czy parametry modelu mieszczą się w tych zakresach wartości:

Parametr modelu Wartości (zakres)
Liczba kandydatów 1–8 (liczba całkowita)
Temperatura 0,0–1,0
Maksymalna liczba tokenów wyjściowych Użyj get_model (Python), aby określić maksymalną liczbę tokenów dla używanego modelu.
TopP 0,0–1,0

Oprócz sprawdzania wartości parametrów upewnij się, że używasz prawidłowej wersji interfejsu API (np. /v1 lub /v1beta) i model, który obsługuje potrzebne funkcje. Jeśli na przykład funkcja jest w wersji beta, będzie dostępna tylko w wersji interfejsu API /v1beta.

Sprawdź, czy masz odpowiedni model

Sprawdź, czy używasz obsługiwanego modelu wymienionego na naszej stronie z modelami.

Większe opóźnienie lub wykorzystanie tokenów w przypadku modeli 2.5

Jeśli w przypadku modeli 2.5 Flash i Pro obserwujesz większe opóźnienia lub zużycie tokenów, może to być spowodowane tym, że myślenie jest domyślnie włączone w celu zwiększenia jakości. Jeśli priorytetem jest szybkość lub chcesz zminimalizować koszty, możesz dostosować lub wyłączyć myślenie.

Wskazówki i przykładowy kod znajdziesz na stronie z informacjami.

Problemy z bezpieczeństwem

Jeśli zobaczysz komunikat o tym, że prompt został zablokowany z powodu ustawienia bezpieczeństwa w wywołaniu interfejsu API, sprawdź, czy prompt jest zgodny z filtrami ustawionymi w wywołaniu interfejsu API.

Jeśli zobaczysz symbol BlockedReason.OTHER, zapytanie lub odpowiedź mogą naruszać warunki korzystania z usługi lub być w inny sposób nieobsługiwane.

Problem z recytacją

Jeśli zobaczysz, że model przestał generować dane wyjściowe z powodu RECITATION, oznacza to, że dane wyjściowe modelu mogą przypominać określone dane. Aby to naprawić, spróbuj jak najbardziej urozmaicić prompt lub kontekst i użyj wyższej temperatury.

Problem z powtarzającymi się tokenami

Jeśli widzisz powtarzające się tokeny wyjściowe, wypróbuj te sugestie, aby je ograniczyć lub wyeliminować.

Opis Przyczyna Sugerowane obejście
Powtórzone łączniki w tabelach Markdown Może się to zdarzyć, gdy zawartość tabeli jest długa, ponieważ model próbuje utworzyć wizualnie wyrównaną tabelę Markdown. Wyrównanie w Markdownie nie jest jednak konieczne do prawidłowego renderowania.

Dodaj do promptu instrukcje, aby podać modelowi konkretne wytyczne dotyczące generowania tabel w formacie Markdown. Podaj przykłady zgodne z tymi wytycznymi. Możesz też spróbować dostosować temperaturę. W przypadku generowania kodu lub bardzo uporządkowanych danych wyjściowych, takich jak tabele Markdown, lepiej sprawdzają się wysokie wartości temperatury (>= 0,8).

Oto przykładowy zestaw wytycznych, które możesz dodać do promptu, aby zapobiec temu problemowi:

          # 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.
        
Powtarzające się tokeny w tabelach Markdown Podobnie jak w przypadku powtarzających się łączników, dzieje się tak, gdy model próbuje wizualnie wyrównać zawartość tabeli. Wyrównanie w Markdown nie jest wymagane do prawidłowego renderowania.
  • Spróbuj dodać do promptu systemowego instrukcje takie jak te:
                FOR TABLE HEADINGS, IMMEDIATELY ADD ' |' AFTER THE TABLE HEADING.
              
  • Spróbuj dostosować temperaturę. Wyższe temperatury (≥ 0,8) zwykle pomagają wyeliminować powtórzenia lub duplikaty w danych wyjściowych.
Powtórzone znaki nowego wiersza (\n) w uporządkowanych danych wyjściowych Jeśli dane wejściowe modelu zawierają znaki Unicode lub sekwencje ucieczki, takie jak \u lub \t, może to prowadzić do powtarzających się znaków nowego wiersza.
  • Sprawdź, czy w prompcie nie ma zabronionych sekwencji ucieczki, i zastąp je znakami UTF-8. Na przykład sekwencja ucieczki \u w przykładach JSON może spowodować, że model będzie jej używać również w danych wyjściowych.
  • Poinformuj model o dozwolonych znakach ucieczki. Dodaj instrukcję systemową, np. taką:
                In quoted strings, the only allowed escape sequences are \\, \n, and \". Instead of \u escapes, use UTF-8.
              
Powtarzający się tekst w przypadku korzystania z uporządkowanych danych wyjściowych Jeśli dane wyjściowe modelu mają inną kolejność pól niż zdefiniowany schemat strukturalny, może to prowadzić do powtarzania się tekstu.
  • Nie określaj kolejności pól w prompcie.
  • Ustaw wszystkie pola wyjściowe jako wymagane.
Wielokrotne wywoływanie narzędzia Może się tak zdarzyć, jeśli model utraci kontekst poprzednich przemyśleń lub wywoła niedostępny punkt końcowy, do którego jest zmuszony. Poinstruuj model, aby zachowywał stan w procesie myślowym. Dodaj ten tekst na końcu instrukcji systemowych:
        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.
      
Powtarzający się tekst, który nie jest częścią danych wyjściowych w formacie strukturalnym Może się tak zdarzyć, jeśli model utknie na żądaniu, którego nie może rozwiązać.
  • Jeśli myślenie jest włączone, w instrukcjach unikaj podawania wyraźnych poleceń dotyczących tego, jak rozwiązać problem. Poproś tylko o końcowy wynik.
  • Wypróbuj wyższą temperaturę >= 0,8.
  • Dodaj instrukcje, np. „Bądź zwięzły”, „Nie powtarzaj się” lub „Podaj odpowiedź tylko raz”.

Ulepszanie danych wyjściowych modelu

Aby uzyskać wyższą jakość danych wyjściowych modelu, spróbuj pisać bardziej uporządkowane prompty. Na stronie przewodnika po inżynierii promptów znajdziesz podstawowe koncepcje, strategie i sprawdzone metody, które pomogą Ci zacząć.

Jeśli masz setki przykładów dobrych par danych wejściowych i wyjściowych, możesz też rozważyć dostrajanie modelu.

Limity tokenów

Aby dowiedzieć się więcej o liczeniu tokenów i ich limitach, przeczytaj nasz przewodnik po tokenach.

Znane problemy

  • Interfejs API obsługuje tylko wybrane języki. Przesyłanie promptów w nieobsługiwanych językach może skutkować nieoczekiwanymi lub nawet zablokowanymi odpowiedziami. Aktualne informacje o dostępnych językach znajdziesz na tej stronie.

Zgłoś błąd

Jeśli masz pytania, dołącz do dyskusji na forum dla deweloperów Google AI.