Skorzystaj z tego przewodnika, by zdiagnozować i rozwiązać typowe problemy, które pojawiają się, wywołujesz interfejs Gemini API. Ogólnie możesz napotkać problemy z: za pomocą usługi backendu Gemini API lub pakietów SDK klienta. Pakiety SDK naszych klientów są na licencji open source w tych repozytoriach:
- generative-ai-python
- generative-ai-js
- generative-ai-android
- generative-ai-swift
- generative-ai-dart
- generative-ai-go
Jeśli napotkasz problemy z kluczem interfejsu API, upewnij się, że masz klucz interfejsu API zgodnie z przewodnikiem po konfiguracji klucza interfejsu API.
Kody błędów usługi backendu interfejsu Gemini API
Poniższa tabela zawiera typowe kody błędów backendu, które możesz napotkać, wraz z wyjaśnieniem ich przyczyn i sposobami rozwiązania tego problemu:
Kod HTTP | Status | Opis | Przykład | Rozwiązanie |
400 | INVALID_ARGUMENT | Treść żądania jest nieprawidłowa. | Prośba zawiera literówkę lub brakuje wymaganego pola. | Format żądania, przykłady i obsługiwane wersje znajdziesz w dokumentacji interfejsu API. Korzystanie z funkcji z nowszej wersji interfejsu API ze starszym punktem końcowym może powodować błędy. |
400 | FAILED_PRECONDITION | Poziom bezpłatny Gemini API nie jest dostępny w Twoim kraju. Włącz płatności w swoim projekcie w Google AI Studio. | Przesyłasz prośbę z regionu, w którym poziom bezpłatny nie jest obsługiwany i w Twoim projekcie nie włączono płatności w Google AI Studio. | Aby korzystać z Gemini API, musisz skonfigurować płatny abonament za pomocą Google AI Studio. |
403 | PERMISSION_DENIED | Twój klucz interfejsu API nie ma wymaganych uprawnień. | Używasz niewłaściwego klucza interfejsu API. Ty próbują używać modelu dostrojonego bez przeprowadzania odpowiedniego uwierzytelniania. | Sprawdź, czy Twój klucz interfejsu API jest ustawiony i ma odpowiednie uprawnienia dostępu. Przeprowadź też odpowiednie uwierzytelnianie, aby móc korzystać z dostrojonych modeli. |
404 | NOT_FOUND | Nie znaleziono żądanego zasobu. | Nie znaleziono pliku graficznego, audio ani wideo wskazanego w żądaniu. | Sprawdź, czy wszystkie parametry w żądaniu są prawidłowe w Twojej wersji interfejsu API. |
429 | RESOURCE_EXHAUSTED | Przekroczono limit liczby żądań. | Wysyłasz zbyt wiele żądań na minutę za pomocą interfejsu Gemini API poziomu bezpłatnego. | Sprawdź, czy nie przekraczasz limitu liczby żądań w modelu. W razie potrzeby poproś o zwiększenie limitu. |
500 | DO UŻYTKU WEWNĘTRZNEGO | Po stronie Google wystąpił nieoczekiwany błąd. | Kontekst danych wejściowych jest za długi. | Ogranicz 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 działa. Możesz też poczekać chwilę i spróbować ponownie. Jeśli mimo podjęcia ponownej próby problem nadal występuje, zgłoś go za pomocą przycisku Prześlij opinię w Google AI Studio. |
503 | PRODUKT NIEDOSTĘPNY | Usługa może być tymczasowo przeciążona lub wyłączona. | Pojemność usługi chwilowo się wyczerpuje. | Tymczasowo przełącz się na inny model (np. z Gemini 1.5 Pro na Gemini 1.5 Flash) i sprawdź, czy to działa. Możesz też poczekać chwilę i spróbować ponownie. Jeśli mimo podjęcia ponownej próby problem nadal występuje, zgłoś go za pomocą przycisku Prześlij opinię w Google AI Studio. |
504 | DEADLINE_EXCEEDED | Usługa nie może zakończyć przetwarzania w wyznaczonym terminie. | Prompt (lub kontekst) jest za duży, aby można go było przetworzyć na czas. | Ustaw większy „czas oczekiwania” w żądaniu klienta, by uniknąć tego błędu. |
Kody błędów pakietu SDK klienta w Pythonie
W tabeli poniżej znajdziesz typowe Błąd pakietu SDK klienta Python napotkanych kodów wraz z wyjaśnieniem ich przyczyn:
Typ wyjątku/błędu | Klasa | Opis |
---|---|---|
BlockedPromptException | google.generativeai.types.BlockedPromptException | Prośba jest zablokowana ze względów bezpieczeństwa. |
BrokenResponseError | google.generativeai.types.BrokenResponseError | Odpowiedź strumieniowa nie działa. Wyświetlana, gdy użytkownik uzyskuje dostęp do elementu, który wymaga pełnej odpowiedzi, na przykład do historii czatu. Sprawdź szczegóły błędu podane w zrzucie stosu. |
IncompleteIterationError | google.generativeai.types.IncompleteIterationError | Podnosina w przypadku uzyskiwania dostępu do elementu, który wymaga pełnej odpowiedzi interfejsu API, ale odpowiedź strumieniowa nie została w pełni powtórzona. Wywołaj resolve() w obiekcie odpowiedzi, aby przetworzyć iterację. |
StopCandidateException | google.generativeai.types.StopCandidateException | Interfejs API wysłał w odpowiedzi wyjątkową finish_reason . Sprawdź powód, aby dowiedzieć się, co zrobić dalej. |
PermissionDenied | google.api_core.exceptions.PermissionDenied | Nie masz uprawnień do żądanego zasobu (np. modelu). |
ResourceExhausted | google.api_core.exceptions.ResourceExhausted | Twój limit został wyczerpany. Poczekaj chwilę i spróbuj ponownie. Aby naprawić te błędy, rozważ skonfigurowanie automatycznych ponownych prób. |
AlreadyExists | google.api_core.exceptions.AlreadyExists | Dostrojony model o tym samym identyfikatorze już istnieje. Podczas dostrajania nowego modelu podaj unikalny identyfikator. |
InvalidArgument | google.api_core.exceptions.InvalidArgument | Nieprawidłowy argument. Przykładem może być plik, który jest za duży i przekracza limit rozmiaru ładunku. Inny klucz udostępnia nieprawidłowy klucz interfejsu API. |
DefaultCredentialsError | google.auth.exceptions.DefaultCredentialsError | Nie udało się uwierzytelnić. Sprawdź dokładnie klucz interfejsu API i spróbuj ponownie. |
RetryError | google.api_core.exceptions.RetryError | Może wystąpić, gdy używasz serwera proxy, który nie obsługuje gRPC. Spróbuj użyć transportu REST w genai.configure(..., transport="rest") . |
Sprawdź wywołania interfejsu API pod kątem błędów parametrów modelu
Upewnij się, że parametry modelu nie przekraczają tych wartości:
Parametr modelu | Wartości (zakres) |
Liczba kandydatów | 1–8 (całkowita) |
Temperatura | 0,0–1,0 |
Maksymalna liczba tokenów wyjściowych |
Używaj
get_model (Python)
aby określić maksymalną liczbę tokenów dla używanego modelu.
|
TopP | 0,0–1,0 |
Oprócz sprawdzenia wartości parametrów upewnij się, że stosujesz prawidłową wartość
Wersja interfejsu API (np. /v1
lub /v1beta
) i
który obsługuje potrzebne funkcje. Jeśli na przykład funkcja jest w wersji beta,
będzie dostępny tylko w wersji interfejsu API /v1beta
.
Sprawdź, czy masz właściwy model
Upewnij się, że używasz obsługiwanego modelu wymienionego w stronie modeli.
Problemy dotyczące bezpieczeństwa
Jeśli zauważysz, że prośba została zablokowana z powodu ustawienia bezpieczeństwa w wywołaniu interfejsu API, i sprawdzić prompt pod kątem filtrów ustawionych w wywołaniu interfejsu API.
Jeśli widzisz BlockedReason.OTHER
, zapytanie lub odpowiedź mogą naruszać warunki
usługi lub w inny sposób nie są obsługiwane.
Problem z recytacją
Jeśli zauważysz, że model przestaje generować dane wyjściowe z powodu argumentu RECITATION, co oznacza, że dane wyjściowe modelu mogą przypominać określone dane. Aby rozwiązać ten problem, spróbuj: jak najbardziej unikalne i uniwersalne oraz używaj wyższej temperatury.
Popraw dane wyjściowe modelu
Aby uzyskać wyższej jakości dane wyjściowe modelu, spróbuj napisać bardziej uporządkowane prompty. wprowadzenie do projektowania promptów kilka podstawowych koncepcji, strategii i sprawdzonych metod.
Jeśli masz setki przykładów dobrych par wejścia-wyjścia, możesz rozważ dostrajanie modelu.
Limity tokenów
Zapoznaj się z przewodnikiem dotyczącym tokenów, aby dowiedzieć się, jak , aby liczyć tokeny i ich limity.
Znane problemy
- Interfejs API obsługuje tylko kilka wybranych języków. Przesyłanie promptów w nieobsługiwane języki mogą generować nieoczekiwane, a nawet zablokowane odpowiedzi. Zobacz dostępnych języków.
Zgłoś błąd
Dołącz do dyskusji na forum dla programistów AI od Google .