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. |
|
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.
|
|
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ąć.
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.