Skip to main content
Google Gemini to bardzo potężny system konwersacyjny AI, który może generować płynne i naturalne odpowiedzi w ciągu kilku sekund poprzez wprowadzenie promptu. Niniejszy dokument opisuje głównie sposób użycia Gemini Generate Content API, który jest oficjalnym natywnym formatem API Google i obsługuje dwa endpointy: generateContent oraz streamGenerateContent.

Różnice względem Chat Completions API

Gemini Generate Content API używa oficjalnego natywnego formatu żądań Google (pole contents), zamiast formatu kompatybilnego z OpenAI (pole messages). Jeśli używasz już Google Gemini SDK lub znasz oficjalny format API, możesz bezpośrednio użyć tego API bez modyfikowania formatu żądania.

Aktualnie obsługiwany zakres

Interfejs przyjmuje wejście tekstowe, obrazy, wideo i audio (inlineData lub fileData), konfigurację myślenia oraz niestandardowe deklaracje funkcji. Nie ma jeszcze gwarancji jednolitej dostępności dla natywnych pól, takich jak wyjście audio, wbudowane narzędzia i jawne buforowanie kontekstu; należy kierować się rzeczywistą odpowiedzią konkretnego modelu. Podczas przesyłania plików, takich jak audio, za pomocą fileData.fileUri, upewnij się, że plik jest bezpośrednio dostępny przez HTTPS, nie zależy od stanu logowania oraz że okres ważności podpisanego linku obejmuje cały czas przetwarzania żądania. Niestreamingowa analiza audio zwraca wynik dopiero po zakończeniu przetwarzania przez model i może trwać ponad 90 sekund; klient powinien ustawić wystarczająco długi całkowity limit czasu zgodnie z rozmiarem pliku i scenariuszem biznesowym, aby uniknąć rozłączenia, gdy serwer nadal przetwarza dane.

Proces aplikowania

Przed użyciem Gemini Generate Content API odwiedź najpierw stronę Gemini Generate Content API i kliknij przycisk „Uzyskaj”, aby otrzymać poświadczenia wymagane do żądania. Jeśli nie jesteś jeszcze zalogowany lub zarejestrowany, nastąpi automatyczne przekierowanie na stronę logowania. Pierwsza aplikacja obejmuje bezpłatny limit.

Podstawowe użycie

Non-Streaming (niestreamingowe)

Wyślij żądanie POST do /v1beta/models/{model}:generateContent:
Wskazówka: flash z serii gemini-3.x to model rozumujący, który najpierw zużywa reasoning tokens; ustaw generationConfig.maxOutputTokens na wartość powyżej 512, w przeciwnym razie może zostać zwrócona tylko pusta treść.
Przykład zwróconego wyniku:
Pola tokenów w usageMetadata są rozliczane zgodnie z natywną semantyką Gemini:
  • promptTokenCount obejmuje cachedContentTokenCount; część trafiająca do pamięci podręcznej jest obliczana według ceny odczytu z pamięci podręcznej i nie jest ponownie liczona jako zwykłe wejście.
  • promptTokensDetails oraz cacheTokensDetails są normalizowane jako text_tokens, image_tokens, video_tokens, audio_tokens oraz odpowiadające im szczegóły cached_* w usage.prompt_tokens_details. Wartości te są odpowiednio zawarte w prompt_tokens oraz cached_tokens; różne modalności są przeliczane wyłącznie według własnych cen i nie są naliczane podwójnie.
  • Zarówno candidatesTokenCount, jak i thoughtsTokenCount są obliczane według ceny tokenów wyjściowych.
  • toolUsePromptTokenCount to niezależne tokeny wejściowe narzędzia, obliczane według ceny tokenów wejściowych.
Ace Data Cloud dodatkowo zwraca znormalizowany obiekt usage; niezależnie od protokołu modelu koszt tego wywołania jest jednolicie odczytywany z usage.cost. cost jest opcjonalnym podglądem kosztu; gdy podgląd ceny jest tymczasowo niedostępny, odpowiedź modelu nadal zostanie normalnie zwrócona, ale może nie zawierać tego pola. Ostateczne rozliczenie opiera się na rekordach użycia.

Streaming (strumieniowe)

Wyślij żądanie POST do /v1beta/models/{model}:streamGenerateContent?alt=sse:
Odpowiedź strumieniowa będzie stopniowo zwracać treść w formacie SSE (Server-Sent Events). Zdarzenia pośrednie zazwyczaj zawierają jedynie treść przyrostową; zdarzenie końcowe zawierające wiarygodne dane użycia będzie zawierać usageMetadata oraz znormalizowane usage, a koszt nadal znajduje się w usage.cost:
Zamknięcie połączenia oznacza zakończenie strumienia; natywny strumień Gemini nie wysyła data: [DONE]. Jeśli podgląd ceny końcowej jest tymczasowo niedostępny, usage nadal zwróci użycie tokenów, ale pominie cost.

Obsługiwane modele

Zaawansowane funkcje

Instrukcje systemowe

Konfiguracja generowania

Tryb JSON

Tryb myślenia (Thinking)

Modele obsługujące funkcję myślenia (takie jak gemini-2.5-flash, gemini-2.5-pro) mogą włączyć tryb myślenia:

Wywoływanie funkcji

Rozmowy wieloturowe

Rozumienie obrazów

Ustawienia bezpieczeństwa

Filtrowanie treści można kontrolować za pomocą safetySettings:

Obsługa błędów