Leçon 1 — Démarrer avec google-genai

Installer le SDK et faire un premier appel

4 min de lecture

Installer le SDK et faire un premier appel

Le vocabulaire

TermeDéfinitionDans le code
SDKbibliothèque officielle qui emballe les appels HTTP à l'APIpip install google-genai, from google import genai
clientl'objet qui connaît vos identifiants et envoie les requêtesclient = genai.Client()
modèlele LLM appelé, désigné par son nommodel="gemini-3.5-flash"
contentsce que vous envoyez : un texte, ou une liste de messagescontents="Bonjour"
réponsel'objet renvoyé : texte, candidats, métadonnées d'usageresponse.text, response.usage_metadata

Installer

terminal
python3 -m venv .venv && source .venv/bin/activate
pip install google-genai python-dotenv pydantic pytest

Puis créez un fichier .env à côté de votre script (jamais versionné dans git) :

.env
GEMINI_API_KEY=votre-cle-ai-studio-ici

Le premier appel

premier_appel.py
from dotenv import load_dotenv
from google import genai

load_dotenv()                 # copie le contenu de .env dans les variables d'environnement
client = genai.Client()       # trouve GEMINI_API_KEY tout seul

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Écris un slogan de 10 mots maximum pour une gourde isotherme.",
)
print(response.text)
print(response.candidates[0].finish_reason)
print(response.usage_metadata)
sequenceDiagram
  participant P as Votre script
  participant C as genai.Client
  participant G as API Gemini
  P->>C: generate_content(model, contents)
  C->>G: POST HTTPS + clé d'API
  G-->>C: JSON (candidats, usage)
  C-->>P: objet GenerateContentResponse
  P->>P: response.text

response.text est un raccourci : la réponse complète contient une liste de candidats (des réponses possibles, en pratique une seule), chacun avec ses parts (morceaux de contenu) et une raison de fin (finish_reason) :

finish_reasonSignification
STOPle modèle a fini naturellement
MAX_TOKENSla réponse a été coupée par la limite de tokens
SAFETYbloquée par un filtre de sécurité

Quel import correspond au SDK actuel ?

response.text vaut None et finish_reason vaut MAX_TOKENS. Que s'est-il passé ?

Résultat obtenu

Le même appel exécuté le 2026-10-15 (gemini-3.5-flash, mode clé d'API), sortie mise en forme sur trois lignes :

sortie
text='**Garde la fraîcheur, préserve la chaleur. Partout avec vous.**'
finish=STOP
prompt=18 out=17 thoughts=907 total=942

Remarquez thoughts=907 : le modèle a « réfléchi » 907 tokens pour produire un slogan de 17 tokens. Ces tokens de pensée sont facturés ; nous apprendrons à les mesurer et à les réduire au module 2.

Exercice

Modifiez premier_appel.py pour qu'il prenne le prompt en argument de ligne de commande (python premier_appel.py "Ma question") et affiche seulement le texte puis, entre crochets, le nombre total de tokens.

Voir la solution
premier_appel.py
import sys

from dotenv import load_dotenv
from google import genai

load_dotenv()
client = genai.Client()
prompt = " ".join(sys.argv[1:]) or "Dis bonjour."
response = client.models.generate_content(model="gemini-3.5-flash", contents=prompt)
print(response.text)
print(f"[{response.usage_metadata.total_token_count} tokens]")

sys.argv contient les arguments de la commande ; " ".join(sys.argv[1:]) les recolle, ce qui évite d'exiger des guillemets. total_token_count additionne entrée, sortie et pensée.

Je sais faire

  • Installer google-genai dans un environnement virtuel
  • Créer un client qui lit la clé depuis .env
  • Appeler generate_content et lire text, finish_reason et usage_metadata
  • Reconnaître l'ancien SDK google.generativeai dans un tutoriel
Suivant