A Gemini API használata Pythonból kifejezetten egyszerűen és gyorsan megoldható feladat, az előkészítés során a következő négy lépést kell végrehajtani:
Keressük fel a Google AI Studio felületet (a Google Developers oldalon keresztül).
Jelentkezzünk be a Google-fiókunkkal.
Kattintsunk a "Get API key" gombra, és hozzunk létre egy új kulcsot egy létező vagy egy új Google Cloud projekthez.
Fontos: A kulcsot másoljuk ki és kezeljük biztonságosan, ne osszuk meg senkivel!
A Google hivatalos google-genai könyvtárát kell használni. Ennek telepítéséhez nyissunk egy terminált vagy parancssort és futtassuk a következő parancsot:
pip install google-genai
Ez a legbiztonságosabb és legtisztább módszer, ekkor a kulcs nem kerül be közvetlenül a kódunkba, hanem elmentjük egy környezeti változóként. Az importált Python modul automatikusan keresni fogja ezt a változót.
Windows (Command Prompt): set GEMINI_API_KEY="A_TE_API_KULCSOD"
Linux / macOS (Terminal): export GEMINI_API_KEY="A_TE_API_KULCSOD"
Ha a környezeti változót beállítottuk, az alábbi Python kód automatikusan fel fogja azt ismerni. Hozzuk létre és mentsük el a következő néven a gemini_teszt.py scriptet:
from google import genai
# A kliens automatikusan beolvassa a GEMINI_API_KEY környezeti változót
client = genai.Client()
# Szöveges válasz generálása a legfrissebb alapértelmezett modellel (pl. gemini-2.5-flash)
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Fogalmazd meg 3 mondatban, mi az a kvantum-számítástechnika.",
)
print(response.text)
Tipp az alternatívára: Ha valamiért nem szeretnénk környezeti változót használni (bár ajánlott), a kulcs közvetlenül is átadható a kliensnek így: client = genai.Client(api_key="A_TE_API_KULCSOD").
gemini-2.5-flash: Kiváló sebesség, rendkívül költséghatékony (vagy ingyenes az AI Studio korlátain belül), és a legtöbb általános feladatra (szövegírás, kódolás, adatelemzés) tökéletes.
gemini-2.5-pro: Komplexebb, mélyebb logikai következtetést igénylő feladatokhoz ajánlott.
Fizetős konstrukciók (Paid Tiers)
Amint összekapcsoljuk az AI Studio-t egy Google Cloud számlázási fiókkal, átkerülünk a fizetős kategóriába. Itt megszűnnek a szigorú napi korlátok (a percenkénti limitszám pedig drasztikusan megemelkedik). Kétféleképpen lehet fizetni:
Prepaid (Feltöltőkártyás): Új fiók esetén a Google kérheti, hogy előre vásároljunk krediteket (pl. feltöltünk $20-t), és ebből vonja le a használatot.
Pay-as-you-go (Utólagos): A hónap végén annyit fizetünk, amennyit az alkalmazás ténylegesen elhasznált.
Biztonsági funkció (Spend Caps): Nem kell félni a „túlfutó” költségektől. A Google AI Studio felületén beállíthatók havi költési korlátok (pl. maximum $50/hónap). Ha az alkalmazás eléri ezt a limitet, az API leáll, így nem érhetnek meglepetések.
Ha nem havidíjat fizetünk, hanem a küldött és fogadott szöveg (illetve képek/videók) mennyisége után. Az elszámolási egység az 1 millió token (1 token kb. 4 karakternek vagy 0.75 angol szónak felel meg, a magyar nyelvben a ragozás miatt ez kicsit több).
A legnépszerűbb modellek árai (1 millió tokenre vetítve):
Modell Input ár Output ár Fő előnye
(amit küldünk) / 1M token (amit a Gemini válaszol) / 1M token
Gemini 2.5 Flash-Lite ~$0.10 ~$0.40 Brutálisan olcsó, egyszerűbb feladatokra (kategorizálás, adatkivonás)
Gemini 2.5 Flash ~$0.30 ~$2.50 A legjobb ár-érték arányú, gyors, okos munkagép
Gemini 2.5 Pro ~$1.25 ~$10.00 Komplex logikai feladatokhoz, programozáshoz, nehéz kérdésekhez
Megjegyzés: Ha nagyon hosszú kontextust küldünk be egyszerre (200 000 token felett), a Pro modelleknél az alapár megduplázódik.
Ha éles alkalmazást indítunk, a Google három beépített eszközt ad a költségek csökkentésére:
Context Caching (Kontextus gyorsítótárazás): Ha az alkalmazásnak minden kérdésnél el kell olvasnia egy hatalmas dokumentumot (pl. egy teljes szabályzatot vagy egy cég termékkatalógusát), ezt a szöveget elmenthetjük a Google szerverein. Így nem kell minden kérésnél újra kifizetni a teljes dokumentum beolvasását, hanem akár 90%-kal olcsóbban kapjuk meg az input tokeneket.
Batch API (Kötegelt feldolgozás): Ha olyan feladataink vannak, amik ráérnek (nem azonnali választ vár a felhasználó, hanem pl. éjszaka kell legenerálni 500 jelentést), a kérések elküldhetők kötegelve. A Google ekkor vállalja, hogy 24 órán belül feldolgozza, cserébe fix 50% kedvezmény ad az árból.
Modell-útválasztás (Routing): Egy chatbot esetében az egyszerű üdvözléseket és az alapvető kérdéseket irányíthatjuk a szinte ingyenes Flash-Lite modellre, és csak akkor léptetjük be a drágább Pro modellt, ha a felhasználónak valóban összetett problémát kell megoldatni.
Gemini API költségek csökkentése (Routing)
Egyik hatékony módszer lehet az API használata során a felmerülő költségek csökkentésére az LLM Modell-útválasztás (Routing) beépítése a programba. Ennek a múködésnek az lesz az alapelve, hogy egy chatbot esetében az egyszerű üdvözléseket és az előre összeállított alapvető kérdéseket átirányítjuk a legolcsóbb Flash-Lite modellre, és csak akkor léptetjük be a drágább Pro modellt/modelleket, ha a felhasználónak valóban összetett problémát kell megoldatni. Sajnos ha a Google AI Studio ingyenes csomagját használjuk (Free Tier) a gemini-2.5-pro modell elérése földrajzi régiónként, időszakonként vagy akár fiókonként is korlátozva lehet. Ilyenkor bizonyos időszakokban az ingyenes kvóta 0-ra is csökkenhet, ha túlterheltek a szerverek, vagy az adott projekt még nem lett számlázási fiókhoz (Pay-as-you-go) rendelve.
A következő Python script az API elérésen keresztül mutatja meg, hogy egy chat során a különböző szintű kérdéseket szétválasztva különböző modellekkel válaszoltatja meg azokat:
import os
from enum import Enum
from pydantic import BaseModel, Field
from google import genai
from google.genai import types
# Kliens inicializálása
client = genai.Client()
MODEL_FLASH_LITE = "gemini-2.5-flash-lite"
MODEL_PRO = "gemini-2.5-pro"
# 1. LÉPÉS: Definiáljuk a várt struktúrát Pydantic segítségével
class RouteCategory(str, Enum):
SIMPLE = "SIMPLE"
COMPLEX = "COMPLEX"
class RoutingDecision(BaseModel):
category: RouteCategory = Field(
description="A felhasználói üzenet kategóriája. SIMPLE az egyszerű csevegéshez/kérdésekhez, COMPLEX az összetett feladatokhoz."
)
reason: str = Field(
description="Rövid, egymondatos indoklás, hogy miért ezt a kategóriát választotta a modell."
)
def route_and_respond_structured(user_message: str) -> str:
"""
Kategorizálja a felhasználói kérést egy garantált Pydantic struktúra alapján,
majd a megfelelő modellhez irányítja azt. Tartalmaz kvótahiba elleni védelmet (fallback).
"""
routing_prompt = f"Feladatod a következő felhasználói üzenet kategorizálása: '{user_message}'"
# Útválasztó hívás strukturált kimenettel
routing_response = client.models.generate_content(
model=MODEL_FLASH_LITE,
contents=routing_prompt,
config=types.GenerateContentConfig(
temperature=0.0,
response_mime_type="application/json",
response_schema=RoutingDecision,
),
)
try:
decision: RoutingDecision = routing_response.parsed
print(f"[Router döntés]: {decision.category.value} (Indoklás: {decision.reason})")
chosen_category = decision.category
except Exception as e:
print(f"[Hiba a parszolás során]: {e}. Alapértelmezett modell: COMPLEX")
chosen_category = RouteCategory.COMPLEX
# 3. LÉPÉS: Irányítás és hibakezelés
if chosen_category == RouteCategory.COMPLEX:
print(f"-> Irányítás a Pro modellhez: {MODEL_PRO}")
try:
response = client.models.generate_content(
model=MODEL_PRO,
contents=user_message
)
except Exception as api_err:
# Ha a Pro modell kvótahibát (vagy bármi mást) dob, kiíratjuk ezt a jelzést
print(f"[API HIBA a Pro modellnél]: {api_err}")
print(f"-> Biztonsági fallback aktiválva: Irányítás a(z) {MODEL_FLASH_LITE} modellhez...")
response = client.models.generate_content(
model=MODEL_FLASH_LITE,
contents=user_message
)
else:
print(f"-> Irányítás a költséghatékony modellhez: {MODEL_FLASH_LITE}")
response = client.models.generate_content(
model=MODEL_FLASH_LITE,
contents=user_message
)
return response.text
# --- TESZTELÉS ---
if __name__ == "__main__":
teszt_keresek = [
"Üdvözöllek! Hogyan telt a napod?",
"Készíts egy részletes pénzügyi előrejelzési modellt Excel formulákkal egy induló SaaS vállalkozás számára.",
"Köszönöm a segítséget, egyelőre nincs több kérdésem."
]
for i, kerese in enumerate(teszt_keresek, 1):
print(f"\n{i}. Teszt eset: '{kerese}'")
valasz = route_and_respond_structured(kerese)
print(f"Modell válasza:\n{valasz}")
print("-" * 50)
A forráskódot bemásolva IDLE-be, mentve és futtatva több esetben azt tapasztalhatjuk, hogy a gemini-2.5-flash-lite modellhez kapcsolódó rész gond nélkül lefut. A gemini-2.5-pro hívásakor előfordul, hogy a rendszer elutasítja a kérést, aminek legtöbbször az az oka, hogy ingyenes keret használata esetén a modellből elfogyott (vagy átmenetileg nem engedélyezett) a keret.
Mit tehetünk, ha mindenképp szükség van a Pro modell lefuttatására?
Várjunk egy ideig, : Az elutasító üzenet végén látható, hogy Please retry in xx.xxxxxx s üzenet. Ha percenkénti limitbe (RPM/TPM) futott a program, akkor a jelzett idő elteltével múlva újra lehet próbálkozni.
Számlázás beállítása (Pay-as-you-go): Ha a napi ingyenes limit kimerült, a Google Cloud Console-ban / AI Studio-ban érdemes hozzáadni egy bankkártyát a projekthez. A fizetős szinten (ahol a beépített keretig rendkívül olcsó vagy ingyenes a használat) és sokkal magasabbak lesnek a kvótakorlátok, és megszűnik egy ilyen típusú elutasítás.
Ha a számlázás beállítjuk (Paid Tier / Pay-as-you-go) akkor az összes korlátozás feloldódik, és megbízhatóan elérhetővé válnak a legfejlettebb modellek is. Ha összekötjük a projektet egy Google Cloud számlázási fiókkal az AI Studio-ban, akkor a következő előnyökhöz juthatunk:
Nincs "0" limit: Az ingyenes szinten (Free Tier) a Google terheltségtől függően dinamikusan korlátozhatja (akár nullára is csökkentheti) a gemini-2.5-pro erőforrásait. A fizetős szinten ez a korlátozás megszűnik.
Drasztikusan magasabb kvóták: A Pro modellnél az ingyenesen engedélyezett, rendkívül szűkös napi limit (50 kérés/nap) helyett azonnal több ezer kérésre ugrik a keret.
Nem használják tanulásra az előfizető adatait: Ez az egyik legfontosabb különbség. Amíg az ingyenes szinten a Google / rendszerei átnézhetik és felhasználhatják a promptokat a modellek tanítására, addig a számlázás bekapcsolása után ezek az adatok teljesen privátak maradnak, azokat nem használják fel termékfejlesztésre.
A Google az újabb modellváltozatokat (pl. a nagyobb kontextusablakú vagy speciális gondolkodási / reasoning képességű modelleket), valamint a külső szolgáltatásokhoz való kapcsolódást (mint a valós idejű Google Keresés vagy Maps alapú Grounding) elsősorban a fizetős projektek számára teszi elérhetővé.