Skorzystaj z tego przewodnika, aby diagnozować i rozwiązywać typowe problemy, które pojawiają się podczas wywoływania interfejsu Gemini API. Problemy mogą występować zarówno w usłudze backendu Gemini API, jak i w pakietach 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 żądanie w regionie, w którym bezpłatna wersja nie jest obsługiwana, a w projekcie w Google AI Studio nie masz włączonych rozliczeń. | Aby korzystać z Gemini API, musisz skonfigurować abonament w Google AI Studio. | 
| 403 | PERMISSION_DENIED | Twój klucz 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 ponowić prośbę. Jeśli problem będzie się powtarzać, zgłoś go, klikając przycisk 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 ponowić prośbę. Jeśli problem będzie się powtarzać, zgłoś go, klikając przycisk 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 zużycie 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 jest on zgodny z filtrami ustawionymi w tym wywołaniu.
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 prompta 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. | 
 | 
| 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 \ulub\t, może to prowadzić do powtarzających się znaków nowego wiersza. | 
 | 
| 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. | 
 | 
| 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ć. | 
 | 
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ąć.
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.