Google Gemini, wybór modelu, API i realne koszty
Gemini to rodzina modeli Google z dwiema cechami, które odróżniają ją od konkurencji: oknem kontekstu sięgającym dwóch milionów tokenów oraz natywną obsługą obrazu, dźwięku i wideo w tym samym wywołaniu co tekst. Dostęp masz przez darmowe AI Studio do prób, przez Gemini API w kodzie oraz przez Vertex AI, gdy potrzebujesz warstwy korporacyjnej.
Gdzie właściwie uruchamiasz Gemini
Cztery drogi prowadzą do tego samego modelu i łatwo je pomylić przy szukaniu dokumentacji.
Aplikacja Gemini to interfejs dla użytkownika końcowego, bez znaczenia dla programisty poza szybkim sprawdzeniem odpowiedzi. Google AI Studio daje przeglądarkowy plac zabaw z podglądem promptu i generowaniem kodu, i to od niego warto zacząć. Gemini API to zwykłe wywołania HTTP z kluczem, wystarczające dla większości aplikacji. Vertex AI dokłada uwierzytelnianie kontem usługi, kontrolę regionu przetwarzania danych, limity organizacyjne i integrację z resztą Google Cloud.
Wybór między dwoma ostatnimi sprowadza się do wymogów. Jeśli w firmie obowiązuje przetwarzanie danych w Europie i rozliczenie przez istniejące konto chmurowe, idziesz w Vertex. Jeśli budujesz produkt i chcesz klucza w zmiennej środowiskowej, wystarczy Gemini API.
Modele i który wybrać
| Model | Cena za milion tokenów | Kontekst | Do czego |
|---|---|---|---|
| Gemini 3.1 Pro | 2 USD wejście, 12 USD wyjście do 200 tys. kontekstu, powyżej 4 i 18 USD | 2 mln | Analiza dużych dokumentów, trudne rozumowanie, kod |
| Gemini 3.6 Flash | 1,50 USD wejście, 7,50 USD wyjście | 1 mln | Nowsze wydanie Flasha, tańsze na wyjściu przy tej samej cenie wejścia |
| Gemini 3.5 Flash | 1,50 USD wejście, 9 USD wyjście | 1 mln | Codzienna praca produkcyjna, dobry stosunek jakości do ceny |
| Gemini 3.5 Flash-Lite | 0,30 USD wejście, 2,50 USD wyjście | 1 mln | Klasyfikacja, tagowanie, przetwarzanie masowe |
Reguła doboru jest prosta i rzadko zawodzi. Zacznij od Flash. Jeśli jakość wystarcza, zostań przy nim, bo różnica w cenie wobec Pro sięga kilkukrotności. Jeśli zadanie wymaga wielokrokowego rozumowania albo analizy dokumentu na kilkaset stron, przejdź na Pro. Do zadań powtarzalnych, gdzie liczy się przepustowość, a nie finezja, zejdź na Flash-Lite.
Od kwietnia 2026 modele z rodziny Pro są dostępne wyłącznie odpłatnie. Flash i Flash-Lite zachowały darmowy próg z obniżonymi limitami dziennymi, co nadal wystarcza do prototypu.
Jak realnie obniżyć rachunek
Dwa mechanizmy zmieniają koszt bardziej niż wybór modelu.
Buforowanie kontekstu obniża cenę powtarzanego wejścia do około 0,20 USD za milion tokenów, czyli o mniej więcej dziewięćdziesiąt procent. Ma to znaczenie wszędzie tam, gdzie ten sam duży fragment wraca przy każdym zapytaniu: instrukcja systemowa, dokumentacja produktu, regulamin. Bez bufora płacisz za te same tokeny przy każdym wywołaniu.
Rachunek ma tu jednak drugą pozycję, o której łatwo zapomnieć przy samej obniżce. Za utrzymanie bufora płacisz osobno, według czasu i rozmiaru, przy modelach Pro rzędu kilku dolarów za milion tokenów na godzinę. Bufor opłaca się więc przy ruchu gęstym w czasie, a nie przy kilku zapytaniach dziennie, bo wtedy koszt przechowywania przewyższa oszczędność na wejściu. Zanim go włączysz, policz oba składniki razem.
Przetwarzanie wsadowe daje pięćdziesiąt procent zniżki dla zadań, które nie muszą wrócić natychmiast. Nocna klasyfikacja dziesięciu tysięcy zgłoszeń albo generowanie opisów produktów mieści się w tym trybie idealnie.
Warto też sprawdzić, ile z Twojego wejścia w ogóle musi trafiać do modelu. W wielu aplikacjach prompt puchnie przez historię rozmowy dokładaną w całości przy każdym obrocie, choć wystarczyłoby kilka ostatnich wiadomości i streszczenie reszty. Sam ten zabieg potrafi obciąć rachunek o połowę, zanim sięgniesz po bufor czy tryb wsadowy.
Trzecim czynnikiem jest długość odpowiedzi. Wyjście kosztuje kilkukrotnie więcej niż wejście, więc instrukcja ograniczająca formę odpowiedzi tnie rachunek skuteczniej niż skracanie promptu. Prośba o listę pięciu punktów zamiast eseju to często różnica rzędu wielokrotności.
Pierwsze wywołanie
pip install google-genai
export GOOGLE_API_KEY=...from google import genai
client = genai.Client()
odpowiedz = client.models.generate_content(
model="gemini-3.5-flash",
contents="Podsumuj ponizsza umowe w pieciu punktach: " + tresc_umowy
)
print(odpowiedz.text)W TypeScripcie układ jest analogiczny i wpina się bez problemu w trasę API Next.js.
import { GoogleGenAI } from '@google/genai'
const ai = new GoogleGenAI({})
export async function POST(req: Request) {
const { pytanie } = await req.json()
const wynik = await ai.models.generateContent({
model: 'gemini-3.5-flash',
contents: pytanie
})
return Response.json({ odpowiedz: wynik.text })
}Klucz trzymaj po stronie serwera. Wywołanie z komponentu klienckiego ujawni go każdemu, kto otworzy narzędzia deweloperskie, a rachunek obciąży Ciebie.
Co naprawdę daje długi kontekst
Dwa miliony tokenów to około półtora tysiąca stron tekstu. Kusi, żeby wrzucać całą dokumentację do promptu zamiast budować wyszukiwanie, i czasem jest to właściwa decyzja.
Opłaca się przy jednorazowej analizie: przeczytanie umowy na trzysta stron, porównanie dwóch wersji specyfikacji, przejrzenie zrzutu logów z awarii. Robisz to raz, koszt jest jednorazowy, a jakość wyższa niż przy wyszukiwaniu fragmentów, bo model widzi całość.
Nie opłaca się w aplikacji odpowiadającej na pytania użytkowników. Sto tysięcy tokenów kontekstu przy każdym pytaniu, przy tysiącu pytań dziennie, daje rachunek, przy którym baza wektorowa i Pinecone albo pgvector wychodzą wielokrotnie taniej. Do tego dochodzi opóźnienie, bo model musi przetworzyć całe wejście, zanim zacznie odpowiadać.
Warto też wiedzieć, że skuteczność wyszukiwania w bardzo długim kontekście spada dla informacji leżących w środku. Jeśli wrzucasz duży dokument, umieść pytanie na końcu, a najważniejsze fragmenty na początku albo na końcu, nie w połowie.
Multimodalność w praktyce
Gemini przyjmuje obraz, dźwięk, wideo i PDF w tym samym wywołaniu co tekst, bez osobnych końcówek API i bez wcześniejszej konwersji.
plik = client.files.upload(file="nagranie-spotkania.mp4")
odpowiedz = client.models.generate_content(
model="gemini-3.1-pro",
contents=[plik, "Wypisz decyzje podjete na spotkaniu wraz ze znacznikami czasu."]
)To odróżnia Gemini najbardziej w scenariuszach, które gdzie indziej wymagają potoku z kilku usług. Analiza nagrania rozmowy, odczyt skanowanej faktury, opis zrzutu ekranu z błędem, transkrypcja z podsumowaniem, wszystko idzie jednym wywołaniem.
Przy dokumentach skanowanych sprawdź jakość odczytu na własnych plikach, zanim zbudujesz proces. Faktury z pieczątką w poprzek albo tabele z scalonymi komórkami bywają odczytywane niepoprawnie, a błąd w jednej cyfrze kwoty kosztuje więcej niż cały model.
Ograniczenie dotyczy kosztu i czasu. Minuta wideo to znacznie więcej tokenów niż minuta czytania, więc przy dłuższych nagraniach policz koszt przed wdrożeniem procesu na stałe. Przy nagraniach godzinnych często taniej wychodzi transkrypcja tańszym modelem i praca na tekście.
Odpowiedzi w ustalonej strukturze
Do integracji z kodem potrzebujesz przewidywalnego kształtu odpowiedzi, nie prozy. Gemini przyjmuje schemat i zwraca zgodny z nim obiekt.
from pydantic import BaseModel
class Zgloszenie(BaseModel):
kategoria: str
priorytet: int
wymaga_czlowieka: bool
wynik = client.models.generate_content(
model="gemini-3.1-flash-lite",
contents=f"Sklasyfikuj zgloszenie: {tresc}",
config={"response_mime_type": "application/json", "response_schema": Zgloszenie}
)Ta jedna zmiana usuwa całą klasę błędów: brak parsowania odpowiedzi wyrażeniami regularnymi, brak obsługi przypadku, w którym model dopisał zdanie przed JSON-em. Do zadań klasyfikacyjnych schemat plus Flash-Lite to układ, który obsługuje duży wolumen przy niskim koszcie.
Wywoływanie funkcji działa podobnie: opisujesz narzędzia, model wskazuje, które wywołać i z jakimi argumentami, a Ty wykonujesz je po swojej stronie. Przy bardziej złożonych przepływach warto to spiąć LangChainem, który ujednolica interfejs między dostawcami.
Strumieniowanie i praca w czasie rzeczywistym
Odpowiedź modelu potrafi powstawać kilkanaście sekund, więc czekanie na całość psuje wrażenie działającego interfejsu. Strumieniowanie oddaje tekst fragmentami w miarę generowania i zmienia odbiór aplikacji bardziej niż przyspieszenie samego modelu.
for fragment in client.models.generate_content_stream(
model="gemini-3.5-flash",
contents=pytanie
):
print(fragment.text, end="", flush=True)Po stronie przeglądarki dane przekazujesz przez strumień odpowiedzi, a nie przez pojedynczy JSON na końcu. Przy wdrożeniu na Vercelu pamiętaj o limicie czasu funkcji: strumieniowanie utrzymuje połączenie otwarte, więc długie odpowiedzi potrafią trafić na ten limit szybciej, niż się wydaje.
Osobnym trybem jest praca z dźwiękiem w czasie rzeczywistym, gdzie model przyjmuje strumień z mikrofonu i odpowiada głosem z opóźnieniem rzędu setek milisekund. To inny rodzaj integracji niż zwykłe wywołanie, bo wymaga utrzymania połączenia dwukierunkowego, a nie pojedynczego żądania HTTP. Zanim zbudujesz na tym produkt, sprawdź koszt minuty rozmowy i porównaj go z modelem tekstowym plus osobną syntezą mowy, bo różnica bywa spora w obie strony.
Przy strumieniowaniu zadbaj też o obsługę przerwania. Użytkownik, który zamknie kartę w połowie generowania, nie przerywa naliczania po stronie dostawcy, jeśli Twój kod nie anuluje żądania jawnie.
Gemini kontra GPT i Claude
| Model | Mocna strona | Słabość | Kiedy wybrać |
|---|---|---|---|
| Gemini | Najdłuższy kontekst, natywne wideo i audio, tanie modele Flash | Częste zmiany nazw i wersji modeli | Przetwarzanie multimediów, analiza wielkich dokumentów, duży wolumen |
| OpenAI | Największy ekosystem narzędzi i integracji | Ceny wyższe w segmencie podstawowym | Projekt korzystający z gotowych bibliotek i wtyczek |
| Claude | Praca z kodem, długie spójne odpowiedzi | Brak natywnego wejścia wideo | Zadania programistyczne, analiza dokumentów tekstowych |
| Ollama | Model lokalnie, zero kosztu za token | Wymaga sprzętu, słabsza jakość | Dane, które nie mogą opuścić firmy |
Praktyczna rada: nie wiąż kodu z jednym dostawcą na poziomie logiki biznesowej. Warstwa pośrednia z jednym interfejsem wywołań pozwala porównać modele na własnych danych, a to jedyny miarodajny test. Zestawienia w internecie mierzą zadania, które rzadko przypominają Twoje.
Jak porównać modele na własnych danych
Wybór modelu na podstawie zestawień z internetu prowadzi do zaskoczeń, bo mierzą one zadania, które rzadko przypominają Twoje. Rzetelne porównanie zajmuje pół dnia i zwraca się przy pierwszym rachunku.
Zacznij od trzydziestu realnych przypadków z produkcji albo z logów. Dla każdego zapisz wejście i to, co uznajesz za dobrą odpowiedź. Nie musi to być tekst słowo w słowo, wystarczy lista warunków, które odpowiedź ma spełniać.
Potem uruchom ten sam zestaw na dwóch albo trzech modelach i porównaj trzy rzeczy: odsetek odpowiedzi spełniających warunki, medianę czasu odpowiedzi i koszt przebiegu całego zestawu. Ostatnia liczba pomnożona przez spodziewany wolumen daje miesięczny rachunek lepiej niż jakikolwiek kalkulator.
Wynik bywa zaskakujący w konkretny sposób. Tańszy model często przegrywa nie jakością treści, tylko trzymaniem się formatu, a to naprawia się instrukcją albo schematem odpowiedzi, nie zmianą modelu. Zanim przejdziesz na droższy wariant, sprawdź, czy problemem nie jest sam prompt.
Zestaw testowy trzymaj w repozytorium i uruchamiaj po każdej zmianie modelu albo instrukcji. Dostawcy wycofują starsze warianty i podmieniają wersje, więc odpowiedź, która działała w marcu, w lipcu może wyglądać inaczej, a bez zestawu porównawczego nikt tego nie zauważy do pierwszej skargi.
Typowe błędy
Pierwszy to używanie Pro tam, gdzie wystarczy Flash. Różnica w rachunku bywa kilkukrotna, a w jakości odpowiedzi przy prostych zadaniach niezauważalna.
Drugi to brak bufora kontekstu przy powtarzalnej instrukcji systemowej. Płacisz wtedy pełną stawkę za te same tokeny przy każdym zapytaniu, choć wystarczyłaby dziesiąta część.
Trzeci to ignorowanie limitów zapytań na minutę. Darmowy próg ma niskie limity dzienne i minutowe, więc kod bez ponawiania z narastającym opóźnieniem wywali się przy pierwszym skoku ruchu.
Czwarty to przypisywanie na sztywno nazwy modelu w kilkunastu miejscach w kodzie. Nazwy zmieniają się szybko, a starsze warianty są wycofywane, więc trzymaj identyfikator w konfiguracji.
Piąty to pomijanie ustawień bezpieczeństwa treści przy aplikacjach dla użytkowników. Domyślne progi bywają zbyt restrykcyjne dla treści medycznych albo prawnych i model odmawia odpowiedzi tam, gdzie jest ona uzasadniona.
FAQ
Czy Gemini ma darmowy plan dla programistów?
Modele Flash i Flash-Lite zachowały darmowy próg z ograniczonymi limitami dziennymi, co wystarcza do prototypu i nauki. Od kwietnia 2026 modele Pro są dostępne wyłącznie odpłatnie. Google AI Studio pozostaje darmowe do testowania promptów w przeglądarce.
Który model wybrać na start?
Flash. Pokrywa większość zadań produkcyjnych przy rozsądnej cenie, a przejście na Pro przy trudniejszym zadaniu to zmiana jednego łańcucha znaków. Odwrotna kolejność, czyli start od najdroższego modelu, zwykle kończy się przepłacaniem przez kilka miesięcy.
Czym Gemini API różni się od Vertex AI?
Modelem dostępu i warstwą wokół niego. Gemini API to klucz w zmiennej środowiskowej i najszybszy start. Vertex AI dokłada uwierzytelnianie kontem usługi, wybór regionu przetwarzania, limity organizacyjne i wspólne rozliczenie z resztą Google Cloud. Modele są te same.
Czy warto wrzucać całą dokumentację do kontekstu zamiast budować RAG?
Przy jednorazowej analizie tak, przy aplikacji odpowiadającej na powtarzalne pytania nie. Sto tysięcy tokenów kontekstu przy każdym zapytaniu mnoży się przez liczbę użytkowników, a wyszukiwanie fragmentów kosztuje ułamek tego i odpowiada szybciej.
Czy Gemini obsługuje język polski?
Tak, jakość w polskim jest dobra zarówno przy generowaniu, jak i przy analizie dokumentów. Warto pamiętać, że polski tekst zużywa więcej tokenów niż angielski o tej samej treści, więc rachunek za identyczne zadanie będzie wyższy o kilkanaście procent.
Aktualny cennik i limity opisuje dokumentacja Gemini API, a modele do testowania znajdziesz w Google AI Studio.